【Power Automate】条件分岐の使い方|空白判定・3つ以上の分岐もわかりやすく解説
Power Automateで「金額が1万円以上のときだけ承認に回す」「担当者が空欄の行だけ処理する」といった場合分けをしたいとき、使うのが条件アクションです。
ただ、使い始めると次のような壁にぶつかります。
- 空欄かどうかを判定したいが、うまくいかない
- 条件を3つ以上に分けたい
- 「かつ」「または」の組み合わせ方が分からない
この記事では、条件の基本から公式の関数一覧、そして空白判定の実際の書き方までをまとめます。
条件とは?基本は「はい」と「いいえ」の2つ
Microsoftの公式ドキュメントでは、条件の役割がこう説明されています。
条件を使用して、条件が true または false の場合にのみクラウド フローが 1 つ以上のタスクを実行するように指定します
ポイントは分岐が2つしかないことです。条件を追加すると、フローは次の2本に分かれます。
- はいの場合(True)…条件を満たしたとき
- いいえの場合(False)…満たさなかったとき
どちらか一方だけを使うこともできます。「条件に合ったときだけ通知する」なら、いいえの側は空のままで構いません。
基本の使い方|3つのボックスを埋めるだけ
条件カードには入力欄が3つあります。左から順に埋めていきます。
| 位置 | 入れるもの | 例 |
|---|---|---|
| 左 | 比べたい値(動的なコンテンツ) | リツイート数 |
| 中央 | 比べ方(演算子) | 次の値以上 |
| 右 | 比べる相手 | 10 |
公式のチュートリアルでは「リツイート数が10以上ならメールを送る」という例が示されています。左に項目、中央に「次の値以上」、右に10を入れる——この形が基本です。
複数の条件を並べたいときは、公式にこう案内されています。
条件カードの 追加 ボタンで複雑な条件を作成することができます
「追加」を押すと行が増え、AND(かつ)/OR(または)を選べるようになります。
条件式で使える関数一覧
画面のボックスだけでは表現しきれない条件は、式(関数)で書きます。公式が挙げている論理式は次のとおりです。
| 式 | 意味 | 公式の例 |
|---|---|---|
| and | 両方がtrueならtrue | and(greater(1,10),equals(0,0)) → false |
| or | どちらかがtrueならtrue | or(greater(1,10),equals(0,0)) → true |
| equals | 等しければtrue | equals(parameters(‘parameter1’), ‘someValue’) |
| less | より小さい | less(10,100) → true |
| lessOrEquals | 以下 | lessOrEquals(10,10) → true |
| greater | より大きい | greater(10,10) → false |
| greaterOrEquals | 以上 | greaterOrEquals(10,100) → false |
| empty | 空ならtrue | empty(”) → true |
| not | 逆にする | not(contains(‘200 Success’,’Fail’)) → true |
| if | 真偽で値を返す | if(equals(1, 1), ‘yes’, ‘no’) → yes |
使ううえで公式が注意している点が2つあります。
- and / or…「両方の引数をブール値にする必要があります」。つまり中身も真偽を返す式であること
- less / greater 系…「サポートされる型は整数、浮動小数点数、文字列です」
【頻出】空欄かどうかを判定する
もっとも質問が多いのが「空白なら」の判定です。答えはempty関数を使うことです。
公式では、empty について次のように説明されています。
オブジェクト、配列、文字列が空の場合は true を返します
公式チュートリアルには、スプレッドシートの空の行を削除する実例が載っています。「状態」列と「割り当て済み」列の両方が空の行を見つける式です。
@and(empty(item()?['Status']), empty(item()?['Assigned']))
この式は詳細設定モード(式を直接書くモード)で入力します。通常の3つのボックスでは、こうした関数を組み合わせた判定はできません。
逆に「空欄でないなら」を判定したい場合は、notと組み合わせます。「空である」の逆を取ればよいわけです。
条件を3つ以上に分けたいとき
前述のとおり、条件アクションは「はい」と「いいえ」の2分岐しかありません。「A・B・Cの3パターンで処理を分けたい」という場合は、次の方法をとります。
| 方法 | 内容 | 向いている場面 |
|---|---|---|
| 条件を入れ子にする | 「いいえの場合」の中に、さらに条件を置く | 分岐が3〜4個。判定内容がそれぞれ違う |
| スイッチを使う | 1つの項目の値によって行き先を分ける | 「状態」列がA/B/Cのように値で決まる場合 |
判定する項目が同じなら「スイッチ」、条件がバラバラなら「入れ子」と覚えておくと選びやすくなります。
ただし入れ子は深くなるほど読みにくくなります。3階層を超えるようなら、フローを分割することも検討してください。
実例:期日が近く、未払いの人にだけメールを送る
公式に載っている、実務的で分かりやすい例です。2つの条件を同時に満たす人を探します。
| 判定したいこと | 使う式 |
|---|---|
| 全額が支払われていない | greater(請求額 > 支払額) |
| 期日まで1日を切っている | less(期日 < 明日) |
この2つをandでつなぐと、次の式になります。
@and(greater(item()?['Due'], item()?['Paid']), less(item()?['dueDate'], addDays(utcNow(),1)))
utcNow()が現在時刻、addDays(utcNow(),1)が明日を表します。「期日が明日より前」=「あと1日を切っている」という考え方です。
日付を扱う条件は、この形が基本になります。
よくあるつまずき
| 症状 | 原因と対処 |
|---|---|
| 空欄が判定できない | ボックスに空文字を入れても効かないことがある。empty関数を使う |
| andやorがエラーになる | 中身がブール値になっていない。equalsなど真偽を返す式で包む |
| 数値の大小が正しく判定されない | 値が文字列として扱われている可能性。型を確認する |
| 3つ以上に分けられない | 条件は2分岐のみ。入れ子かスイッチを使う |
| どちらの分岐に入ったか分からない | 実行履歴を開けば、通った経路が確認できる |
よくある質問
Q. 「いいえの場合」は空でも大丈夫ですか?
問題ありません。条件を満たしたときだけ処理したい場合は、いいえ側を空のままにします。
Q. 文字列が「含まれるか」を判定できますか?
できます。中央の演算子に「次の値を含む」があるほか、式ではcontainsを使います。公式のnotの例もcontainsと組み合わせたものです。
Q. 詳細設定モードとは何ですか?
3つのボックスの代わりに、式を直接書くモードです。empty や and を組み合わせた複雑な判定は、こちらで入力します。
Q. 条件の中で変数を使えますか?
使えます。ただし変数を条件の中で作ることはできません。初期化はフローの外側で行う必要があります。詳しくは変数の使い方をご覧ください。
まとめ
- 条件は「はい」「いいえ」の2分岐だけ
- 基本は3つのボックス(値・比べ方・相手)を埋める
- 複数条件は追加ボタンでAND/ORを組む
- 空欄の判定はempty関数。ボックスでは判定しにくい
- and / or は中身がブール値である必要がある
- 大小比較は整数・浮動小数点数・文字列に対応
- 3つ以上に分けるなら入れ子かスイッチ
- 日付の比較は
addDays(utcNow(),1)のような式で組み立てる
条件が思ったとおりに動かないときは、まず実行履歴を開いてください。左右のボックスに実際どんな値が入っていたかが分かり、原因の大半はそこで判明します。
Power Automateの全体像はPower Automateとは?できること・始め方で解説しています。
参考にした主な資料
- Power Automate のクラウド フローに条件を追加する(Microsoft Learn)— 条件の基本、true/falseの2分岐、追加ボタンによる複雑な条件
- Power Automate で条件式を使用する(Microsoft Learn)— 論理式の一覧、empty による空白判定、and/greater/less の実例







