Power Appsでテーブル形式のデータにフィルターをかけて完全一致、前方一致、部分一致などで絞り込むことができる、Filter関数の使い方について解説します。
Filter関数とは
テーブル で、1 つ以上のレコード を検索します。
公式より引用
構文
Filter(テーブル,条件式1 [,条件式2, ... ] )
テーブル:検索対象のテーブル
条件式:検索対象を指定する条件式
基本の使い方
以下のSharePointリストをデータソースとして説明します。
Power Platformの城というコミュニティでFilter関数の使用方法を説明した際の動画です。
テキスト入力やドロップダウンで完全一致や部分一致検索の方法をハンズオン形式で紹介していますので、動画形式で学びたい方は以下をご覧ください。
完全一致検索
以下の数式で、テーブルの列名で指定した列で文字列に完全一致するレコード(行)をフィルターすることができます。
Filter(テーブル, 列名 = "文字列")
完全一致なので、テキストボックスに条件に一致する文字列を入力するまでは何も表示されません。
前方一致
以下の数式で、列名で指定した列から文字列で始まる行にフィルターをかけることができます。
Filter(テーブル, StartsWith(列名, "文字列"))
何も入力していない時にはStartsWith関数がtrueになるため、すべての結果が返ってくるので便利です。
部分一致
列名で指定した列の中で、文字列を含まない行(レコード)にフィルターをかけることができます。
SharePointリストでは委任することができないので注意です。
Filter(テーブル, "文字列" in 列名)
以下のようにNotにすることで含まない検索をすることもできます。
Notも委任対象外なので、Dataverseやコレクションでのみ制限なく使えます。
Filter(テーブル, Not("文字列" in 列名))
ドロップダウン検索
選択肢列の選択肢でフィルターをかけることができます。
Filter(テーブル, 選択肢列.Value = DropDown.Selected.Value)
ドロップダウンなどは型エラーを起こしやすいので注意です。
後方一致
StartsWith関数とは逆に後方一致を行うことができます。
使いどころがあまりなく、SharePointリストでは委任になるためほとんど使いません。
Filter(テーブル, EndsWith(列名, "文字列"))
空白検索
空白のレコードにフィルターをかけることができます。
Filter(テーブル, 列名 = Blank())
IsBlank関数で空白フィルターや、<>, !やNotなどを使用するとSharePointリストでは委任不可となるので注意です。
発展的な使い方
複数条件
Filter関数によってカテゴリーを複数選択した結果で絞り込む方法を紹介しています。
日付間の絞り込み
ドロップダウンで選択した値に応じて動的にフィルターする列を指定しつつ、指定日付間でギャラリーのアイテムをFilter関数でフィルターする方法です。
コメント
[…] Filter関数とStartsWith関数でギャラリーの上にあるテキストボックスに入力した文字列で始まるタイトル列のデータという条件で一致した列のみ表示させています。そしてSortByColmns関数でSortDescending1変数を使用して昇順と降順を切り替えています。 […]
[…] Filter関数とは異なり、一番最初に見つかったレコードを返します。 […]
[…] 数値で検索する場合にはFilter関数を使用します。 […]
[…] 詳しく→Filter関数の使い方、解説 […]