はじめに
Dataverse や SharePoint リストにある大量のデータを全てアプリ上で表示させようとすると、表示件数の上限にひっかかったり読み込みに時間がかかったりなどの問題があったりしませんか?
Power Apps のギャラリーコントロールでは Filter
関数を用いてデータの絞り込みを行うことが可能です。
本記事ではドロップダウンリストや検索ボックスなどを用いてフィルタリングを行う方法について解説をしていきます!
Filter 関数とは
Filter
関数とはデータソースに対して条件を指定し、絞り込みを行う関数のことです。
基本的な構文は以下になります。
Filter(データソース, 条件1, 条件2, ...)
- データソース...検索対象データ (DataverseやSharePointリストなど)
- 条件 ...絞り込みを行う条件を設定します。
=
>
<
And
Or
などが使用できます。
基本的な使い方
ドロップダウンでカテゴリを選択してフィルタリング
こちらの 社員名簿テーブル
は 在籍状態
の列が 在籍/退職
のブール値で作られています。
ブール値列や選択肢列の値をフィルタリングしたい場合はドロップダウンを利用するとフィルタリングを行いやすいです。
ギャラリーのItems
Filter(社員名簿テーブル , 在籍情報 = Dropdown1.Selected.Value)
ドロップダウンのItems
Choices('在籍情報 (社員名簿テーブル)')
ギャラリーの Items
に上記の関数を設定すると以下のように動的にフィルターをかけることができます。
And関数を用いて複数条件を設定
次は 在職中
の 総務部
でフィルタリングをかけてみたいと思います。
Filter(社員名簿テーブル,在籍情報 = Dropdown1.Selected.Value && 部署 ="総務部")
今回 部署
については直接記入していますが 在籍情報
と同様にドロップダウンリストを使用したり、テキストボックスに入力した値を持ってくることも可能です。
Filter
と Lookup
の違いについて
同じテーブルを検索しにいくのでも Filter
と Lookup
では用途や返す値が変わってきます。
Filter
は条件にあてはまるすべてのレコードを取得してテーブル値で返してくれるのに対して Lookup
は条件に一致した最初のレコードのみを取得する関数となっています。
ギャラリーに表示させるのであれば Filter
関数を使用してフォームの編集など単一のレコードを抽出したいのであれば Lookup
関数を用いて使い分けてください。
まとめ
Filter
関数では And
や Or
などの複数条件をフィルターにすることができるので、条件に合った一覧を表示させやすいです。
また、ドロップダウンや検索ボックス、日付などコントロールと組み合わせることも可能なので柔軟なフィルタリングが可能となります!!
あまりにもデータ数が多すぎると上限にひっかかって全件取得がうまくできなかったりするので、可能な限りフィルターで絞り込んで条件に合ったデータ表示を行っていきましょう!