複数の値を確認する条件で式を使用する
このチュートリアルでは、式と条件を利用し、詳細モードで複数の値を比較する方法について学習します。
クラウド フローを作成するとき、基本モードで条件 カードを使用し、単一の値を別の値と簡単に比較できます。 ただし、複数の値を比較しなければならない場面もあります。 たとえば、スプレッドシートやデータベース テーブルの列の値を確認する場合です。
条件では、次の論理式をあらゆる組み合わせで使用できます。
式 | 内容 | 例 |
---|---|---|
and | 2 つの引数を受け取り、両方の値が true の場合は true を返します。 注: 両方の引数をブール値にする必要があります。 |
この式は false を返します。 and(greater(1,10),equals(0,0)) |
or | 2 つの引数を受け取り、どちらかの引数が true の場合は true を返します。 注: 両方の引数をブール値にする必要があります。 |
次の式は、true を返します。or(greater(1,10),equals(0,0)) |
等しい | 2 つの値が等しい場合に true を返します。 | たとえば、parameter1 が someValue のとき、次の式は true を返します。equals(parameters('parameter1'), 'someValue') |
less | 2 つの引数を受け取り、最初の引数が 2 番目の引数よりも小さい場合、true を返します。 注: サポートされている型は整数、浮動小数点数、文字列です。 |
次の式は、true を返します。less(10,100) |
lessOrEquals | 2 つの引数を受け取り、最初の引数が 2 番目の引数よりも小さい、または等しい場合は true を返します。 注: サポートされている型は整数、浮動小数点数、文字列です。 |
次の式は、true を返します。lessOrEquals(10,10) |
greater | 2 つの引数を受け取り、最初の引数が 2 番目の引数よりも大きい場合は true を返します。 注: サポートされている型は整数、浮動小数点数、文字列です。 |
次の式は、false を返します。greater(10,10) |
greaterOrEquals | 2 つの引数を受け取り、最初の引数が 2 番目の引数よりも大きい、または等しい場合は true を返します。 注: サポートされている型は整数、浮動小数点数、文字列です。 |
次の式は、false を返します。greaterOrEquals(10,100) |
empty | オブジェクト、配列、文字列が空の場合は true を返します。 | 次の式は、true を返します。empty('') |
not | 逆のブール値を返します。 | 次の式は、true を返します。not(contains('200 Success','Fail')) |
if | 式の結果が true か false の場合、特定の値を返します。 | 次の式は、「yes」を返します。if(equals(1, 1), 'yes', 'no') |
前提条件
このチュートリアルを完了するために必要なものは次のとおりです。
- Power Automate へのアクセス。
- このチュートリアルの後半で説明するテーブルを含む独自のスプレッドシート。 Power Automate でアクセスできるように、Dropbox や Microsoft OneDrive などの場所にスプレッドシートを保存してください。
- Microsoft 365 Outlook (ここで Outlook を使用するとき、サポートされているあらゆる電子メール サービスをフローで利用できます。)
「or」式を使用する
項目の値が valueA または valueB の場合にアクションを行うワークフローがあります。 たとえば、スプレッドシート テーブルのタスクの状態を追跡します。 テーブルに Status という名前の列があり、この列の入力可能値は次のようになっていると想定します。
- 完了済み
- ブロック済み
- 不要
- 開始前
スプレッドシートは、たとえば、次のようになります。
先のスプレッドシートの場合、Power Automate を利用し、たとえば、状態 列が 完了済み または 不要 に設定されているすべての行を削除します。
フローを作成してみましょう。
空のフローから始める
Power Automate にサインインする。
左ペインで 自分のフロー を選択します。
新しいフロー>スケジュール済みクラウド フローの順に選択します。
トリガーをフローに追加する
自分のフローに名前を付けます。
一日一回フローを実行するようにスケジュールを設定します。
作成ボタンを選択して、次のステップに進みます。
注意
- Power Automate は、クラシック クラウド フロー デザイナー、または Copilot 機能を備えた新しいモダン デザイナーを使用します。 使用しているデザイナーを特定するには、クラウド フロー デザイナーについて の 注 セクションに移動します。
- クラシック デザイナーとモダン デザイナーを切り替えると、フローを保存するように求められます。 すべての エラー が解決されるまで、保存と切り替えることはできません。
スプレッドシートを選択し、すべての行を取得する
Copilot にフローの作成を依頼します。 Copilot に次のプロンプトを入力してください:
毎週、Excel テーブルの行をリストし、ステータス列が成功、またはクレーム マネージャーの電子メールが jake@contoso.com の場合は、Excel 行を削除します
送信
を選択します。
あるいは、以下の手順に従って同じフローを手動で作成することもできます:
プラス記号 (+) >アクションの追加 を選択して、新しいステップを追加します。
行を検索し、Excel Online (Business)を選択し、使用しているスプレッド シートに対応する 行を取得する アクションを選択します。
たとえば、Google スプレッドシートを使用している場合、Google スプレッドシート - 行の取得を選択します。
表内に存在する行を一覧表示するアクションを選択します。
データが含まれている場所、ドキュメント ライブラリ、ファイル、テーブルを選択します。
各行の状態列を確認する
プラス記号 (+) >アクションの追加 を選択して、新しいステップを追加します。
アクションの追加 画面で、それぞれに適用 を検索し、コントロール 配下の それぞれに適用 を選択します。
避雷針のアイコンを選択して、前のステップから出力を選択する ボックスに 値 トークンを追加します。
この値トークンは、スプレッドシート テーブルとそのすべてのデータを表します。
それぞれに適用カードで、プラス記号 (+) >アクションの追加 を選択して新しいステップを追加します。
条件を検索して、次に条件コントロールを選択します。
次の OR 式を追加します。 この OR 式は、テーブルの各行の値をチェックします。
状態列の値が補完されている場合、または不要な場合、OR式は true と評価されます。
次の図は、条件カードの例を示しています。
一致する行をスプレッドシートから削除する
条件のはいの場合の分岐で、アクションの追加を選択します。
Or 条件が true として評価された場合、はいの場合分岐が実行されます。
行の削除を検索し、Excel Online (ビジネス) を選択して、次に行の削除を選択します。
行の削除カードで、このチュートリアルの前半の表内に存在する行を一覧表示するカードにこれらのボックスを設定したのと全く同じように、位置、ドキュメント ライブラリ、ファイル、テーブル ボックスを設定します。
キー列 ドロップダウン リストで _PowerAppsId_ を選択します。
キー値フィールドに _PowerAppsId_動的値を挿入します。
使用しているフローを保存します。
'or' 式を含むフローを実行する
保存後、フローが実行されます。 このチュートリアルの前半で説明したスプレッドシートを作成すると、そのスプレッドシートは実行後、次のようになります。
Status 列が完了済みまたは不要の行からすべてのデータが削除されています。
'and' 式を使用する
2 つの列を含むスプレッドシート テーブルがあると仮定します。 列の名前は Status と Assigned です。 また、Status 列の値がブロック済みで、Assigned 列の値が John Wonder の場合、すべての行を削除するとします。 このタスクを実行するには、このチュートリアルの前述のすべての手順に従いますが、詳細設定モードで条件カードを編集する場合は、以下の and 式を使用します。
@and(equals(item()?['Status'], 'blocked'), equals(item()?['Assigned'], 'John Wonder'))
次の図は、条件カードの例を示しています。
'and' 式を含むフローを実行する
このチュートリアルの手順を実行した場合、スプレッドシートは次のスクリーンショットのようになります。
フローが実行されると、スプレッドシートは次のスクリーンショットのようになります。
'empty' 式を使用する
スプレッドシートに空の行があることに注目してください。 それらを削除するには、empty 式を利用し、Assigned 列と Status 列にテキストが入っていないすべての行を特定します。
このタスクを実行するには、このチュートリアルの前半の'and' 式を使用するセクションにあるすべての手順に従います。 詳細モードの条件カードを編集する際、次の empty 式を使用します。
@and(empty(item()?['Status']), empty(item()?['Assigned']))
条件カードは、次のスクリーンショットのようになります。
フローが実行されると、スプレッドシートは次のスクリーンショットのようになります。
余分な行がテーブルから削除されていることにご注意ください。
'greater' 式を使用する
同僚のために野球のチケットを購入し、スプレッドシートを使用して同僚からの返済を確認するとします。 全額を支払っていない同僚にメールを毎日送信するクラウド フローをすばやく作成できます。
greater 式を使用し、全額を支払っていない従業員を特定します。 全額を支払っていない同僚に催促のメールを自動送信できます。
このスプレッドシートは次のようになります。
greater 式が実装されていますが、これにより支払額が全額に達していないすべての従業員が特定されます。
@greater(item()?['Due'], item()?['Paid'])
'less' 式を使用する
同僚のために野球のチケットを購入し、スプレッドシートを利用して同僚からの返済を確認するとします。返済は各同僚が同意した日付までとします。 支払期日到達まで 1 日未満になっても全額支払いが完了していない同僚にアラーム メールを送信するクラウド フローを作成できます。
評価する条件が 2 つあるため、and 式と less 式を併用します。
検証する条件 | 使用する式 | 例 |
---|---|---|
全額が支払われましたか? | greater | @greater(item()?['Due'], item()?['Paid']) |
期日到達まで 1 日未満になっていますか? | less | @less(item()?['DueDate'], addDays(utcNow(),1)) |
'and' 式の中で 'greater' 式と 'less' 式を組み合わせます
greater 式を使用し、全額を支払っていない従業員を特定します。less 式を使用し、期日到達まで 1 日未満になっているか確認します。 次に、電子メールの送信 アクションを利用して、期日到達まで 1 日未満になっても全額を支払っていない従業員に催促の電子メールを送信します。
このスプレッドシート テーブルは次のようになります。
and 式が実装されていますが、この関数により、期日到達まで 1 日未満になっても全額を支払っていないすべての従業員が特定されます。
@and(greater(item()?['Due'], item()?['Paid']), less(item()?['dueDate'], addDays(utcNow(),1)))
式で関数を使用する
いくつかの式は、クラウド フローの実行が開始するときにまだ存在していない可能性があるランタイム アクションから値を取得します。 式でこれらの値を参照したり使用したりするには、ワークフロー定義言語で提供される関数を使用します。 詳細情報。 詳細については、Azure Logic Apps と Power Automate のワークフロー式関数のリファレンス ガイドを参照してください。