← 手順一覧へ戻る
Power Automate Desktop条件分岐

複数の条件を順番に判定する(Else if・60点と80点の境界)

点数を80以上、60以上の順に判定してA・B・Cへ分けます。80点では次の条件を調べない理由と、境界値で結果を確認する方法を図で説明します。

画面上の名前は、表示言語やバージョンによって異なる場合があります。Desktopの例は、フロー作成時に「Power Fx を有効にする」をオフにした標準構文です。Power Fx対応フローでは式・変数参照・インデックスの書き方が異なります。このページでは変数を %変数名% と表記します。出力変数の名前を入力する欄では、前後の % は付けません。

実行前に確認

  • この練習はWindows上で人が画面を操作する有人・手動実行です。クラウドサービスへの接続は不要です。クラウドからの起動や無人実行などへ広げる場合は、別途ライセンス・実行環境を確認してください。
  • Scoreと比較値は数値型にそろえ、0~100の整数だけを使います。空欄・文字列・範囲外を検証する処理は含みません。Elseは入力エラーの検出ではなく、前の条件に一致しなかった場合の分岐です。
  • メッセージはOKを押すまで待機します。正常な実行ではA・B・Cのうち1つだけが1回表示されます。ダイアログ表示などのエラーで停止した場合は、Elseへ自動的に回るわけではありません。
  • 例は架空の点数による条件分岐の練習です。ファイル保存やメール送信は行いません。実際の業務の評価基準を定めるものではありません。

1使うアクション

  1. アクション 1変数の設定
  2. アクション 2If
  3. アクション 3メッセージを表示80以上:A。ほかの枝は実行しない
  4. アクション 4Else if
  5. アクション 5メッセージを表示80未満かつ60以上:B
  6. アクション 6Else
  7. アクション 7メッセージを表示60未満:C
  8. アクション 8End条件全体の終わり

図で見る処理のイメージ

概念図

入力は数値のScoreです。最初に80以上かを調べ、いいえのときだけ60以上を調べます。75ならB、80ならAだけを表示します。

最初に当てはまった枝だけを通る

Score = 750~100の整数で試す

1 · If80以上?最初に調べる
はい →AOKを押したらEndへ次の条件は調べない

いいえのときだけ次へ

2 · Else if60以上?ここでは80未満
はい →BOKを押したらEndへ60以上80未満

いいえのときだけElseへ

3 · Else残りの値条件の入力は不要
そのまま →COKを押したらEndへこの例では60未満

End選ばれた枝から合流。この例はここで終了

80点に変えると、Aだけ80は「60以上」にも当てはまりますが、Aを選んだ後はElse ifへ進みません。表示待ちやエラー停止は、この正常な分岐終了とは別です。

下向きの矢印は条件が偽のときの進み先を、右の枠は選ばれた枝の表示内容を表します。実際の設定画面や実行結果ではありません。
結果の例

75 → B、80 → A。80のとき、60以上のElse ifは判定しません。いずれも表示は1回です。

狭い画面では、表を横にスクロールして「判定しない」と表示結果を確認できます。

数値のScoreを入れ替えた6ケースの期待値(実行結果ではありません)
ScoreIf:80以上?Else if:60以上?表示は1回だけ
59いいえいいえC
60いいえはいB
75(最初の例)いいえはいB
79いいえはいB
80はい判定しないA
81はい判定しないA

各ケースは最初の変数設定から独立して実行する想定です。表と図は固定した数値の期待値であり、実際のPower Automateフローを実行して確認した結果ではありません。

設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。

2実際の設定内容

入力する値・操作手順を確認する7ステップの設定と確認方法
  1. 1

    準備:Power Automate for desktopで、Power Fxをオフにした練習用フローを作ります。「変数の設定」で変数名=Score、値=数値の 75 にします。数値には引用符を付けません。この練習では0~100の整数だけを設定し、入力ファイルや外部サービスは使いません。

  2. 2

    If:最初のオペランド=%Score%、演算子=以上(>=)、2番目のオペランド=数値の 80。Ifの直下に「メッセージを表示」を置き、タイトル=判定、表示するメッセージ=A、ボタン=OK、自動的に閉じる=オフにします。

  3. 3

    同じIfとEndの間へElse ifを追加し、Aのメッセージの後、Elseの前に置きます。最初のオペランド=%Score%、演算子=以上(>=)、2番目のオペランド=数値の 60。直下の「メッセージを表示」は本文=B、ほかの設定はAと同じです。ここへ進む時点で80未満なので、Bの範囲は60以上80未満になります。

  4. 4

    ElseをBのメッセージの後へ追加します。Elseには条件を入力しません。直下の「メッセージを表示」は本文=C、ほかの設定はAと同じです。前の2条件がどちらも偽のときだけ、この枝へ進みます。

  5. 5

    Cのメッセージの後にあるEndで、If・Else if・Elseをまとめて閉じます。Else ifの前へ別のEndを置かないでください。この例は選ばれた枝のメッセージを1回表示し、OKを押すとEndの後へ進んで終了します。共通処理を足す場合は、このEndの後へ置きます。

  6. 6

    確認:保存して最初から実行し、75ならBが1回だけ表示されることを確認します。次に最初の「変数の設定」の値だけを59、60、79、80、81へ1つずつ変え、その都度保存して最初から実行します。期待値は順にC、B、B、A、Aです。80では60以上も数学的には成り立ちますが、Else ifは判定しません。確認後は75へ戻して保存します。

  7. 7

    結果が違うとき:以上(>=)を、より大きい(>)にしていないか確認します。60以上を先に置くと80や81もBになります。また、Else ifを独立したIfへ置き換えると、80ではAとBの両方が表示され得ます。1つのIf/Else if/Elseブロックになっているか、Endの位置とインデントを見直してください。

Microsoft公式ページで確認する

設定を確認できる公式資料