複数の値を確認する条件で式を使用する

このチュートリアルでは、式と条件を利用し、詳細モードで複数の値を比較する方法について学習します。

クラウド フローを作成するとき、基本モードで条件 カードを使用し、単一の値を別の値と簡単に比較できます。 ただし、複数の値を比較しなければならない場面もあります。 たとえば、スプレッドシートやデータベース テーブルの列の値を確認する場合です。

条件では、次の論理式をあらゆる組み合わせで使用できます。

内容
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 という名前の列があり、この列の入力可能値は次のようになっていると想定します。

  • 完了済み
  • ブロック済み
  • 不要
  • 開始前

スプレッドシートは、たとえば、次のようになります。

Status 列のあるサンプル スプレッドシートのスクリーンショット。

先のスプレッドシートの場合、Power Automate を利用し、たとえば、状態 列が 完了済み または 不要 に設定されているすべての行を削除します。

フローを作成してみましょう。

空のフローから始める

  1. Power Automate にサインインします。

  2. 左ペインで 自分のフロー を選択します。

    [自分のフロー] オプションが表示されたメニューのスクリーンショット。

  3. 新しいフロー>スケジュール済みクラウド フローの順に選択します。

    スケジュール済クラウド フロー作成のスクリーンショット。

トリガーをフローに追加する

  1. 自分のフローに名前を付けます。

  2. 一日一回フローを実行するようにスケジュールを設定します。

  3. 作成ボタンを選択して、次のステップに進みます。

    スケジュールの設定のスクリーンショット。

スプレッドシートを選択し、すべての行を取得する

  1. 新しいステップ を選択します。

    [新しいステップ] ボタンのスクリーンショット。

  2. を検索し、Excel Online (Business) を選択します。

    Note

    使用しているスプレッドシートに対応する「行の取得」アクションを選択します。 たとえば、Google スプレッドシートを使用している場合、Google スプレッドシート - 行の取得を選択します。

  3. 表内に存在する行を一覧表示するアクションを選択します。

    スプレッドシートの行を取得するスクリーンショット。

  4. データが含まれている場所ドキュメント ライブラリファイルテーブルを選択します。

    テーブル カードにあるリスト行の [場所]、[ドキュメント ライブラリ]、[ファイル]、および [テーブル] フィールドのスクリーンショット。

各行の状態列を確認する

  1. 新しいステップ を選択します。

  2. それぞれへの適用を検索して、次にそれぞれに適用する - コントロールを選択します。

    [それぞれに適用する - コントロール] のスクリーンショット。

  3. トークンを前の手順から出力を選択ボックスに追加します。

    このトークンは、スプレッドシート テーブルとそのすべてのデータを表します。

    [それぞれのカードに適用する] に値を追加する際のスクリーンショット。

  4. それぞれに適用するカードで、アクションの追加を選択します。

    [アクションを追加] ボタンのスクリーンショット。

  5. 条件を検索して、次に条件コントロールを選択します。

  6. 次の Or 式を追加します。 この Or 式は、テーブルの各行の値をチェックします。 状態 列の値が 完了済みまたは不要 の場合、Or 式は "true" として評価します。

    次の図は、条件カードの例を示しています。

    'Or' 式のスクリーンショット。

一致する行をスプレッドシートから削除する

  1. 条件のはいの場合の分岐で、アクションの追加を選択します。

    Or 条件が true として評価された場合、はいの場合分岐が実行されます。

  2. 行の削除を検索し、Excel Online (ビジネス) を選択して、次に行の削除を選択します。

    行を削除するスクリーンショット。

  3. 行の削除カードで、このチュートリアルの前半の表内に存在する行を一覧表示するカードにこれらのボックスを設定したのと全く同じように、位置ドキュメント ライブラリファイルテーブル ボックスを設定します。

  4. キー列 ドロップダウン リストで _PowerAppsId_ を選択します。

  5. キー値フィールドに _PowerAppsId_動的値を挿入します。

    [行カードの削除] の [キー列] フィールドと [キー値] フィールドのスクリーンショット。

  6. 使用しているフローを保存します。

'or' 式を含むフローを実行する

保存後、フローが実行されます。 このチュートリアルの前半で説明したスプレッドシートを作成すると、そのスプレッドシートは実行後、次のようになります。

'Or' 式が完了したときのスプレッドシートのスクリーンショット。

Status 列が完了済みまたは不要の行からすべてのデータが削除されています。

'and' 式を使用する

2 つの列を含むスプレッドシート テーブルがあると仮定します。 列の名前は StatusAssigned です。 また、Status 列の値がブロック済みで、Assigned 列の値が John Wonder の場合、すべての行を削除するとします。 このタスクを実行するには、このチュートリアルの前述のすべての手順に従いますが、詳細設定モードで条件カードを編集する場合は、以下の and 式を使用します。

@and(equals(item()?['Status'], 'blocked'), equals(item()?['Assigned'], 'John Wonder'))

次の図は、条件カードの例を示しています。

'and' 式のスクリーンショット。

'and' 式を含むフローを実行する

このチュートリアルの手順を実行した場合、スプレッドシートは次のスクリーンショットのようになります。

フローが実行される前のスプレッドシートのスクリーンショット。

フローが実行されると、スプレッドシートは次のスクリーンショットのようになります。

フローが実行された後のスプレッドシートのスクリーンショット。

'empty' 式を使用する

スプレッドシートに空の行があることに注目してください。 それらを削除するには、empty 式を利用し、Assigned 列と Status 列にテキストが入っていないすべての行を特定します。

このタスクを実行するには、このチュートリアルの前半の'and' 式を使用するセクションにあるすべての手順に従います。 詳細モードの条件カードを編集する際、次の empty 式を使用します。

@and(empty(item()?['Status']), empty(item()?['Assigned']))

条件カードは、次のスクリーンショットのようになります。

'empty' 式のスクリーンショット。

フローが実行されると、スプレッドシートは次のスクリーンショットのようになります。

'empty' が実行された後のスプレッドシートのスクリーンショット。

余分な行がテーブルから削除されていることにご注意ください。

'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 のワークフロー式関数のリファレンス ガイドを参照してください。