6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Power Apps で SharePoint リストの選択肢列 (複数選択許可) を基にフィルターする

Last updated at Posted at 2025-02-16

はじめに

Power Apps では、以下の記事で紹介したように、データをフィルターすることができます。

上記記事では触れていませんが、SharePoint リストの選択肢列で複数選択を許可している場合、フィルターの式が複雑になるため、今回別枠で記事を書きたいと思います。

image.png

アプローチ

まず、選択肢列で複数選択を許可している場合のデータ構造に注目する必要があります。以下のように、テーブルの中にテーブルがあるイメージです。

image.png

まず、コンボボックスを用意します。こちらはフォームコントロールを基に作成しました。

image.png

そして、以下のようにギャラリーをフィルターします。

image.png

Filter(
    複数選択テスト,
    !IsEmpty(
        Filter(
            カテゴリー,
            Value in ComboBox1.SelectedItems.Value
        )
    )
)

結果は以下のような感じになります。ComboBox1 で選択されたカテゴリーのいずれかの値を含む行だけを表示できています。

image.png

式についてもう少し解説します。
まず、外側のフィルターで、「複数選択テスト」という SharePoint リスト (テーブル) をフィルターします。各行を一つずつチェックします。

そして、内側のフィルターでカテゴリー列 (テーブル) をフィルターします。内側のフィルターでは、ComboBox1 で選択されたカテゴリーのいずれかの値を含むようにしたいため、このような場合は、以下のように in 演算子を使います。カテゴリー列の中に、ユーザーがコンボボックスで選択したいずれかの値が含まれているデータを取得するという意味になります。

Filter(カテゴリー, Value in ComboBox1.SelectedItems.Value)

最後に、IsEmpty 関数で、内側のフィルターの結果が空でないかを確認しています。! は否定を意味するため、空でない(1つ以上のマッチがある)場合に true となりその行が表示されます。

!IsEmpty(...)

例) ComboBox1 で ["営業", "IT", "開発"] を選択した場合かつリストのデータが以下の場合の結果

image.png

image.png

まとめ

SharePoint リストの選択肢列で複数選択を許可している場合における Power Apps でのフィルターのアプローチについて説明しました。少し複雑ですが、同様のことにチャレンジする際の参考になれば幸いです。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?