Power Automate:SharePointリスト内の集計列をフィルター クエリで利用したい場合の回避策

Power Automateで「複数の項目の取得」アクションを利用する際、フィルター クエリを利用すると、設定した条件に一致したアイテムだけを取得することが出来ます。

ですが、SharePointリストにて集計列をフィルター クエリで利用しようとしたところ、利用する事が出来ませんでした。

今回は、集計列をフィルター クエリで利用したい場合の回避策をご紹介します。

※集計列は、SharePoint リストで他の列の値を用いて計算できる列です。関数を利用することもできます。(参考:リストの一般的な数式の例 - Microsoft サポート

フィルター クエリについて

Power Automateでは、「項目の取得」アクションや「複数の項目の取得」アクションを利用して、SharePointリスト内のアイテムを取得することが可能です。

「複数の項目の取得」アクションはアイテム単体を抜き出すのではなく、リスト内のアイテムを全て取得することが出来ます。

ですが、デフォルトではリスト内すべてのアイテムが取得されるので、アイテム数が多い場合に処理時間がかかってしまいます。

また、「条件を指定して特定のアイテムを抜き出したい」という要件もあるかと思います。

そのような場合に役に立つのが「フィルター クエリ」機能です。

この機能を使うことで、特定条件に一致するアイテムを抜き出すことが出来ます。

フィルター クエリ利用時のエラー

便利な「フィルター クエリ」機能ですが、今回、リスト内の集計列をフィルター クエリとして利用しようとした場合、下記のようなエラーになってしまいました。

種類 'Calculated' のフィールド 'total'(←''内は該当列の名前が入ります) は、クエリのフィルター式には使えません。

このような場合の回避策をご紹介します。

回避策

ご紹介する回避策は「集計列の値を格納する新規列を作成し、新規列に集計列の値をコピーする」です。

今回は既にSharePointリストでアイテムと集計列が存在している場合を前提とします。

ここから手順を記載します。

  1. SharePointリスト上にコピー用の新規列を作成します。今回は集計列の数値をフィルター クエリで利用したいため、数値で新規列を作成します。

  2. Power Automateで「複数の項目の取得」アクションを作成します。

  3. 「項目の更新」アクションを作成します。先ほど新規作成したコピー用に新規列に集計列の値を指定します。

    指定する集計列のデータは式を挿入して記載します。式には以下のように記載します。
    items('Apply_to_each')?['「集計列の名前」']

    「集計列の名前」にはそのまま集計列の名前を記載してください。既に引用した画像でいうと集計列の名前は「total」なので、記載する式は以下です。

    items('Apply_to_each')?['total']

    これにより、集計列「total」列の値が「total_copy」列へコピーされます。

  4. 新たに「複数の項目の取得」アクションを作成します。「total_copy」列は集計列ではありませんが、集計列の値がコピーされています。そのため、「total_copy」列でフィルター クエリをかけることで、集計列の値でフィルター クエリをかけたことと同義になります。

このようにして、該当のアイテムのみ抜き出しそのアイテムのみを編集したり、Teamsへ通知したりすることが出来ます。

それぞれ利用したいアクションを後続に付けてください。

おわりに

フィルター クエリで集計列を利用したい場合の回避策をご紹介しました。

集計列の値でフィルター クエリを利用したい場合に参考になれば幸いです。

執筆担当者プロフィール
平川 純也

平川 純也(日本ビジネスシステムズ株式会社)

普段はネットワーク案件に携わっています。Power Platformを用いた業務改善にも取り組んでいます。

担当記事一覧