Power Appsのコンボボックスで、選択した項目を用いてギャラリーの絞り込みをしたい

本連載では、Power Appsでアプリケーション開発するときに、よくある質問と回答を紹介します。アバナード株式会社と株式会社テンダがコラボで連載していきます。

質問:コンボボックスで選択した項目でギャラリーの絞り込みをしたい

Power Appsのコンボボックスで選択した項目を用いて、ギャラリーに表示するレコードを絞り込むにはどうすれば良いですか?

回答:Filter関数を使用すると解決可能です

ギャラリーの[詳細設定]タブで、[Items]プロパティにFilter関数を登録すると解決可能です。

たとえば、承認管理を行うアプリにおいて、承認ステータスでの絞り込みをする、といったケースでの利用が考えられます。

Filter関数は、下記の手順で設定します。

1. ギャラリー全体をクリックし、右サイドバーにあるギャラリーのプロパティを開きます。

2. サイドバーの[詳細設定]タブをクリックします。

3. [詳細設定]タブ内の[Items]プロパティに、目的にあった内容を入力します。

コンボボックスが未選択のときに、何も表示しないか、全件を表示するかで設定内容が異なります。

■コンボボックスが未選択のとき、何も表示したくない場合
[Items]プロパティに以下の内容を入力します。


Filter(<データソース名>, 
	<データソースの選択肢カラムの内部名> in (<コンボボックス名>.SelectedItems)
)

■コンボボックスが未選択のとき、全件表示したい場合
[Items]プロパティに以下の内容を入力します。


If(
	IsBlank(<コンボボックス名>.Selected),<データソース名>,
	Filter(<データソース名>, 
	<データソースの選択肢カラムの内部名> in (<コンボボックス名>.SelectedItems)
)

※例えば、以下の条件の時の設定内容は次の通りです。

項目
コンボボックス名 ComboBoxForStatus
データソース名 承認管理リスト
データソースの選択肢カラムの内部名 status

If(
	IsBlank(ComboBoxForStatus.Selected),承認管理リスト,
	Filter(承認管理リスト, status in ComboBoxForStatus.SelectedItems)
)

補足:「委任に関する警告」について

Filter関数などの関数を利用すると、黄色の警告マークと共に「委任に関する警告」が表示されます。

関数で処理した結果のデータ件数によって、正しく表示ができなくなる可能性があるためです。
Filter関数のような「委任可能な関数」で処理した結果のデータ件数上限は、アプリ編集画面の[設定]>[データ行の制限]で設定可能で、既定値では500行に設定されています。


データ件数が多くなる場合、最大2,000件まで変更可能です。2,000件以上のデータ処理を実現したい場合は、アプリの作成時に工夫が必要となります。
詳しくは、公式サイトをご確認ください。

参考URL

参考URLレコード抽出用の関数には、Filter関数のほかにLookup関数やSearch関数が用意されています。詳細は下記のサイトでご確認ください。
・Power Apps の Filter、Search、LookUp 関数 (動画を含む) – Power Platform | Microsoft Learn
 https://learn.microsoft.com/ja-jp/power-platform/power-fx/reference/function-filter-lookup

委任に関する警告に関する詳細は、下記のサイトでご確認ください。
・キャンバス アプリでの委任について- Power Apps | Microsoft
 https://learn.microsoft.com/ja-jp/power-apps/maker/canvas-apps/delegation-overview

以下より、テンダMSTechメールマガジンに登録いただきますと、MSTechサイトの更新情報等を定期にお届けします。
https://form.k3r.jp/tenda_msales/tenda_ml2

Microsoft365(利活用技術) | MSTech | 株式会社テンダ
Dynamics 365(Avanade Flexible Support) | MSTech | 株式会社テンダ