Power Appstips

【Power Apps】コンボボックスを複数選択した結果でSharePointリストを検索する

Power Apps

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...

コメント

タイトルとURLをコピーしました