PowerAppsのSwich関数が超便利!If関数との違いと使い分けも解説

PowerApps Swich関数

PowerAppsで条件分岐を作るたびに、If関数が複雑になりすぎて困っていませんか。

コードが長くなり、どこを修正すればいいのか分からなくなってしまうこともあるでしょう。

もっとシンプルに条件分岐を管理したい

分かりやすい方法で条件に応じた処理を切り替えるには?

そんな悩みを解決するのがSwitch関数です。

Switch関数を使えば、1つの式を基準に複数の条件を簡潔に整理でき、If関数よりもスマートなコードを書けるようになります。

本記事では、基本的な使い方から実践的な応用例まで詳しく解説し、PowerAppsのアプリ開発をよりスムーズにする方法を紹介します。

これを読めば、複雑な条件分岐をシンプルに整理し、メンテナンスしやすいアプリを構築できるようになるでしょう。

PowerAppsをもっと効率的に学びたいと考えている方には、Udemyのオンライン講座がおすすめです。
初心者向けのコースが充実しており、動画で実践的に学べるため、独学よりもスムーズにスキルを習得できます。
特に、PowerAppsの基本操作や関数の使い方を体系的に学びたい方に最適です。

この記事を書いた人
  • 一部上場企業に勤める会社員
  • ITエンジニア未経験
  • 2024年7月から社内DX担当に異動
  • 同時期にPowerPlatformを始める
  • 効率的に学ぶためにブログスタート
ちょびです!
目次

Switch関数の基本構文と使用方法

Power AppsにおけるSwitch関数は、特定の式の結果に基づいて複数の条件を評価し、一致する結果を返すための便利な関数です。

これにより、複数の条件分岐をシンプルに記述できます。

基本構文の解説

Switch関数の基本的な構文は以下の通りです。

Switch(式, 値1, 結果1 [, 値2, 結果2, ..., 既定値])
Switch関数
  • 式: 評価される数式
  • 値1, 値2, …: 式の結果と比較する値
  • 結果1, 結果2, …: 対応する値と一致した場合に返される結果
  • 既定値: どの値とも一致しなかった場合に返される結果(省略可能)
複数の評価に対して結果を返す関数です

この構文により、指定した式の結果が特定の値と一致するかを順に評価し、一致した場合に対応する結果を返します。

もし、どの値とも一致しない場合は、既定値が返されます。

簡単な使用例

具体的な使用例を見てみましょう。

例えば、ユーザーの入力に応じて異なるメッセージを表示する場合、Switch関数を以下のように使用できます。

Switch(
    UserInput.Text,
    "こんにちは",
    "こんにちは!今日はどのようにお手伝いできますか?",
    "ありがとう",
    "どういたしまして!他にご質問はありますか?",
    "さようなら",
    "ご利用ありがとうございました。またお会いしましょう!",
    "申し訳ありませんが、その入力には対応しておりません。"
)

この例では、ユーザーの入力に基づいて適切な応答を返しています。

もし、ユーザーの入力が指定された値と一致しない場合、既定のメッセージが表示されます。

Switch関数を活用することで、複数の条件分岐を簡潔に記述でき、アプリの可読性と保守性を向上させることが可能です。

Switch関数とIf関数の違い

Power Appsでは、条件分岐を実装する際にSwitch関数とIf関数のどちらを使用するか迷うことがあります。

Switch関数
  • 1つの式を評価し、その結果と複数の値を比較して一致するものを返す
  • 構文が簡潔で、複数の条件分岐を整理しやすい
  • 例えば、特定の文字列や数値のケース分けをする場合に適している
If関数
  • 条件を個別に評価し、TRUEまたはFALSEの結果に基づいて処理を分岐する
  • 複雑な条件(範囲判定や異なる変数の評価)に適している
  • 条件の数が増えると、ネスト(入れ子)が深くなり、可読性が低下する

それぞれの違いを理解し、適切な場面で使い分けましょう。

Switch関数を使用するケース

以下の例では、ユーザーが選択したメニューに応じて価格を返します。

Switch(
    MenuSelection.Text,
    "ハンバーガー",
    500,
    "ピザ",
    800,
    "パスタ",
    700,
    "選択肢がありません"
)
このコードの動作
  • MenuSelection.Text が “ハンバーガー” なら500が返される。
  • “ピザ” なら800、”パスタ” なら700が返される。
  • それ以外の入力があった場合は “選択肢がありません” と表示される。

If関数を使用するケース

以下の例では、数値が範囲内にあるかを判定し、それに応じたメッセージを表示します。

If(
    Score >= 90,
    "優秀",
    Score >= 70,
    "合格",
    Score >= 50,
    "努力が必要",
    "不合格"
)
このコードの動作
  • Score が90以上なら “優秀” を返す
  • 70以上なら “合格”、50以上なら “努力が必要” を返す
  • それ未満なら “不合格” を表示する

適切な関数の選択方法

Switch関数とIf関数のどちらを使うべきかは、以下の基準で判断するとよいでしょう。

Switch関数
If関数
  • 1つの値を基準に複数の選択肢を評価する場合
  • 可読性を向上させたい場合
  • シンプルな比較が主な用途の場合
  • 異なる条件式を評価する場合
  • TRUE/FALSEで分岐する場合
  • 条件が2〜3個程度でシンプルな場合

一度に複数を比較したいときはSwitch関数を、多重の比較ならIf関数を使いましょう。

Switch関数を用いたフィルターの切り替え

Power Appsでは、Switch関数を使用してデータを動的にフィルタリングできます。

特に、ラジオボタンやドロップダウンを使ったフィルターの切り替えは、ユーザーが簡単に条件を変更できる便利な機能です。

ラジオボタンによるフィルター切り替えの実装例

たとえば、社員リストを表示するギャラリーで、「すべての社員」「営業部」「開発部」のようなフィルターをラジオボタンで切り替える場合、Switch関数を使用するとシンプルに実装できます。

以下のデータソース EmployeeList(社員リスト)があるとします。

EmployeeList(社員リスト)
名前部署
田中営業部
佐藤開発部
鈴木営業部
高橋開発部
ラジオボタン(Radio1) の選択肢
  • すべて
  • 営業部
  • 開発部

ギャラリー(Gallery1)のItemsプロパティに以下のSwitch関数を設定します。

Switch(
    Radio1.Selected.Value,
    "すべて",
    EmployeeList,
    "営業部",
    Filter(EmployeeList, 部署 = "営業部"),
    "開発部",
    Filter(EmployeeList, 部署 = "開発部")
)
動作の流れ
  1. ラジオボタンの値が “すべて” の場合、全社員のリストが表示される
  2. “営業部” を選択すると、営業部の社員のみ表示される
  3. “開発部” を選択すると、開発部の社員のみ表示される

Switch関数を使うことで、1つの条件(ラジオボタンの値)に基づいて、適切なフィルターを適用できます。

Switch関数を活用したUIの動的な変更方法

Power Appsでは、Switch関数を活用することで、ユーザーの選択に応じてボタンやラベルの色やテキストなどを動的に変更できます。

これにより、より直感的で分かりやすいUIを作成することが可能になります。

選択肢に応じて色を変更する

Switch関数を使用すれば、ボタンやラベルの背景色や文字色を、ユーザーの選択に基づいて変更できます。

例えば、ラジオボタンで “通常”・”警告”・”エラー” を選択し、それに応じてボタンの色を変更する場合、以下のように設定できます。

STEP
ラジオボタン(Radio1)を作成

Items プロパティに [“通常”, “警告”, “エラー”] を設定する。

STEP
ボタン(Button1)の Fill プロパティに以下のコードを設定
Switch(
    Radio1.Selected.Value,
    "通常", RGBA(0, 200, 0, 1), // 緑
    "警告", RGBA(255, 165, 0, 1),   // オレンジ
    "エラー", RGBA(255, 0, 0, 1)    // 赤
)
動作チェック
  • “通常” を選択すると、ボタンの色が 緑 になる。
  • “警告” を選択すると、ボタンの色が オレンジ になる。
  • “エラー” を選択すると、ボタンの色が 赤 になる。

このように、Switch関数を使用すれば、条件に応じた色変更をシンプルなコードで実装できます。

BorderColor を変更する場合も同様に Switch を使えますよ。

PowerAppsのSwitch関数に関するQ&A

PowerAppsのSwitch関数を活用する際に、よくある疑問や注意点について解説します。

適切な使い方を理解し、より効果的にアプリ開発を進めましょう。

Switch関数で複数条件を指定できる?

Switch関数は通常、1つの式の値を基準に条件分岐を行うため、直接複数の条件を指定することはできません。

ただし、条件式にtrueを指定し、各ケースで&&(AND)や||(OR)を使うことで、複数の条件を評価できます。

Switch(
    true,
    Role = "一般職" && Experience < 3,
    "C",
    Role = "一般職" && Experience >= 3,
    "B",
    Role = "管理職" && Experience < 5,
    "B",
    Role = "管理職" && Experience >= 5,
    "A",
    "不明"
)

この方法を使えば、If関数をネストせずに、複数の条件を簡潔に表現できます。

Switch関数で使える比較演算子はなにがある?

Switch関数自体は単純な値の一致を比較するための関数であり、If関数のように > や < といった比較演算子は直接使用できません。

そのため、条件分岐に数値の大小を含める場合は、trueを基準にSwitch関数を利用する必要があります。

Switch(
    true,
    Score >= 90,
    "優秀",
    Score >= 70,
    "合格",
    Score >= 50,
    "努力が必要",
    "不合格"
)

このようにtrueを基準にすると、各ケースで比較演算子を使うことが可能になります。

もし、数値の範囲判定が必要な場合は、If関数の方が適している場合もあります。

Switch関数で選択肢を多く入れるとパフォーマンスに悪影響?

Switch関数の評価自体は非常に高速ですが、大量の条件を含めるとパフォーマンスに影響を与える可能性があります。

PowerAppsでは、データの取得や計算の負荷を考慮することが重要です。

特に、Switch関数の中でFilter()やLookUp()を組み合わせた場合、大量のデータを処理するとアプリの動作が遅くなる可能性があります。

適切な使い分けを理解し、PowerAppsのアプリ開発をよりスムーズに進めましょう。

PowerAppsでSwitch関数を活用してアプリの柔軟性を高めよう

PowerAppsのSwitch関数を活用することで、アプリの柔軟性と可読性を向上させることができます。

単一の式を基準に複数の条件を簡潔に記述できるため、If関数よりも整理されたロジックを実装しやすくなります。

特に、フィルターの切り替えやUIの動的変更など、ユーザーの操作に応じた変化をシンプルに制御できます。

また、LookupやFilterなどの関数と組み合わせることで、より高度なデータ処理が可能になり、アプリの機能を強化できます。

Switch関数を適切に活用し、効率的でメンテナンスしやすいアプリを構築しましょう。

PowerAppsはUdemyで学べる!

Udemy
学習スタイルオンライン講座
・動画
・スライド
運営会社株式会社ベネッセコーポレーション
期間購入した講座は無期限で視聴可能
料金1,500円〜29,000円(税込)
サポート年間通してセール多数開催
購入前に無料視聴可能
30日間返金保証 など

Udemyは、オンラインで幅広い分野のスキルを手軽に学べる、世界最大級のオンライン学習プラットフォームです。

PowerAppsだけでなく、PowerAutomateを含むPowerPlatform系以外にも以下のような講座があります。

Udemyで学べるジャンル
  • ビジネス
  • プログラミング
  • デザイン
  • 語学
  • 趣味 など

20万以上のコースから、動画講座で自分のペースで学習できます。

Udemyは不定期ですが頻繁にセールを開催します。
95%以上割引かれて1,500円で購入できる講座もありますよ!

最大95%OFFのセールをチェック! /

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次