Power AppsのFilter関数では、複数の条件を指定して検索できます。
本記事では、様々な方法で検索するサンプルアプリを例に、Filter関数で複数条件を実現する方法を説明します。
下記がサンプルアプリです。「日付の選択」「ドロップダウン」「テキスト入力」「チェックボックス」コントロールを利用した複数条件の検索です。
Power Appsを体系的に学習したい方は、下記もご覧ください。
匿名で投稿できる目安箱アプリについて知りたい方は、下記もご覧ください。
Teamsを利用して組織内のコミュニケーションを強化したい方は下記もご覧ください。
・【事例付き】Teamsを活用したマネジメントTIPS集
・【マネージャー向け】Teamsアプリを活用した「誰が何を知っているか」の集約・共有 事例集
・【Teamsアプリ活用事例集】メンター制度を置き換えて新人・異動者の育成を効率化する方法
・【問い合わせ管理でお困りの方向け】問い合わせ対応・ナレッジ蓄積へのTeams活用事例集
・【マネジメント・業務把握にお困りの方向け】マネジメント・報告業務へのTeams活用事例集
・【Teamsアプリを活用事例集】週報を自動で収集しサマリー&フィードバックする方法とは
Filter関数の概要
Filter関数は、テーブルから、指定した条件に一致するものを検索する関数です。
下記の構文で、カンマ区切りで複数の条件を指定できます。
Filter(テーブル, 条件1 [, 条件2, … ] )
テーブルには、検索対象となるテーブルを入れます。
条件には、検索したい条件となる数式を入れます。数式は複数指定することができます。
Filter関数の設定
各コントロールの名前は下記です。
ギャラリーのItemsプロパティは、下記のFilter関数を入れています。
それぞれの行は、各コントロールの値に基づく検索をしています。
■日付の範囲
下記は、日付の範囲を指定しています。DatePicker1の日付から DatePicker2の日付の範囲の行を検索します。
1 |
Date >= DatePicker1.SelectedDate, Date <= DatePicker2.SelectedDate |
<日付の扱いの注意事項>
SharePointリスト側で検索する際には、日付に時刻が付与されます。そのため、2021/9/30を指定した場合、2021/9/30 0:00になります。
よって、Date <= DatePicker2.SelectedDateは、 Date <= 2021/9/30 0:00とみなされます。2021/9/30 0:01〜2021/9/30 23:59は対象外となってしまい、2021/9/30は正しく検索されません。
実際には、指定された値に1日プラスして検索するなど、考慮する必要があります。
■ドロップダウン
下記は、ドロップダウンで選択したものを検索しています。
IsBlankの部分は、何も選択していないときに全て表示するために入れています。
IsBlankが無いと、何も選択していないときに何も表示されません。Categoryが空欄の行は無いためです。
1 |
IsBlank(Dropdown1.Selected.Value) ||Category.Value = Dropdown1.Selected.Value |
■テキスト検索
下記は、テキスト入力で入力した文字列で始まるものを検索しています。
StartsWith関数は、第2引数で指定した文字で始まる文字列の場合 true を返します。
1 |
StartsWith(Title,TextInput1.Text) |
■チェックボックス
下記は、チェックボックスでチェックした名前を検索しています。
3つチェックボックスがあるため3つ分記載します。
varName1〜varName3には、チェックした際に、対象の名前が入る変数です。詳細は「チェックボックス」コントロールの設定をご覧ください。
1 |
'In charge'=varName1||'In charge'=varName2||'In charge'=varName3 |
「日付の選択」コントロールの設定
「日付の選択」コントロールは、DefaultDateプロパティに日付を設定しています。「クリア」ボタンをクリックした際に、指定した日付に戻すためです。
今回のサンプルデータは、2021/4/1〜2021/10/30の範囲のデータのため、下記の設定にしています。
「ドロップダウン」コントロールの設定
「ドロップダウン」コントロールは、ItemsプロパティにChoices関数で選択を入れています。
今回のサンプルデータの元データはSharePointリストです。Category列の書式は選択肢のため、Choices関数を利用しています。(Choices関数は、選択肢を取得する関数)
書式が選択肢ではない場合は、コレクションやDistinct関数を利用するといいでしょう。
「テキスト入力」コントロールの設定
「テキスト入力」コントロールは、とくに特別な設定はしていません。
「チェックボックス」コントロールの設定
「チェックボックス」コントロールは、OnCheckプロパティとOnUncheckプロパティに下記を入れています。(Checkbox1の例)
チェックされた際に、変数varName1にTextの値(名前)を入れ、チェックをはずされた際に、空欄を入れています。
Filter関数では下記で検索しています。
1 |
'In charge'=varName1||'In charge'=varName2||'In charge'=varName3 |
つまり、チェックされた際は、’In charge’=名前 で該当者を検索します。
チェックをはずされた際は、’In charge’=”” となり、空欄の行はないため false になります。
下記でもできますが、Filter関数の中でIf文を使うと委任の警告が出るため、今回は上記の方法で実装しました。
If( Checkbox1.Value=true, ‘In charge’=Checkbox1,Text )
また、初期状態では全担当者を表示したいため、Defaultプロパティは true にしています。
「ボタン」コントロールの設定
「ボタン」コントロールのOnSelectプロパティは、下記の設定にしています。各コントロールの設定をReset関数で戻しています。
「チェックボックス」コントロールは、チェックボックスの状態だけ初期状態に戻しても変数は変わらないため、変数も変えています。
まとめ
このページでは、「日付の選択」「ドロップダウン」「テキスト入力」「チェックボックス」コントロールの設定に基づく、Filter関数による複数検索の例を説明しました。
Power Appsを学びたい方は、下記のおすすめ学習方法もご覧ください。
匿名で投稿できる目安箱アプリについて知りたい方は、下記もご覧ください。
Teamsを利用して組織内のコミュニケーションを強化したい方は下記もご覧ください。
・【事例付き】Teamsを活用したマネジメントTIPS集
・【マネージャー向け】Teamsアプリを活用した「誰が何を知っているか」の集約・共有 事例集
・【Teamsアプリ活用事例集】メンター制度を置き換えて新人・異動者の育成を効率化する方法
・【問い合わせ管理でお困りの方向け】問い合わせ対応・ナレッジ蓄積へのTeams活用事例集
・【マネジメント・業務把握にお困りの方向け】マネジメント・報告業務へのTeams活用事例集
・【Teamsアプリを活用事例集】週報を自動で収集しサマリー&フィードバックする方法とは