MENU

gallery表示の絞込みの書き方

目次

フィルター

gallery一覧を条件で絞り込む場合、galleryのプロパティItemsに、以下のような式を設定をします

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

前提:データソースが「タスク管理リスト」の場合

完全一致  委任可能

条件 リスト列が「Title」で「T0001」に完全一致する行

Filter(タスク管理リスト, Title = "T0001")

応用 上記のT0001をアプリのテキストボックス(TextInput2)に入れ込んだ値にする

Filter(タスク管理リスト, Title = TextInput2.Text)

前方一致  委任可能

条件 リスト列が「Title」で「T01」から始まる行

Filter(タスク管理リスト, StartsWith(Title, "T01"))

応用 入力された値(TextInput2)の前方一致で絞込み

Filter(タスク管理リスト, StartsWith(Title, TextInput2.Text))

部分一致  委任不可

条件 リスト列が「Title」で「001」が含まれている行

Search(タスク管理リスト, "001", "Title")

○○が含まれているか  委任不可

条件 リスト列が「Title」で「001」が含まれている行

Filter(タスク管理リスト, "T0001" in Title)

式に in を使用しているだけで、部分一致と同じ。
どちらにしても委任不可。

複数条件(AND)  委任可能

条件 リスト列「進捗状況」が「未完了」で、なおかつリスト列「優先度」が「高」の行

Filter(タスク管理リスト, 進捗状況 = "未着手" && 優先度 = "高")

※「未着手」と「高」は完全一致

複数条件(OR)

条件 リスト列「進捗状況」が「未完了」か、リスト列「優先度」が「高」の行

Filter(タスク管理リスト, 進捗状況 = "未完了" || 優先度 = "高")

※「未着手」と「高」は完全一致

数値比較  委任可能

条件 リスト列「売上」が50以上の行

Filter(タスク管理リスト, 売上 >= 50)
比較条件内容
売上 = 5050に等しい
売上 > 5050より大きい
売上 < 5050より小さい
売上 >= 5050以上
売上 <= 5050以下
売上 <> 5050以外

応用 売上が50以上、80以下の行を絞込

Filter(タスク管理リスト, 売上 >= 50 && 売上 <= 80)

日付比較  条件付き

条件 リスト列が「close」で2025/10/1から2025/10/31までのレコード

以下のような記述の場合は委任可能

Filter(タスク管理リスト, close >= DateValue("2025/10/01") && close <= DateValue("2025/10/31"))

以下のように「今日まで」という記述の場合、Today()が委任不可のため、式としても委任不可

Filter(タスク管理リスト, close <= Today())

以下のように、別途(DatePicker1)で設定した日付を用いる場合は委任可能

Filter(タスク管理リスト, close <= DatePicker1.SelectedDate)

空欄チェック  委任不可

条件 リスト列「Title」が空欄の行

Filter(タスク管理リスト, IsBlank(Title))

以下の場合は委任可能ですが、SharePointリストの空欄はnullではないため、下記の設定では絞られない模様

Filter(タスク管理リスト, Title = "")

否定  委任不可

条件 リスト列が「進捗」で「完了」以外の行

Filter(タスク管理リスト, Not(進捗 = "完了"))

ただし同じ意味の以下式であれば委任可能

Filter(タスク管理リスト, 進捗 <> "完了")

絞込みと並び替えを混在させる場合

例えば、進捗状況の列が「完了」だけに絞った中で、期限(field_2)を昇順、管理番号(Title)を降順にしたい。
※すべての列を1行テキストで作成したリストです

式は以下のようになります。
Filter部分は列名が「進捗状況」でも問題ないですが、並び替えで利用する列は内部列じゃないと認識されない模様。

SortByColumns(
    Filter(タスク管理リスト, 進捗状況 = "完了"),
    "field_2", SortOrder.Ascending,
    "Title", SortOrder.Descending
)

広告

目次