SharePointリストを検索する際、コンボボックスなど複数選択の結果を検索条件とした場合、以下の画像のように委任に関する警告が表示されます。

今回は、コンボボックスを複数選択した結果でSharePointリストを委任の警告なく検索する方法を紹介します。
前提条件

上記のようなSharePointリストの容量列(選択肢列)の複数条件(1TB, 128GBのレコードで絞り込み)での検索を想定しています。
作り方
ギャラリーとコンボボックスを設置し、コンボボックスのItemsプロパティはChoices(SampleList.容量)とします。
以下の画像のように、複数選択の結果の何番目を取得するかをLast(FirstN)で指定し、それぞれを選択肢列.ValueとOr条件で比較します。
未選択の場合には全てのレコードが表示されるようにIsEmpty関数を使用します。

以下の通り、1TBと64GBでフィルターをかけることが出来ました。

Filter(
SampleList,
Or(
容量.Value = First(ComboBox1.SelectedItems).Value,
容量.Value = Last(FirstN(ComboBox1.SelectedItems, 2)).Value,
容量.Value = Last(FirstN(ComboBox1.SelectedItems, 3)).Value,
容量.Value = Last(FirstN(ComboBox1.SelectedItems, 4)).Value,
容量.Value = Last(ComboBox1.SelectedItems).Value,
IsEmpty(ComboBox1.SelectedItems)
)
)
Index関数との使いわけポイント
以下の画像の通り、Last(FirstN)を使用した数式であればコンボボックスの選択結果が5つ以下でも問題なく動作します。

しかし、Index関数はインデックスより大きい数を入力するとエラーになってしまいます。
以下の画像だとComboBox1.SelectedItemsは3行のデータのため、4行目以降を取得しようとするとエラーになってしまいます。

配列の行数が固定の場合はIndex関数を、配列の行数が不定の場合はLast(FirstN)関数を使用するよう使い分ける必要がありそうです。

【Power Apps】Index関数とは、使い方
Index関数とは順序付けられた位置に基づいてテーブルからレコードを返します。公式より引用構文Index( Table、RecordIndex )Table - 必須。 操作の対象となるテーブル。Re...
コメント