PowerAppsのFilter関数で複数条件を指定する方法を徹底解説

PowerApps_filter_複数

「PowerAppsのFilter関数で、複数条件ってどうやって指定するの?」

「ANDとORを組み合わせるとエラーになる…」

そんな悩みを抱えて、アプリ開発の手が止まっていませんか。

思い通りにデータを絞り込めず、もどかしい思いをしている人も多いでしょう。

この記事では、PowerAppsのFilter関数で複数条件を自在に操るための方法を、基本のAND・OR条件からin演算子を使った応用テクニックまで、豊富なサンプルコード付きで徹底的に解説します。

この記事を読めば、複数のコントロール値に基づいた動的なデータ絞り込みも迷わず実装でき、あなたのアプリは格段に使いやすくなります。

さあ、Filter関数をマスターして、ワンランク上のアプリ開発を実現しましょう。

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

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

PowerAppsのFilter関数で複数条件を指定する基本

PowerAppsでアプリを開発していると、大量のデータの中から「特定の条件に合うものだけを表示したい!」という場面が必ず出てきますよね。

そんな時に大活躍するのがFilter関数です。

Filter関数を使いこなせば、ユーザーにとって見やすく、操作しやすいアプリを作成できます。

特に、複数条件を組み合わせることで、より細かく、的確にデータを絞り込むことが可能になります。

Filter関数の基本的な構文

まずは、Filter関数の基本的な形を覚えましょう。これさえ押さえておけば、応用も怖くありません。

Filter関数の構文は、驚くほどシンプルです。

Filter(データソース, 条件式)

たったこれだけです。

それぞれの項目が何を示しているか解説しますね。

データソースは、データを取得したい元の場所を指します。

SharePointリストやDataverse、Excelテーブルなどが該当します。

例えば、「社員名簿」や「商品リスト」といったテーブルやリストそのものを指定します。

条件式はどんな条件でデータを絞り込むかを指定する部分です。

この条件式に一致した(結果がTrueになる)データだけが抽出されます。

「価格が1000円以上」や「カテゴリが”文房具”」といった、TrueかFalseで答えられる論理式を記述します。

Filter(
    商品リスト, // 対象となるデータソース
    在庫数 > 0 // 在庫数が0より大きいという条件式
)

この基本形が、これから解説する複数条件の土台となるので、しっかりと頭に入れておきましょう。

複数条件の指定で利用する主な演算子

一つの条件だけでは、本当に欲しい情報まで絞り込めないことも多いですよね。

そんな時に登場するのが「論理演算子」です。

「カテゴリが文房具で、かつ、価格が300円以下の商品」のように、複数の条件を組み合わせるために使います。

PowerAppsのFilter関数でよく利用する主な演算子は以下の通りです。

論理演算子の種類
  • AND条件: && または And
  • OR条件: || または Or
  • NOT条件: ! または Not
  • IN演算子: in

これらの演算子を使いこなすことが、複数条件をマスターするための鍵となります。

AND条件は、複数の条件を「すべて満たす」場合にデータを抽出します。

先ほどの例で言えば、「カテゴリが文房具」と「価格が300円以下」の両方の条件に一致するデータだけが表示されます。

一方で、OR条件は、複数の条件のうち「いずれかを満たす」場合にデータを抽出します。

「カテゴリが文房具」または「カテゴリが事務用品」のどちらかに当てはまる商品を探したい、といったケースで活躍しますね。

NOT条件は、指定した条件を「満たさない」データを抽出する際に使い、IN演算子は、たくさんのOR条件をスッキリとまとめることができる便利な演算子です。

AND条件とOR条件の基本的な書き方

それでは、最もよく使うAND条件とOR条件の基本的な書き方を、具体的なサンプルコードと一緒に見ていきましょう。

これらの書き方を覚えるだけで、データ絞り込みの幅がぐっと広がりますよ。

まずはAND条件です。

AND条件は「Aであり、かつBである」というように、複数の条件をすべて満たすデータを抽出したい場合に使用します。

演算子には「&&」または「And()」を使いますが、ここではシンプルに書ける「&&」を使ってみましょう。

「商品リスト」から「カテゴリが”食品”」で、なおかつ「価格が500円以下」の商品を絞り込む場合は、以下のように記述します。

Filter(
    商品リスト, // 対象のデータソース
    カテゴリ = "食品" && 価格 <= 500 // カテゴリが食品"かつ"価格が500円以下の条件
)

次にOR条件です。

OR条件は「AまたはB」のように、複数の条件のうち、どれか一つでも満たしていればデータを抽出したい場合に使用します。

演算子には「||」または「Or()」を使います。

「商品リスト」から「ステータスが”セール中”」または「在庫が”残りわずか”」の商品を絞り込む場合は、以下のようになります。

Filter(
    商品リスト, // 対象のデータソース
    ステータス = "セール中" || 在庫 = "残りわずか" // ステータスが"セール中"または在庫が"残りわずか"の条件
)

このように、AND条件とOR条件を使い分けることで、ユーザーが必要とする情報を的確に提示できるようになります。

とても強力な機能なので、ぜひマスターしてくださいね

PowerApps FilterにおけるAND複数条件の指定

AND条件は、複数の要件をすべて満たすデータだけを厳選したい場合に非常に役立ちます。

ここでは、AND条件を使った複数条件の指定方法について、いくつかの書き方を掘り下げて解説します。

それぞれの書き方に特徴があるので、状況に応じて使い分けられるようになりましょう。

&&演算子を使った書き方

最も直感的で、手軽にAND条件を記述できるのが「&&」演算子を使う方法です。

条件式を「&&」で繋いでいくだけで、いくつでも条件を追加できます。

例えば、「商品リスト」から「カテゴリが”文房具”」で、「価格が100円以上」かつ「在庫数が10個以上」の商品を絞り込みたい場合、以下のように記述します。

Filter(
    商品リスト,
    カテゴリ = "文房具" && // 条件1: カテゴリ
    価格 >= 100 &&      // 条件2: 価格
    在庫数 >= 10        // 条件3: 在庫数
)

条件が増えても、このように「&&」で繋げていくだけなので、非常にシンプルで分かりやすいですね。

この書き方は、PowerAppsでフィルタリングを行う際の基本中の基本と言えるでしょう。

コードが短く済むため、多くの開発者がこの「&&」演算子を好んで使用しています。まずはこの書き方に慣れるのが、AND条件をマスターする上での第一歩です。

And関数を使った書き方

「&&」演算子の他に、「And()」という関数を使ってAND条件を記述する方法もあります。

機能としては「&&」と全く同じですが、見た目や書き方が異なります。

And関数は、引数として複数の条件式を取り、それらがすべてTrueの場合にTrueを返します。

先ほどの「&&」演算子と同じ条件をAnd関数で書くと、以下のようになります。

Filter(
    商品リスト,
    And(
        カテゴリ = "文房具", // 条件1: カテゴリ
        価格 >= 100,      // 条件2: 価格
        在庫数 >= 10        // 条件3: 在庫数
    )
)

And関数の中に、カンマ区切りで条件式を並べていく形ですね。条件式が非常に長くなる場合や、他の関数と複雑に組み合わせる際に、And関数を使うとコードの構造が明確になり、可読性が向上することがあります。

「&&」とAnd関数のどちらを使うかは、個人の好みやプロジェクトのコーディングルールによって決めるのが良いでしょう。

両方の書き方を知っておくことで、他の人が書いたコードを読むときにも戸惑わずに済みます。

複数のコントロール値に基づくAND条件

ここからは、より実践的なテクニックをご紹介します。

アプリの画面上に配置したドロップダウンやテキスト入力ボックスといった「コントロール」の値を条件にしてみましょう。

これにより、ユーザーの操作に応じてリアルタイムにデータを絞り込む、動的なアプリを作成できます。

例えば、カテゴリを選択するドロップダウン(drp_Category)と、最低価格を入力するテキストボックス(txt_MinPrice)があるとします。

ユーザーが選択・入力した値の両方を満たす商品を絞り込むには、以下のように記述します。

Filter(
    商品リスト,
    カテゴリ = drp_Category.Selected.Value && // ドロップダウンで選択されたカテゴリと一致
    価格 >= Value(txt_MinPrice.Text)         // テキスト入力された価格以上
)

テキストボックスの入力値は文字列として扱われるため、Value()関数を使って数値に変換してから比較するのがポイントです。

アプリのUIとFilter関数を連携させると、利便性が向上しますよ

PowerApps FilterにおけるOR複数条件の指定

AND条件とは対照的に、「複数の条件のうち、どれか1つでも当てはまればOK」という緩やかな絞り込みを行いたい場合に活躍するのがOR条件です。

例えば、「東京本社または大阪支社の社員」を探すといったケースで役立ちます。

ここではOR条件の書き方と、コードを劇的にスッキリさせるテクニックを紹介します。

||演算子を使った書き方

AND条件における「&&」と同様に、OR条件で最も手軽なのが「||」演算子です。条件式と条件式の間を「||」で繋ぐことで、「AまたはB」という条件を表現できます。

例えば、「タスクリスト」の中から「ステータスが”未着手”」または「ステータスが”対応中”」のタスクをすべて表示したい、といった場合に活用できます。

Filter(
    タスクリスト,
    ステータス = "未着手" || // 条件1: ステータスが"未着手"
    ステータス = "対応中"    // 条件2: ステータスが"対応中"
)

このように、複数の条件を「||」で繋げていくだけで、条件に合致するデータがすべて抽出されます。

AND条件の「&&」とセットで覚えておきたい、基本的な記述方法です。

この書き方をマスターすれば、ユーザーに対してより柔軟なデータ表示が可能になります。

まずはこの「||」に慣れて、OR条件の感覚を掴んでいきましょう。

Or関数を使った書き方

「||」演算子だけでなく、「Or()」関数を使ってもOR条件を記述できます。

機能は「||」と全く同じで、引数に指定した複数の条件式のうち、いずれか一つでもTrueであれば、結果としてTrueを返します。

先ほどの「||」の例を「Or()」関数で書き換えると、以下のようになります。

Filter(

    タスクリスト,
    Or(
        ステータス = "未着手", // 条件1: ステータスが"未着手"
        ステータス = "対応中"     // 条件2: ステータスが"対応中"
    )
)

カンマで条件を区切って記述するスタイルですね。

「And()」関数と同様に、数式が複雑に入り組んでいる場合に、Or() を使うと条件の範囲が明確になり、後からコードを見返したときに理解しやすくなるというメリットがあります。

どちらの書き方が自分にとって分かりやすいか、実際に試しながら確かめてみるのがおすすめです。

In演算子を使ったOR条件の簡略化

同じ列に対して複数のOR条件を指定したい場合、コードが長くなってしまうことがありますよね。

そんな悩みを一発で解決してくれるのが「in」演算子です。

このテクニックを知っているだけで、あなたの書くコードが劇的に見やすく、そしてプロフェッショナルになります。

例えば、「商品カテゴリ」が「文房具」「オフィス用品」「生活雑貨」のいずれかである商品を抽出したい場合、「||」を使うと少し長くなりますが、「in」演算子を使えば、以下のように驚くほどスッキリ記述できます。

// || を使った場合の書き方
Filter(
    商品リスト,
    カテゴリ = "文房具" || カテゴリ = "オフィス用品" || カテゴリ = "生活雑貨"
)

// in 演算子を使ったスッキリした書き方
Filter(
    商品リスト,
    カテゴリ in ["文房具", "オフィス用品", "生活雑貨"] // カテゴリがリスト内のいずれかの値と一致
)

角括弧 [] で作成した値のリスト(テーブル)の中に、指定した列の値が含まれているかどうかを判定してくれます。

絶対に使えたほうが良いテクニックなのでぜひ覚えて活用してください

PowerApps Filterを使いこなす複数条件の応用テクニック

基本となるAND条件とOR条件をマスターしたら、次はいよいよ応用編です。

ここでは、条件を組み合わせたり、他の関数と連携させたりと、より高度で実践的なテクニックを紹介します。

これらのテクニックを身につければ、複雑な要件にも応えられるようになり、アプリ開発がもっと楽しくなりますよ。

AND条件とOR条件の組み合わせ

実務では、AND条件とOR条件を組み合わせて使いたい場面が頻繁に登場します。

例えば、「(カテゴリが”飲料”または”食品”)かつ、店舗が”東京本社”」のようなケースです。

このような複雑な条件を実現する鍵は、ずばり「丸括弧 ()」です。() を使って、優先的に評価したい条件式をグループ化します。

数学の計算と同じで、() で囲んだ部分が先に処理されると考えると分かりやすいでしょう。

先ほどの例をコードにすると、以下のようになります。

Filter(
    商品リスト,
    (カテゴリ = "飲料" || カテゴリ = "食品") && // OR条件を()でグループ化
    店舗 = "東京本社"
)

() でOR条件を先に評価させ、その結果とAND条件を組み合わせています。

もし()を使わないと、意図しないフィルタリング結果になる可能性があるため、ANDとORを組み合わせる際は()で処理の順番を明示することが非常に重要です。

空白を無視する条件式の組み込み方

検索アプリを作るとき、「検索条件が何も入力されていない場合は、すべてのデータを表示したい」という要件は非常によくあります。

この「空白を無視する」条件は、OR条件とIsBlank関数またはIsEmpty関数を組み合わせることでスマートに実装できます。

考え方としては、「検索ボックスが空欄である」または「検索条件に一致する」というOR条件を作成します。

検索ボックスが空欄の場合、最初の条件がTrueになるため、後続の条件に関わらずすべてのデータが表示される仕組みです。

例えば、カテゴリ選択のドロップダウン(drp_Category)で、何も選択されていない場合は全カテゴリを表示するには、以下のように記述します。

Filter(
    商品リスト,
    IsBlank(drp_Category.Selected.Value) || // ドロップダウンが空欄の場合
    カテゴリ = drp_Category.Selected.Value     // ドロップダウンが選択されている場合は、その値で絞り込む
)

このテクニックは応用範囲が非常に広いので、ぜひ覚えておきましょう。

Not関数を利用した否定条件

「〜ではない」という条件でデータを絞り込みたい、そんな時に使うのが「Not関数」または否定演算子「!」です。

これらを使うことで、特定の条件を除外したデータを抽出できます。

例えば、「ステータスが”完了”ではないタスク」や「担当者が”自分以外”の案件」といった情報を取得する際に便利です。

「!」は条件式の直前に記述し、「Not()」は条件式を引数として渡します。

どちらも機能は同じですが、「!」の方がシンプルに記述できます。

例えば、「商品リスト」から「カテゴリが”廃棄予定”ではない」商品だけを表示したい場合は、以下のようになります。

// 否定演算子「!」を使用した場合
Filter(
    商品リスト,
    !(カテゴリ = "廃棄予定") // カテゴリが"廃棄予定"ではない
)

// Not関数を使用した場合
Filter(
    商品リスト,
    Not(カテゴリ = "廃棄予定") // こちらも同じ意味
)

AND条件やOR条件と組み合わせることで、「ステータスが完了ではなく、かつ優先度が高い」のような、より複雑な否定条件も作成可能です。

PowerAppsのFilterで複数条件をマスターしよう

ここまで、PowerAppsのFilter関数で複数条件を指定する方法について、基本から応用、実践例までを駆け足で解説してきました。

基本的なAND条件(&&)やOR条件(||)から始まり、それらを組み合わせるための()の使い方、in演算子によるコードの簡略化や、空白を無視するテクニックまで、多くの武器を手に入れられたはずです。

最初は数式が複雑に見えて戸惑うかもしれませんが、一つ一つの要素を分解して考えれば、決して難しいものではありません。

この記事で紹介したサンプルコードを参考に、ぜひご自身のアプリで実際に手を動かして試してみてください。

試行錯誤を繰り返すことが、上達への一番の近道です。Filter関数をマスターして、ユーザーにとって本当に価値のある、高機能なアプリを開発していきましょう。

PowerAppsはUdemyで学べる!

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

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

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

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

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

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

  • 幅広いジャンルのオンラインコースで学べる
  • 自分のペースで学習できる
  • 多様な講師が解説してくれる
  • 頻繁にセールや割引が開催されている
  • 講座の修了証明書が発行される
プロから実践的スキルが学べて
キャリアアップや趣味の充実にも最適。
最大95%OFFで講座が手に入るセール多数!

よかったらシェアしてね!
目次