次の方法で共有


If 関数と Switch 関数

適用対象: キャンバス アプリ Copilot Studio Desktop フロー Dataverse 数式列 モデル駆動型アプリ Power Platform CLI Dataverse 関数 Power Pages

セット内の条件が true (If) であるか、数式の結果がセット内の任意の値と一致するか (Switch)、結果を返すか、アクションを実行するかを決定します。

内容

If関数は、真の結果が見つかるまで 1 つ以上の条件をテストします。 If このような結果が見つかると、対応する値が返されます。 If このような結果が見つからない場合は、既定値が返されます。 いずれの場合も、返される値は、表示する文字列、評価する数式、または別のフォームの結果となります。

Switch関数は、数式を評価し、指定したシーケンス内の任意の値と結果が一致するかどうかを判断します。 If 一致が見つかった場合は、対応する値が返されます。 If 一致するものが見つからない場合は、既定値が返されます。 いずれの場合も、返される値は、表示する文字列、評価する数式、または別のフォームの結果となります。

IfSwitch は非常に似ていますが、状況に最適な関数を使用する必要があります。

  • Ifを使用して 1 つの条件を評価します。 この関数の最も一般的な構文は If( Condition, ThenResult, DefaultResult ) で、共通の "if ... そうしたら。。。 else …」 構文を使用します。
  • Ifを使用して、関連のない複数の条件を評価します。 Power Apps では (Microsoft Excel とは異なり)、数式を入れ子にしなくても複数の条件 If 指定できます。
  • Switchを使用して、1 つの条件を複数の一致に対して評価します。 この場合は If を使用することもできますが、可能な一致ごとに数式を繰り返す必要があります。

これらの関数は両方とも、2 つ以上のアクション間で分岐するために、動作の数式 で使用できます。 アクションをトリガーする分岐は 1 つだけです。 条件および一致が順番に評価され、条件が true または一致が見つかった場合は停止します。

どの条件も true でなく、一致するものが見つからず、デフォルトの結果を指定していない場合は、空白が返されます。

構文

If( Condition, ThenResult [, DefaultResult ] )
If( Condition1, ThenResult1 [, Condition2, ThenResult2, ...[ , DefaultResult ] ])

  • 条件 - 必須。 true をテストする数式。 これらの数式には、一般的に、比較演算子 (<>= など)、および IsBlankIsEmpty などのテスト関数が含まれています。
  • ThenResults - 必須。 true と評価される条件に対して返される対応する値。
  • DefaultResult - オプション。 true と評価される条件がない場合に返される値。 If この引数を指定しない場合は 、空白 が返されます。

Switch( 数式, Match1, Result1 [, Match2, Result2, ...[, DefaultResult ] ])

  • - 必須。 一致を評価する数式。 この数式は、1 回だけ評価されます。
  • 一致 - 必須。 Formula の結果と比較する値。 If 完全一致が見つかった場合は、対応する 結果 が返されます。
  • 結果 - 必須。 完全一致が見つかった場合に返される対応する値。
  • DefaultResult - オプション。 If 完全一致が見つからない場合、この値が返されます。 If この引数を指定しない場合は 、空白 が返されます。

数式の値

次の例では、Slider コントロール (Slider1 という名前) に 25 の値が設定されています。

内容 Result
If( Slider1.Value = 25, "Result1" ) 条件は true で、対応する結果が返されます。 "Result1"
If( Slider1.Value = 25, "Result1", "Result2" ) 条件は true で、対応する結果が返されます。 "Result1"
If( Slider1.Value > 1000, "Result1" ) 条件は false で、DefaultResult が指定されていません。 空白
If( Slider1.Value > 1000, "Result1", "Result2" ) 条件は false で、DefaultResult が指定され、それが返されます。 "Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) 1 つ目の条件は true で、対応する結果が返されます。 2 つ目の条件も true ですが、true と評価される条件よりも後に引数リストに表示されるため、評価されません。 "Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) スライダーが 空白 ではないため、1 つ目の条件は false です。 スライダーの値は数値であるため、2 つ目の条件は true になり、対応する結果が返されます。 "Result2"
If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") 1 つ目と 2 つ目の条件の両方とも false であり、DefaultResult が指定されて返されます。 "Result3"
Switch( Slider1.Value, 25, "Result1" ) スライダーの値は、チェックされる 1 つ目の値と一致し、対応する結果が返されます。 "Result1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) スライダーの値は、チェックされる 2 つ目の値と一致し、対応する結果が返されます。 "Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) スライダーの値は、チェックされるどの値とも一致しません。 DefaultResult が指定されているので、返されます。 "DefaultResult"

動作の数式の分岐

次の例では、FirstName という名前のText input コントロールに "John" の値が入力されています。

内容 Result
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) 条件は true なので、Navigate 関数が実行されます。 IsBlank 関数を使用して、必要なフォーム フィールドが入力されたかどうかをテストすることができます。 If FirstName空白の場合、この数式は無効になります。 真実

表示が Screen1 に変更されます。
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) 演算子 ! がない場合、条件は false なので、Navigate 関数は実行されません。 Back 関数が DefaultResult として指定され、実行します。 真実

表示は、前に表示されていたスクリーンに戻ります。
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) FirstName.Text の値は "Carlos"、"Kirstin"、および "John" というその順序で比較されます。 "John" との一致が見つかり、アプリは Screen3 に移動します。 真実

表示が Screen3 に変更されます。

手順

  1. Text input コントロールを追加し、既定でその名前が付いていない場合は、Text1 という名前を付けます。

  2. Text130 と入力します。

  3. Label コントロールを追加し、その Text プロパティを次の数式に設定します:
    If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    ラベルコントロールではもっと注文を!が表示されます。これは、Text1 の値が 20 以上 40 未満であるためです。

  4. Text115 と入力します。

    ラベルコントロールではさらにたくさんの注文を!が表示されます。これは、Text1 の値が 20 未満であるためです。

  5. Text150 と入力します。

    Label コントロールは、入力した値が 40 を超えているため表示されます。