Power AppsのIfとSwitch。条件分岐の書き方と場面別の使い分け

IfとSwitchは何が違うのか

Power AppsのIfとSwitch、どちらも条件分岐に使いますが、使い分けを理解しておくと数式がずっと読みやすくなります。一言で言えば、条件が1〜2つならIf、同じ値との比較が3つ以上続くならSwitchが向いています。

とはいえ正解は1つではなく、どちらで書いても動くことが多いです。大事なのは後から見て何をしているか理解できる数式になっているかどうかです。この記事では判断基準と書き方を整理します。

If関数の基本と使い所

If関数は、条件がtrueかfalseかで処理を分岐します。構文はシンプルです。

If(条件, trueのとき, falseのとき)

複数の条件を連鎖させることもできます(else ifに相当)。

If(
    点数 >= 90, "優",
    点数 >= 70, "良",
    点数 >= 50, "可",
    "不可"
)

最後の値はデフォルト(どの条件にも当てはまらなかった場合)です。

Ifが向いているケース

Ifは条件の内容が多様なときに使いやすいです。数値の大小比較や、複数のフィールドを組み合わせた複合条件など、値の種類に関係なく柔軟に書けます。

  • 数値の範囲での分岐(以上・以下・範囲内)
  • 複数フィールドの組み合わせ(AかつB、またはC)
  • 2択のシンプルな分岐

特にColorプロパティへの適用は実務でよく使います。ステータスによって文字色を変えたいとき、こんな書き方をします。

If(
    ThisItem.ステータス = "完了", Color.Gray,
    ThisItem.ステータス = "エラー", Color.Red,
    Color.Black
)

Switch関数の基本と使い所

Switch関数は、ある1つの値が複数の候補のどれと一致するかで分岐します。

Switch(
    対象の値,
    候補1, 結果1,
    候補2, 結果2,
    候補3, 結果3,
    デフォルト
)

先ほどのステータスによる文字色変更をSwitchで書き直すとこうなります。

Switch(
    ThisItem.ステータス,
    "完了", Color.Gray,
    "エラー", Color.Red,
    Color.Black
)

比較する対象(ThisItem.ステータス)が1回しか出てこないので、Ifで書くより読みやすくなっています。候補が4つ5つと増えてきたときほどSwitchの恩恵が大きくなります。

Switchが向いているケース

  • 同じ1つの値と複数の候補を比較する
  • 選択肢が3つ以上ある
  • ドロップダウンやコンボボックスの選択値による分岐

申請フローのステータス(下書き・申請中・承認済み・却下)のような、決まった値の集合に対して処理を振り分けるケースがSwitchの典型的な使い所です。

IfとSwitchの比較まとめ

観点IfSwitch
比較の種類任意の条件(大小・複合条件など)1つの値と複数候補の一致確認
読みやすさ条件が2〜3つまでなら読みやすい同じ値の比較が3つ以上のとき読みやすい
柔軟性どんな条件も書ける完全一致の比較のみ(範囲比較はできない)
デフォルト値最後の引数最後の引数

個人的には、2択か簡単な複合条件はIf、同じ列の値で3パターン以上に分岐するときはSwitch、と使い分けています。どちらでも動くので、後から読む人が迷わない書き方を選ぶのがいちばんです。

IfsとSwitchの活用パターン

ネストしたIfは読みにくい

Ifをネストして書く(Ifの中にIfを書く)と途端に読みにくくなります。条件が増えてきたと感じたら、連鎖Ifかswitchへの切り替えを検討しましょう。

例えばこれはわかりにくいです。

If(
    条件A,
    If(条件B, "パターン1", "パターン2"),
    If(条件C, "パターン3", "パターン4")
)

こういう場合はAndやOrで条件を整理するか、変数に一旦結果を入れてロジックを分割するほうが管理しやすくなります。

変数との組み合わせでロジックを整理する

複雑な分岐は変数に結果を入れておくとすっきりします。例えばボタンのOnSelectで条件判断をして変数にセットし、その変数をColorプロパティで参照する、というパターンです。数式の責任範囲が分かれて見通しがよくなります。

変数の使い方についてはこちらも参考にしてください。

Power Appsのグローバル変数とコンテキスト変数——違いと使い分けを図解

また、データの絞り込みに条件を使いたい場合はFilter関数との組み合わせも重要です。

Power AppsのFilter・Search・LookUp関数——3つの違いと使い分けガイド

まとめ

IfとSwitchはどちらも条件分岐ですが、使い分けのポイントは条件の種類と数です。範囲比較や複合条件はIf、同じ値の完全一致で3つ以上に分岐するときはSwitchを選ぶと数式が読みやすくなります。

どちらの関数も使いこなせるようになると、アプリの色の出し分けや操作可否の制御など、UIの動きをきめ細かくコントロールできるようになります。最初は簡単なColorプロパティの変更から試してみるのがおすすめです。楽しみながら使い分けを覚えていきましょう。

Xでフォローしよう