Power Automateで「条件分岐」を使いこなす方法:自動化の判断基準を思い通りに設定!
「Power Automate(パワー・オートメイト)のフローを作っているんだけど、『もし〇〇だったらAの処理、そうでなければBの処理をしたい』って時、どうすればいいの?」「メールの件名によって、自動で動かす処理を変えたいんだけど、やり方が分からないな…」「自動化された承認フローで、承認されたら次のステップ、却下されたら別のステップに進めたいな…」
こんな風に感じたことはありませんか? Power Automateのフローは、通常、ステップを上から下へ順番に実行していきます。しかし、実際の業務では、状況やデータの内容に応じて、処理の流れを変えたい、という「判断」が必要になることがよくあります。これが「条件分岐」です。特定の状況でだけ特別な処理をしたり、データの内容によって違う担当者に通知を送ったりなど、柔軟な自動化を実現するためには、この条件分岐が欠かせません。
Power Automateを使えば、プログラミングの知識がなくても、簡単に「条件分岐」を設定し、あなたのフローに「判断」させる仕組みを構築できます。これにより、あなたの自動化はより賢く、より業務の実態に合ったものになり、効率性が飛躍的に向上します。
Power Automateの「条件分岐」ってどんなこと?その大きなメリット
Power Automateにおける「条件分岐」とは、特定の条件が「真(True、正しい)」であるか「偽(False、間違っている)」であるかによって、フローの実行する処理を異なる道筋に分ける機能のことです。これは、あなたが何かを決める際に「もし〇〇だったら△△しよう、そうでなければ□□しよう」と考えるのと同じです。
なぜ「条件分岐」が必要なのか?その具体的なメリット
条件分岐をPower Automateのフローに組み込むことには、たくさんの良い点があります。
- 自動化の「賢さ」が向上する:単に決められた手順を繰り返すだけでなく、状況やデータの内容に応じて異なる判断を下せるようになります。これにより、あなたのフローはより人間が行う判断に近い動きを実現し、自動化できる業務の幅が大きく広がります。
- 業務の多様性に対応できる:実際の業務プロセスでは、様々な例外やバリエーションが存在します。条件分岐を使うことで、それぞれの状況に対応した処理を自動化できるようになり、手動での介入が必要な場面を減らせます。例えば、特定の金額以上の請求書は特別な承認経路を通す、といった制御が可能です。
- 効率性と正確性の向上:不要な処理をスキップしたり、適切な処理だけを実行したりすることで、フローの実行効率が向上します。また、人間による手動での判断や振り分け作業が不要になるため、判断ミスや処理漏れといったヒューマンエラーを根本から防ぐことができます。
- データの整合性を保つ:データの内容に応じて適切な処理を行うことで、転記ミスや誤った情報の記録を防ぎ、データの正確性と整合性を高めることができます。
- フローの柔軟性と保守性の向上:条件分岐を適切に使うことで、フローが将来的な業務ルールの変更や、新しいデータパターンにも比較的容易に対応できるようになります。フロー全体の可読性も向上し、後からの管理や修正がしやすくなります。
Power Automateで「条件分岐」を設定する主要なアクション
Power Automateで条件分岐を設定するには、「条件」(Condition)というアクションを使います。これが、フローに「判断」させるための中心的な機能です。
「条件」アクションの仕組み
「条件」アクションは、あなたが設定した条件式を評価し、その結果が「真(True)」であれば「はい」のパス(道筋)へ、もし「偽(False)」であれば「いいえ」のパス(道筋)へ、それぞれフローの実行を分岐させます。
「条件」アクションの主な設定項目
「条件」アクションを設定する際には、主に以下の項目を設定します。
- 比較する値(左側のボックス):条件を判断するために使いたいデータや変数を指定します。これは、前のステップから取得した「動的なコンテンツ」(例: メールアクションから取得した「件名」や「差出人」、SharePointリストの「ステータス」列の値など)を選ぶことが多いです。
- 比較演算子(中央のドロップダウン):二つの値をどのように比較するかを決めます。例えば、以下のような演算子が使われます。
- 次に等しい: 二つの値が全く同じであるか
- 次に等しくない: 二つの値が異なるか
- より大きい/より小さい: ある数値が別の数値より大きいか/小さいか
- 次に含まれる: ある文字列が別の文字列の中に含まれているか
- 次で始まる/次で終わる: ある文字列が特定の文字で始まるか/終わるか
- が空白である/が空白ではない: 特定の値が空であるか/空ではないか
- 比較対象の値(右側のボックス):比較する値と比べたい、静的な値(例: 「完了」という文字列、「100」という数値)や、別の動的なコンテンツを指定します。
- 複数の条件を設定する場合(AND/OR):もし、同時に複数の条件を組み合わせて判断したい場合は、「+ 追加」ボタンをクリックして、新しい条件を追加できます。
- AND(すべて): 追加されたすべての条件がすべて満たされた場合にのみ「はい」のパスに進みます。一つでも満たされないと「いいえ」のパスに進みます。
- OR(いずれか): 追加された条件のうち、いずれか一つでも満たされれば「はい」のパスに進みます。すべての条件が満たされない場合にのみ「いいえ」のパスに進みます。
Power Automateで「条件分岐」を設定する具体的な手順
ここでは、「Teams(チームズ)に届いたメッセージに特定のキーワードが含まれていたら、特別な通知を送り、そうでなければ何もしない」というフローを例に、具体的な作成手順をステップバイステップで解説します。
事前準備:Power Automateの基本的なフローを作成
- Power Automateで新しいフローを作成します。ウェブブラウザでPower Automate(https://www.google.com/search?q=make.powerautomate.com)にアクセスし、あなたのMicrosoft 365アカウントでサインインします。
左側のメニューから「作成」をクリックし、「自動化したクラウド フロー」を選択してください。
フローに分かりやすい名前を付けます(例:「Teamsメッセージキーワード通知」)。
- トリガーを設定します。トリガーの検索ボックスに「Teams」と入力し、「新しいチャネルメッセージが追加されたとき (Teams)」を選択してください。
- チーム: 監視したいTeamsのチームを選択します。
- チャネル: チーム内のどのチャネルのメッセージを監視したいかを選択します。
- 「作成」ボタンをクリックします。
ステップ1:フローに「条件」アクションを追加する
Teamsの新しいメッセージがトリガーされた後、メッセージの内容を判断するための「条件」アクションを追加します。
- 「新しいチャネルメッセージが追加されたとき」トリガーの下に「新しいステップ」をクリックします。
- 検索ボックスに「条件」と入力し、「条件」アクションを選択してください。
ステップ2:条件を設定する
メッセージの内容を判断するための具体的な条件を設定します。ここでは、「メッセージの本文に『緊急』というキーワードが含まれているか」という条件を設定します。
- 「条件」アクションボックスが表示されます。
- 左側のボックスにカーソルを置きます。動的なコンテンツのウィンドウが表示されますので、「新しいチャネルメッセージが追加されたとき」のセクションから「メッセージの本文」を選択します。(これは、Teamsメッセージの本文全体です。)
- 中央のドロップダウンメニューで「次に含まれる」を選択します。これは、左側の値(メッセージ本文)の中に、右側の値(キーワード)が含まれているかどうかを判断する演算子です。
- 右側のボックスに比較したいキーワードを入力します。ここでは、「緊急」と入力します。
- 【オプション:複数の条件を追加する】:もし、「『緊急』が含まれていて、なおかつ『@自分』へのメンションがあった場合」というように、複数の条件を組み合わせたい場合は、「+ 追加」ボタンをクリックします。「AND」または「OR」で条件を組み合わせることができます。「AND」は全ての条件を満たす場合に「はい」へ、「OR」はいずれか一つでも満たせば「はい」へ進みます。
例えば、ANDで「メッセージの本文」が「次に含まれる」「緊急」という条件と、「メッセージの本文」が「次に含まれる」「@あなたのユーザー名」(またはあなたのユーザーの動的なコンテンツ)という条件を組み合わせれば、より厳密な通知が可能です。
ステップ3:「はい」のパスに処理を追加する(条件が真の場合)
設定した条件が「真」(正しい)だった場合に実行したい処理を設定します。今回の例では、特別な通知を送信します。
- 「条件」アクションの「はい」という緑色のパスにある「アクションの追加」をクリックします。
- 検索ボックスに「Teams」と入力し、「チャットまたはチャネルでメッセージを投稿する」アクションを選択してください。
- 通知アクションを設定します。
- 「投稿者」: 「Flow bot」を選択します。
- 「投稿先」: 「チャネル」を選択し、緊急通知用のチャネルを選びます。
- 「メッセージ」: 「【緊急アラート!】緊急キーワードが検出されました!」といった、目立つメッセージを入力し、動的なコンテンツとして「新しいチャネルメッセージが追加されたとき」トリガーから「メッセージのリンク」や「メッセージの本文」などを挿入します。これにより、通知を受け取った人がすぐに詳細を確認できます。
ステップ4:「いいえ」のパスに処理を追加する(条件が偽の場合)
設定した条件が「偽」(正しくない)だった場合に実行したい処理を設定します。今回の例では、何もしない、または別の一般的な通知を送信します。
- 「条件」アクションの「いいえ」という赤いパスにある「アクションの追加」をクリックします。
- 何もしない場合: 検索ボックスに「コントロール」と入力し、「何もしない」(Terminate)アクションを選択してください。これにより、条件が偽だった場合はそこでフローが停止します。
- 別の処理を行う場合: 例えば、一般的な通知を別のチャネルに送ったり、ログを記録したりするアクションを追加できます。
ステップ5:フローを保存してテストする
すべての設定が完了したら、フローを保存してテストしましょう。
- 画面右上の「保存」ボタンをクリックします。
- 「テスト」ボタンをクリックし、「手動」を選択してテストを開始します。
- Teamsアプリを開き、監視対象のチャネルに、以下の2種類のメッセージを投稿してみてください。
- 1回目: 件名に「緊急」を含むメッセージ(例: 「【緊急】今日の会議は中止です」)
- 2回目: 件名に「緊急」を含まない通常のメッセージ(例: 「今日の進捗報告です」)
- Power Automateの実行履歴を確認し、それぞれのメッセージに対してフローが正しく「はい」のパスまたは「いいえ」のパスに進んでいるか、そしてTeamsに適切な通知が送信されているかを確認します。
これで、基本的な条件分岐のフローが完成し、自動で動作するようになります。
条件分岐を「賢く」使うための大切なポイント
Power Automateで条件分岐を使いこなすことは、フローの賢さと柔軟性を飛躍的に高めます。しかし、そのメリットを最大限に引き出し、スムーズな運用を実現するためには、いくつかの重要な注意点を理解し、適切に対処する必要があります。
1. 「比較する値」の「データ型」を常に意識する
条件を設定する際、比較する値のデータ型が非常に重要です。例えば、数値として扱うべきもの(例: 売上金額)を文字列として比較したり、日付の形式が一致していなかったりすると、条件が正しく判定されず、意図しないパスに進んでしまうことがあります。
対策
- 文字列を比較する場合は、大文字・小文字、全角・半角スペースの違いに注意してください。
- 数値の比較であれば、必ず
int()(整数に変換)やfloat()(浮動小数点数に変換)といった式を使って数値型に変換してから比較しましょう。 - 日付を比較する場合は、
formatDateTime()関数を使って、両方を同じ形式(例:yyyy-MM-dd)に変換してから比較することが重要です。
2. 複雑な条件は「式(Expression)」を駆使する
シンプルな条件はドロップダウンメニューから選べますが、複数のデータソースから取得した値を組み合わせたり、文字列の一部を抽出して比較したりするなど、より複雑な条件を判定したい場合は、「式(Expression)」を記述する必要があります。
活用例
- 「
AND(条件1,条件2)」や「OR(条件1,条件2)」といった論理関数を使って、複数の条件を組み合わせる。 contains(variables('MailBody'), 'キーワード')のように、文字列が特定のキーワードを含むかを判定する。greater(variables('SalesAmount'), 100000)のように、数値が特定のしきい値より大きいかを判定する。
学習のポイント: 最初は難しく感じるかもしれませんが、よく使う式や関数を少しずつ学ぶことで、条件分岐の表現力が飛躍的に向上します。
3. 「AND」と「OR」の組み合わせ順序に注意する
複数の条件を「AND」と「OR」で組み合わせる場合、その評価順序に注意が必要です。複雑な条件を組む際は、条件アクションを複数重ねる(ネストする)ことで、論理構造を明確にすることができます。
例「(A AND B)OR C」のような条件は、一つの条件アクションでは表現しにくい場合があります。この場合、「A AND B」を一つの条件アクションで判定し、その「はい」のパスと、別の「C」の条件を最終的な「OR」条件で組み合わせるといった工夫が必要です。
4. 「Else if」(そうでなければ、もし〜ならば)の実現方法
Power Automateの「条件」アクションは、基本的には「はい」か「いいえ」の二択ですが、例えば「もしAならば」「そうでなければ、もしBならば」「そうでなければC」といった多分岐を実現したい場合は、「条件」アクションを複数重ねる(ネストする)ことで実現できます。
やり方
最初の「条件」アクションの「いいえ」のパスの中に、次の「条件」アクションを追加していくことで、多段階の条件分岐を作成できます。
5. エラーハンドリングと通知の設定
条件分岐に使われるデータが、予期せず空(Null)だったり、取得に失敗したりする場合、その「条件」アクション自体がエラーになる可能性があります。
- 対策: 条件分岐を行う前に、その条件で使うデータが正しく取得されているか、空になっていないかなどを「条件」アクションで事前にチェックするロジックを組み込むことを検討してください。
- また、条件分岐のステップが予期せず失敗した場合に備えて、必ず「エラーハンドリング」を設定し、Power Automateのフローがエラーになったことを、自動でメールやTeamsに通知する仕組みを構築しておきましょう。これにより、問題発生時にすぐに気づき、対応することができます。
6. テスト環境での十分な検証
条件分岐は、フローのロジックが複雑になる部分です。本番環境で実際にフローを稼働させる前に、必ずテスト環境でフローを十分にテストしてください。
- すべてのパスをテスト: 条件が「はい」になる場合と「いいえ」になる場合、そして複数の条件を組み合わせている場合は、そのすべての組み合わせ(AND、ORの真偽パターン)をテストし、フローが期待通りのパスに進み、適切な処理が実行されるかを確認します。
- 境界値テスト: 数値の比較であれば、境界値(例: 「100より大きい」なら100の場合と101の場合)をテストします。
- データ欠損テスト: 条件で使うデータが空の場合や、予期しない形式だった場合にどうなるか、といったエラーシナリオも想定してテストを行うことで、本番稼働後のトラブルを未然に防ぎ、スムーズな運用を保証できます。
Power Automateの「条件分岐」で、フローに「判断力」を与えよう!
Power Automateで「条件分岐」を使いこなすことは、あなたの自動化されたフローに「判断力」を与え、単なる繰り返しの作業を超えて、より賢く、より柔軟に業務プロセスに対応できるようになります。
- 「条件」アクションが判断の中心となります。
- 「比較する値」「比較演算子」「比較対象の値」を正確に設定します。
- 「AND」や「OR」で複数の条件を組み合わせることができます。
- データ型の一致や式の記述に注意し、エラーハンドリングと徹底したテストを行うことが、信頼性の高い条件分岐フローを構築するための鍵となります。
これらの知識と手順を上手に活用して、あなたのPower Automateフローに「判断力」を与え、業務の効率を飛躍的に向上させてくださいね。

