Microsoftが提供するPower Automateは、ノーコーディング、ローコーディングでフローを作成するRPAツールです。
この記事では、Power Automateで、文字列変数が空(null)であるか否かの判定方法についてまとめます。
課題:Power AutomateでNULLをどのように扱うか?
![]() |
Power AutomateでExcelからデータを取得するフローを作っています。 |
その場合、Excelから取得したデータが空(null)であるかどうかを判定しなければなりませんね。 |
![]() |
![]() |
Power Automateで空(null)を判定するにはどのようにすれば良いでしょうか。 |
解決策
empty関数
empty関数は、オブジェクト、配列、文字列が空(null)の場合は trueを返す関数です。
使い方は次の通りです。
この場合、変数の値がnullであればtrueを返します。
また、変数の値がnullでなければfalseを返します。
そのため、「条件」アクションでempty関数の返値をtrueまたはfalseと比較演算することで、文字列変数の値がnullであるか否かを判定することができます。
length関数
length関数は、文字列の長さ または 配列内の項目の数を返す関数です。
使い方は次の通りです。
この場合、変数の値がnullであれば0を返します。
また、変数の値がnullでなければ0より大きい値を返します。
そのため、「条件」アクションでlength関数の返値を0と比較演算することで、文字列変数の値がnullであるか否かを判定することができます。
事例
Power Automateの「表内に存在する行を一覧表示」アクションを使って、Excelのテーブルを1行ずつ取得して処理するフローがあるとします。
以下の例では、取得した値(この事例の場合 変数「期限」)、がnullのときに無視する条件を追加します。
empty関数を使う場合
「条件」の左の欄に次の式をExpressionから入力します。
emptyへ渡す items('Apply_to_each')?[期限] は、Excelテーブルの項目「期限」から取得した値です。
入力は、まずExpressionの欄にemptyと入力し、次に下方にある「表内に存在する行を一覧表示」の「期限」をクリックして行います。
「条件」の右の欄に次の式をExpressionから入力します。

以上で、変数の値がnullであればFalseとなる条件が追加されました。
すなわち、変数「期限」の値が空ならば、「条件」アクションの「いいえの場合」が実行されます。
length関数を使う場合
「条件」の左の欄に次の式をExpressionから入力します。
入力は、まずExpressionの欄にlengthと入力し、次に下方にある「表内に存在する行を一覧表示」の「期限」をクリックして行います。
以上で、変数の値がnullであればFalseとなる条件が追加されました。
すなわち、変数「期限」の値が空ならば、「条件」アクションの「いいえの場合」が実行されます。
nullについて
調べたところ、文字列変数がnullか否かを判定する方法として、Expressionから「null」を入力すれば良い、という情報がありました。
しかし、実装してみたところ、エラーは出ないものの、予期しない動作をしました。
そのため、この「null」の使用は推奨しないと言わざるを得ません。
まとめ
文字列変数がnullであるか否かを判定する場合、empty関数またはlength関数を使います。
文字列変数とnullとを比較する方法もあるらしいですが、実装してみると予期しない動作をしました。
コメント