クラウド フローを作成する際、条件 アクションを使用すると、1 つの値と別の値をすばやく比較できます。 ただし、複数の値を比較しなければならない場面もあります。 たとえば、スプレッドシートやデータベース テーブルの列の値を確認する場合です。
このチュートリアルでは、クラウド フローを作成して、 or
条件を使用します。
その他の一般的な表現のシナリオでは、条件 における and
、empty
、greater
、less
などのその他の表現の使い方について説明します。
前提条件
このチュートリアルを完了するために必要なものは次のとおりです。
- Power Automate へのアクセス。
- このチュートリアルの後半で説明するテーブルを含む独自のスプレッドシート。 Power Automate でアクセスできるように、Dropbox や Microsoft OneDrive などの場所にスプレッドシートを保存してください。
- Microsoft 365 Outlook (このチュートリアルでは Outlook を使用しますが、使用しているフローでサポートされているメール サービスであれば何でも使用できます。)
クラウド フローを作成
クラウド フローは、Copilot の自然言語を使用して作成することも、ゼロから作成することもできます。 Copilot にアクセスできる場合は、Copilot の使用 タブを選択してフローを作成します。 Copilot にアクセスできない場合は、Copilot なし タブを選択します。
Power Automate にサインインします。
Copilot にフローの作成を依頼します。 次のプロンプトをコピーし、Copilot フィールドに貼り付けます。
Every week, list rows in an Excel table, and if the Status column equals Succeeded or claim manager's email is jake@contoso.com, delete Excel row.
生成を選択します。
保持して続行する を選択します。
接続をレビューします。 データ ソースが正しく接続されている場合、アプリまたはサービスの横に緑色のチェックマークが表示されます。 緑色のチェックマークが表示されない場合は、アプリまたはサービスを選択し、指示に従います。
接続を設定したら、フローの作成を選択します。 デザイナー画面が開きます。 ここで、必要に応じてクラウド フローを構成できます。
スプレッドシートを選択してすべての行を取得するに移動します。
スプレッドシートを選択し、すべての行を取得する
クラウド フローを作成したら、状態列を持つスプレッド シートのテーブルを取得します。 状態列に指定できる値は以下のとおりです:
項目の値が valueA
または valueB
の場合にアクションを行うワークフローがあります。 たとえば、スプレッドシート テーブルのタスクの状態を追跡します。 テーブルに Status という名前の列があり、この列の入力可能値は次のようになっていると想定します。
completed
blocked
unnecessary
not started
スプレッドシートは、たとえば、次のようになります。
スプレッド シートを操作するには、デザイナー から始めます。 この操作は、新しいデザイナーまたはクラシック デザイナーで行います。 手順はどちらのデザイナーでも似ています。 事例付きの詳細は、新しいデザイナーとクラシックなデザイナーの違いを見分けるをご参照ください。
クラウド フローを作成するか、左のナビゲーション ウィンドウ >編集でマイ フローを選択して、既存のクラウド フローのリストから 1 つを選択します。
デザイナーで、テーブルに存在する行のリスト アクション カードを選択します。
パラメーター タブで、場所、ドキュメント ライブラリ、ファイル、テーブルを選択します。
構成ペインの右上隅にある (<<) を選択して、構成ペインを折りたたみます。
条件の追加に移動します。
条件の追加
スプレッドシート テーブルの各行の 状態 列の値をチェックする条件を追加する前に、このチュートリアルで以下の手順を実行したことを確認してください:
-
クラウド フローを作成する
- または、左のナビゲーション ウィンドウ >編集でマイ フローを選択して、既存のクラウド フローのリストから 1 つを選択します。
- スプレッドシートを選択し、すべての行を取得する
デザイナーで、プラス記号 (+) >アクションの追加 を選択して新しいステップを追加します。
アクションの追加 画面で、それぞれに適用 を検索し、コントロール 配下の それぞれに適用 を選択します。
フィールド内を選択し、稲妻のアイコンを選択して、前のステップからの出力を選択ボックスに値トークンを追加します。
この値トークンは、スプレッドシート テーブルとそのすべてのデータを表します。
それぞれに適用カードで、プラス記号 (+) >アクションの追加 を選択して新しいステップを追加します。
条件を検索して、次に条件コントロールを選択します。
次の OR 式を追加します。 この OR 式は、テーブルの各行の値をチェックします。
状態列の値が補完されている場合、または不要な場合、OR式は true と評価されます。
次の図は、条件カードの例を示しています。
一致する行をスプレッドシートから削除するに移動します。
一致する行をスプレッドシートから削除する
このチュートリアルでは、Or 条件を使用してスプレッドシートから completed
または unnecessary
の値を持つ行を削除します。
行の削除 アクションを追加する前に、次の手順を実行したことを確認してください。
-
クラウド フローを作成する
- または、左のナビゲーション ウィンドウ >編集でマイ フローを選択して、既存のクラウド フローのリストから 1 つを選択します。
- スプレッドシートを選択し、すべての行を取得する
- 条件の追加
デザイナーで、プラス記号 (+) を選択して、True の条件分岐で、アクションを追加します。
Or 条件が true として評価された場合、True分岐が実行されます。
Excel Online (Business) を検索して行を削除を選択します。
行の削除 パネルで、このチュートリアルの前半の 表内に存在する行を一覧表示する カードにこれらのボックスを設定したのとまったく同じように、位置、ドキュメント ライブラリ、ファイル、テーブル のボックスを設定します。
キー列 ドロップダウン リストで _PowerAppsId_ を選択します。
キー値フィールドに _PowerAppsId_動的値を挿入します。
クラウド フローを保存してテストするに移動します。
クラウド フローを保存してテストする
- デザイナーで 保存 を選択します。 緑色のメッセージで、フローは準備完了です。テストすることをお勧めしますと表示されます。
- フローを実行するには、テスト を選択します。
- フローのテスト ペインで、手動 > テストを選択します。
- フローの実行 パネルで フローの実行 を選択します。 フローが正しく設定されている場合、フローの実行が正常に開始されました。監視するには、フローの実行ページに移動してください というメッセージが表示されます。
- フローの実行を閉じるには、完了を選択します。
ご報告: ここまでで、状態列の値が completed
または unnecessary
の場合、スプレッドシート テーブルから行を削除するクラウドフローを作成しました。 実行完了後のスプレッドシートは次のようになります。
Status 列が完了済みまたは不要の行からすべてのデータが削除されています。
その他の一般的な式のシナリオ
このセクションでは、条件で他の式を使用する方法について説明します。 各シナリオで、チュートリアルで次の手順を実行したことを確認してください。
-
クラウド フローを作成する
- または、左のナビゲーション ウィンドウ >編集でマイ フローを選択して、既存のクラウド フローのリストから 1 つを選択します。
- スプレッドシートを選択し、すべての行を取得する
-
条件の追加
- 条件の追加の手順で、条件 カードで使用するこのセクションの式を適用します。
条件では、次の論理式をあらゆる組み合わせで使用できます。
式 | 内容 | 例 |
---|---|---|
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') |
'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 のワークフロー式関数のリファレンス ガイドを参照してください。