複数の値を確認する条件で式を使用するUse expressions in conditions to check multiple values

このチュートリアルでは、式と条件を利用し、詳細設定モードで複数の値を比較する方法について学習します。In this walkthrough, you'll learn to use expressions and Conditions to compare multiple values in Advanced mode.

フローを作成するとき、基本モードで条件カードを使用し、単一値を別の値と簡単に比較できます。When you create a flow, you can use the Condition card in basic mode to quickly compare a single value with another value. ただし、複数の値を比較しなければならない場面もあります。However, there're times when you need to compare multiple values. たとえば、スプレッドシートやデータベース テーブルの列の値を確認する場合です。For example, you may want to check the value of a few columns in a spreadsheet or database table.

条件では、次の論理式をあらゆる組み合わせで利用できます。You can use any combination of the following logical expressions in your conditions.

Expression 説明Description Example
andand 2 つの引数を受け取り、両方の値が true の場合は true を返します。Takes two arguments and returns true if both values are true.
: 両方の引数をブール値にする必要があります。Note: Both arguments must be Booleans.
次の式は、false を返します。This expression returns false:
and(greater(1,10),equals(0,0))and(greater(1,10),equals(0,0))
oror 2 つの引数を受け取り、どちらかの引数が true の場合は true を返します。Takes two arguments and returns true if either argument is true.
: 両方の引数をブール値にする必要があります。Note: Both arguments must be Booleans.
次の式は、true を返します。This expression returns true:
or(greater(1,10),equals(0,0))or(greater(1,10),equals(0,0))
equalsequals 2 つの値が等しい場合に true を返します。Returns true if two values are equal. たとえば、parameter1 が someValue のとき、次の式は true を返します。For example, if parameter1 is someValue, this expression returns true:
equals(parameters('parameter1'), 'someValue')equals(parameters('parameter1'), 'someValue')
lessless 2 つの引数を受け取り、最初の引数が 2 番目の引数よりも小さい場合、true を返します。Takes two arguments and returns true if the first argument is less than the second argument.
: サポートされる型は整数、浮動小数点数、文字列です。Note: The supported types are integer, float, and string.
次の式は、true を返します。This expression returns true:
less(10,100)less(10,100)
lessOrEqualslessOrEquals 2 つの引数を受け取り、最初の引数が 2 番目の引数と等しいかそれよりも小さい場合は true を返します。Takes two arguments and returns true if the first argument is less than or equal to the second argument.
: サポートされる型は整数、浮動小数点数、文字列です。Note: The supported types are integer, float, and string.
次の式は、true を返します。This expression returns true:
lessOrEquals(10,10)lessOrEquals(10,10)
greatergreater 2 つの引数を受け取り、最初の引数が 2 番目の引数よりも大きい場合は true を返します。Takes two arguments and returns true if the first argument is greater than the second argument.
: サポートされる型は整数、浮動小数点数、文字列です。Note: The supported types are integer, float, and string.
次の式は、false を返します。This expression returns false:
greater(10,10)greater(10,10)
greaterOrEqualsgreaterOrEquals 2 つの引数を受け取り、最初の引数が 2 番目の引数と等しいかそれよりも大きい場合は true を返します。Takes two arguments and returns true if the first argument is greater than or equal to the second argument.
: サポートされる型は整数、浮動小数点数、文字列です。Note: The supported types are integer, float, and string.
次の式は、false を返します。This expression returns false:
greaterOrEquals(10,100)greaterOrEquals(10,100)
emptyempty オブジェクト、配列、文字列が空の場合は true を返します。Returns true if the object, array, or string is empty. 次の式は、true を返します。This expression returns true:
empty('')empty('')
notnot 2 つの引数を受け取り、引数が true の場合は true を返します。Takes two arguments and returns true if the arguments are false.
: 両方の引数をブール値にする必要があります。Note: Both arguments must be Booleans.
次の式は、true を返します。This expression returns true:
not(contains('200 Success','Fail'))not(contains('200 Success','Fail'))
ifif 式の結果が true か false の場合、特定の値を返します。Returns a specific value if the expression results in true or false. 次の式は、"yes" を返します。This expression returns "yes":
if(equals(1, 1), 'yes', 'no')if(equals(1, 1), 'yes', 'no')

前提条件Prerequisites

  • Microsoft Flow にアクセスできること。Access to Microsoft Flow.
  • このチュートリアルの後半で説明するテーブルを含むスプレッドシート。A spreadsheet with the tables described later in this walkthrough. Microsoft Flow でアクセスできるように、Dropbox や Microsoft OneDrive などの場所にスプレッドシートを保存してください。Be sure to save your spreadsheet in a location such as Dropbox or Microsoft OneDrive so that Microsoft Flow can access it.
  • Microsoft Office 365 Outlook (Office 365 Outlook を使用するとき、サポートされているあらゆる電子メール サービスをフローで利用できます。)Microsoft Office 365 Outlook (While we use Office 365 Outlook, you can use any supported email service in your flows.)

or 式を使用するUse the or expression

ある項目の値が valueA valueB の場合にアクションを行うワークフローがあります。Sometimes your workflow needs to take an action if the value of an item is valueA or valueB. たとえば、スプレッドシート テーブルのタスクの状態を追跡記録します。For example, you may be tracking the status of tasks in a spreadsheet table. テーブルに Status という名前の列があり、Status 列の入力可能値は次のようになっていると想定します。Assume that the table has a column named Status and the possible values in the Status column are:

  • completed (完了済み)completed
  • blocked (ブロック済み)blocked
  • unnecessary (不要)unnecessary
  • not started (未開始)not started

スプレッドシートは、たとえば、次のようになります。Here's an example of what the spreadsheet might look like:

サンプルのスプレッドシート

先のスプレッドシートの場合、Microsoft Flow を利用し、たとえば、Status 列が completed または unnecessary に設定されているすべての行を削除します。Given the preceding spreadsheet, you want to use Microsoft Flow to remove all rows with a Status column that's set to completed or unnecessary.

フローを作成してみましょう。Let's create the flow.

空のフローから始めるStart with a blank flow

  1. Microsoft Flow にサインインします。Sign into Microsoft Flow.

    サインイン

  2. [自分のフロー] タブを選択します。Select the My flows tab.

    自分のフローの選択

  3. [一から作成] を選択します。Select Create from blank.

    一から作成する

トリガーをフローに追加するAdd a trigger to your flow

  1. [スケジュール] を探し、[スケジュール - 繰り返し] トリガーを選択します。Search for Schedule, and then select the Schedule - Recurrence trigger

    スケジュール トリガー

  2. 一日一回実行するようにスケジュールを設定します。Set the schedule to run once daily.

    スケジュールの設定

スプレッドシートを選択し、すべての行を取得するSelect the spreadsheet and get all rows

  1. [新しいステップ] > [アクションの追加] を選択します。Select New step > Add an action.

    新しいステップ

  2. [行] を探し、[Excel - 行の取得] を選択します。Search for rows, and then select Excel - Get rows.

    注: 使用しているスプレッドシートに対応する "行の取得" アクションを選択します。Note: Select the "get rows" action that corresponds to the spreadsheet that you're using. たとえば、Google スプレッドシートを使用している場合、[Google スプレッドシート - 行の取得] を選択します。For example, if you're using Google Sheets, select Google Sheets - Get rows.

    行を取得する

  3. [ファイル名] ボックスのフォルダー アイコンを選択し、データが含まれるスプレッドシートを探し、選択します。Select the folder icon in the File name box, browse to, and then select the spreadsheet that contains your data.

    スプレッドシートを選択する

  4. [テーブル名] 一覧のデータを含むテーブルを選択します。Select the table that contains your data from the Table name list.

    テーブルを選択する

各行の status 列を確認するCheck the status column of each row

  1. [新しい手順] > [その他] > [それぞれへの適用の追加] の順に選択します。Select New step > More > Add an apply to each.

    テーブルを選択する

  2. Value トークンを [以前の手順から出力を選択] ボックスに追加します。Add the Value token to the Select an output from previous steps box.

    テーブルを選択する

  3. [条件の追加] > [詳細設定モードで編集] の順に選択します。Select Add a condition > Edit in advanced mode.

  4. 次の or 式を追加します。Add the following or expression. この or 式はテーブル内の各行の値を確認します (式内でアクセスされるとき、行は項目として認識されます)。This or expression checks the value of each row in the table (a row is known as an item when accessed in a expression). status 列の値が completed unnecessary の場合、or 式は "true" として評価します。If the value of the status column is completed or unnecessary, the or expression evaluates to "true".

    or 式は次のように表示されます。The or expression appears as shown here:

    @or(equals(item()?['status'], 'unnecessary'), equals(item()?['status'], 'completed'))

    条件カードは次のイメージのようになります。Your Condition card resembles this image:

    or 式のイメージ

一致する行をスプレッドシートから削除するDelete matching rows from the spreadsheet

  1. 条件の [IF YES, DO NOTHING] 分岐で [アクションの追加] を選択します。Select Add an action on the IF YES, DO NOTHING branch of the condition.

  2. [行の削除] を探し、[Excel - 行の削除] を選択します。Search for Delete row, and then select Excel - Delete row.

    行の削除のイメージ

  3. [ファイル名] ボックスで、削除するデータが含まれるスプレッドシート ファイルを探し、選択します。In the File name box, search for, and select the spreadsheet file that contains the data you want to delete.

  4. [テーブル名] 一覧で、データを含むテーブルを選択します。In the Table name list, select the table that contains your data.

  5. [行 ID] ボックスに行 ID トークンを入力します。Place the Row id token in the Row id box.

    スプレッドシート ファイル

フローに名前を付け、保存するName the flow and save it

  1. フローに名前を付け、[フローの作成] ボタンを選択します。Give your flow a name and then select the Create flow button.

    フローを保存する

or 式を含むフローを実行するRun the flow with the or expression

保存後、フローが実行されます。The flow runs after you save it. このチュートリアルの前半で説明したスプレッドシートを作成すると、そのスプレッドシートは実行後、次のようになります。If you created the spreadsheet shown earlier in this walkthrough, here's what the it looks like after the run completes:

or 式が完了する

Status 列が "completed" か "unnecessary" の行からデータがすべて削除されています。Notice all data from rows that had "completed" or "unnecessary" in the Status column were deleted.

and 式を使用するUse the and expression

2 つの列を含むスプレッドシート テーブルがあると想定します。Assume you have a spreadsheet table with two columns. 列の名前は Status と Assigned です。The column names are Status and Assigned. また、Status 列の値が "blocked" で、Assigned 列の値が "John Wonder" の場合、すべての行を削除すると想定します。Assume also that you want to delete all rows if the Status column's value is "blocked" and the Assigned column's value is "John Wonder". このタスクを実行するには、このチュートリアルの前述のすべての手順に従います。ただし、詳細設定モードで条件カードを編集する場合は、以下の and 式を使用します。To accomplish this task, follow all steps earlier in this walkthrough, however, when you edit the Condition card in advanced mode, use the and expression shown here:

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

条件カードは次のイメージのようになります。Your Condition card resembles this image:

and 式のイメージ

and 式を含むフローを実行するRun the flow with the and expression

ここまで実行していれば、スプレッドシートは次のイメージのようになります。If you followed along, your spreadsheet resembles this image:

and 実行前

フローの実行後、スプレッドシートは次のイメージのようになります。After your flow runs, your spreadsheet resembles this image:

and 実行後

empty 式を使用するUse the empty expression

スプレッドシートに空の行が存在することに注目してください。Notice that there are several empty rows in the spreadsheet now. 空の行を削除するには、empty 式を利用し、Assigned 列と Status 列にテキストが入っていないすべての行を特定します。To remove them, use the empty expression to identify all rows that don't have any text in the Assigned and Status columns.

このタスクを遂行するには、このチュートリアルで先に紹介した「and 式を使用する」セクションのすべての手順を実行します。ただし、詳細設定モードで条件カードを編集するとき、下の empty 式を使用します。To accomplish this task, follow all steps listed in Use the and expression section earlier in this walkthrough, however, when you edit the Condition card in advanced mode, use the empty expression this way:

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

条件カードは次のイメージのようになります。Your Condition card resembles this image:

empty 式のイメージ

フローの実行後、スプレッドシートは次のイメージのようになります。After your flow runs, the spreadsheet resembles this image:

empty 実行後

余分な行がテーブルから削除されています。Notice extra lines are removed from the table.

greater 式を使用するUse the greater expression

同僚達のために野球のチケットを購入し、スプレッドシートを利用して同僚達からの返済を確認するとします。Imagine you've bought baseball tickets for your coworkers and you're using a spreadsheet to ensure you're reimbursed by each person. 全額を支払っていない同僚にメールを毎日送信するフローを簡単に作成できます。You can quickly create a flow that sends a daily email to each person who hasn't paid the full amount.

greater 式を利用し、全額を支払っていない同僚を特定します。Use the greater expression to identify the employees who haven't paid the full amount. 全額を支払っていない同僚には催促のメールを自動送信できます。You can then automatically send a friendly reminder email to those who haven't paid in full.

このスプレッドシートは次のようになります。Here's a view of the spreadsheet:

スプレッドシートのイメージ

greater 式が実装されていますが、この関数により、支払額が全額に達していないすべての同僚が特定されます。Here's the implementation of the greater expression that identifies all persons who have paid less than the amount due from them:

@greater(item()?['Due'], item()?['Paid'])

less 式を使用するUse the less expression

同僚のために野球のチケットを購入し、スプレッドシートを利用して同僚からの返済を確認するとします。返済は各同僚が同意した日付までとします。Imagine you've bought baseball tickets for your coworkers, and you're using a spreadsheet to ensure you're reimbursed by each person by the date to which everyone agreed. 支払期日到達まで 1 日未満になっても全額支払いが完了していない同僚に催促のメールを送信するフローを作成できます。You can create a flow that sends a reminder email to each person who hasn't paid the full amount if the current date is less than one day before the due date.

and 式と less 式を併用します。評価する条件が 2 つあるためです。Use the and expression along with the less expression since there are two conditions being validated:

評価する条件Condition to validate 使用する式expression to use Example
全額が支払われたか?Has the full amount due been paid? greatergreater @greater(item()?['Due'], item()?['Paid'])@greater(item()?['Due'], item()?['Paid'])
期日到達まで 1 日未満になっているか?Is the due date less than one day away? lessless @less(item()?['DueDate'], addDays(utcNow(),1))@less(item()?['DueDate'], addDays(utcNow(),1))

and 式の中で greater 式と less 式を組み合わせますCombine the greater and less expressions in an and expression

greater 式を利用し、全額を支払っていない同僚を特定します。less 式を利用し、期日到達まで 1 日未満になっているか判定します。Use the greater expression to identify the employees who have paid less than the full amount due and use the less expression to determine if the payment due date is less than one day away from the current date. 次に、[電子メールの送信] アクションを利用し、期日到達まで 1 日未満になっても全額を支払っていない同僚に催促のメールを送信します。You can then the Send an email action to send friendly reminder email to those who haven't paid in full and the due date is less than one day away.

このスプレッドシート テーブルは次のようになります。Here's a view of the spreadsheet table:

スプレッドシートのイメージ

and 式が実装されていますが、この関数により、期日到達まで 1 日未満になっても全額を支払っていないすべての同僚が特定されます。Here's the implementation of the and expression that identifies all persons who have paid less than the amount due from them and the due date is less than one day away from the current date:

@and(greater(item()?['Due'], item()?['Paid']), less(item()?['dueDate'], addDays(utcNow(),1)))

詳細については、こちらをご覧くださいLearn more

その他の式についてはこちらをご覧ください。Learn about other expressions