Power Automate SharePoint・リスト操作

Power Automateで「複数の項目の取得」にフィルタークエリを設定する方法|条件指定で効率的にデータ抽出

Power Automate(パワーオートメイト)を使ってSharePointリストやExcelテーブルなどからデータを取得する際、
「特定の条件に合うデータだけ取得したい」「不要なデータを省いて効率的に処理したい」という場面は非常に多くあります。

そんなときに欠かせないのが「複数の項目の取得(Get items)」アクションのフィルタークエリ(Filter Query)設定です。
この設定を使うことで、条件に一致したデータだけをPower Automateが取得できるため、
処理のスピードアップやフローの安定性向上に大きく役立ちます。

この記事では、「複数の項目の取得」で使うフィルタークエリの基本構文・書き方・実務応用例を、初心者にもわかりやすく解説します。
SharePointリストを例に、複数条件・部分一致・日付指定など、現場でよく使われる設定パターンを丁寧に紹介します。


目次

✅ 「複数の項目の取得(Get items)」とは

「複数の項目の取得」は、Power AutomateでSharePointリストなどのデータをまとめて取得するためのアクションです。
リスト内のアイテムをすべて取得できる一方で、そのまま使うと全件を処理対象にしてしまうため、
件数が多い場合にはフロー全体が重くなったり、処理時間が長くなることがあります。

この問題を解決するのが「Filter Query」です。
Filter Queryを設定すれば、条件に合うデータだけを抽出でき、無駄のない効率的なフローを作成できます。


✅ Filter Queryの基本構文

Filter Queryは、OData(Open Data Protocol)という形式で条件を指定します。
通常の「ExcelのIF関数」や「SQLのWHERE句」とは異なり、英語の論理演算子を使います。

基本構文は次の通りです。

列名 eq '値'
記号意味
eq等しい(equal)Status eq '完了'
ne等しくない(not equal)Status ne '未処理'
gtより大きい(greater than)Amount gt 1000
ge以上(greater or equal)Amount ge 1000
ltより小さい(less than)Amount lt 1000
le以下(less or equal)Amount le 1000

これらの演算子を使うことで、リストの中から特定条件に合うアイテムを抽出できます。


・例1:ステータスが「承認待ち」のデータだけ取得

Status eq '承認待ち'

・例2:金額が5000円以上のデータを取得

Amount ge 5000

・例3:担当者が「田中」ではないデータを取得

Person ne '田中'

Filter Queryでは文字列はシングルクォートで囲むのがルールです。
数値や日付はクォート不要で記述します。

参考:【Excel】IF関数で複数条件を指定する方法とは?AND・OR・IFSまで完全ガイド!


✅ 日本語列名を使う場合の注意点(内部名)

SharePointリストを日本語で作成している場合、Filter Queryを設定しても動作しないことがあります。
これは、列の表示名と内部名(Internal Name)が異なるためです。


・内部名の確認方法

  1. SharePointリストを開く
  2. 「設定(歯車マーク)」→「リストの設定」を開く
  3. 「列」をクリックして、対象列を選択
  4. URLの末尾にある Field= の後に表示される文字列が内部名

例:

.../FldEdit.aspx?List=%7Bxxxx%7D&Field=申請者_x0020_名

内部名は「申請者_x0020_名」となります。
この _x0020_ はスペースを意味しています。

そのため、Filter Queryでは次のように書く必要があります。

申請者_x0020_名 eq '田中'

このように内部名を正しく指定しないと、Power Automateは列を認識できず、データが取得されません。


✅ 複数条件を組み合わせる方法(and / or)

Filter Queryでは、複数の条件を「and」「or」でつなげることができます。
複雑な条件を指定することで、より細かい抽出が可能になります。


・例1:部署が「営業部」かつステータスが「完了」

Department eq '営業部' and Status eq '完了'

・例2:担当者が「佐藤」または「鈴木」

Person eq '佐藤' or Person eq '鈴木'

・例3:金額が1000円以上かつ5000円以下

Amount ge 1000 and Amount le 5000

⚠️ 注意点

  • and / or の前後には必ずスペースを入れる
  • 大文字・小文字を区別する(ANDOR はNG)
  • 条件をグループ化する場合は括弧 () を使う

例:

(Status eq '承認待ち' or Status eq '差戻し') and Department eq '営業部'

このように括弧を使うことで、「営業部かつ承認待ちまたは差戻し」という条件が正確に指定できます。

参考:Power AutomateでSharePointリストを条件付きで取得する方法




✅ 日付を使った条件設定(Created、Modifiedなど)

SharePointリストには「作成日(Created)」や「更新日(Modified)」などのシステム列があります。
これらを使って、「今日作成されたデータ」や「今週更新されたデータ」などを抽出することも可能です。


・例1:作成日が今日以降のデータ

Created ge '@{utcNow()}'

・例2:1週間以内に更新されたデータ

Modified ge '@{addDays(utcNow(), -7)}'

・例3:2025年1月1日以降のデータ

Created ge datetime'2025-01-01T00:00:00Z'

UTC形式の日時を指定する場合は、datetime'~'で囲み、末尾に Z を付けるのが正しい書き方です。


✅ 部分一致・含む条件を使う方法(substringof)

完全一致ではなく、特定の文字列を「含む」データを抽出したい場合には、substringof() を使います。
これはSQLでいう「LIKE検索」と同じ働きをします。


・例1:タイトルに「請求書」を含むデータ

substringof('請求書', Title)

・例2:備考に「緊急」が含まれるデータ

substringof('緊急', Remarks)

substringof() の構文では、検索文字列を先に書き、列名を後に書く点に注意しましょう。


✅ 実務で役立つフィルタークエリの応用例

Power Automateでは、フィルタークエリを活用することで、あらゆる業務フローを効率化できます。
ここでは、現場でよく使われるパターンを3つ紹介します。


・例1:承認待ちデータのみTeamsに通知

  • Filter Query:Status eq '承認待ち'
  • 処理フロー:
    1. 「複数の項目の取得」でFilter Queryを設定
    2. 「Apply to each」で1件ずつ処理
    3. 各担当者にTeamsメッセージを送信

これにより、毎朝自動で承認待ちデータだけを通知するフローを作成できます。


・例2:当日更新されたアイテムをメール送信

  • Filter Query:Modified ge '@{startOfDay(utcNow())}'
  • 処理フロー:
    1. 今日更新されたデータを取得
    2. HTMLテーブルに整形
    3. Outlookメールで自動送信

業務日報や更新通知の自動配信に最適です。


・例3:特定担当者+特定ステータスを組み合わせて抽出

  • Filter Query:
    Author eq '田中' and Status eq '完了'
    

このように複数条件を組み合わせれば、「担当者ごとの完了データ集計」などの管理業務にも応用できます。


✅ フィルタークエリ設定のメリット

フィルタークエリを正しく使うと、Power Automateの処理効率が格段に上がります。

主なメリット

  1. 無駄なデータを除外できる
    取得データを必要最小限に絞り込み、処理時間を短縮。
  2. トリガーの負荷軽減
    フロー実行時に扱うデータが減るため、全体の安定性が向上。
  3. シンプルなロジック設計
    事前に抽出条件を指定することで、後続の条件分岐を最小化できる。
  4. エラー防止
    空配列(データなし)を防ぐ設計が可能になり、フロー停止のリスクが減る。

✅ トラブルシューティング:フィルタークエリが動作しないときの対処法

Filter Queryは構文が少し特殊なため、書き方のミスで動作しないことがあります。
以下の点をチェックしてみましょう。


① 列名の指定ミス

→ 表示名ではなく内部名(Internal Name)を指定。
URLの Field= で確認する。


② シングルクォートの抜け

→ 文字列には必ず ' ' が必要。

Status eq '承認待ち'   ← 正しい  
Status eq 承認待ち     ← 誤り

③ 大文字・小文字の区別

EQ ではなく必ず eq を使う。
構文はすべて小文字で統一する。


④ 空のデータを処理しようとしてエラーになる

empty() 関数を使って、データがあるか判定してから処理を実行。

if(empty(body('複数の項目の取得')?['value']), 'データなし', '処理を続行')

✅ まとめ:Filter QueryでPower Automateをもっとスマートに

Power Automateの「複数の項目の取得」におけるフィルタークエリは、
フローの効率化とデータ精度の両方を高めるための強力な仕組みです。

最後に、本記事のポイントを整理します。


🔍 この記事のまとめ

  • 「複数の項目の取得」では全データではなく必要なデータだけ取得しよう
  • フィルタークエリはOData形式(例:Status eq '完了')で書く
  • 日本語列は内部名を指定(例:申請者_x0020_名 eq '田中'
  • 複数条件は and / or で組み合わせる
  • 部分一致は substringof() を使用
  • 日付条件にはUTC形式を使う(datetime'...'
  • 動作しない場合は列名・構文・クォートを再確認する

Filter Queryを理解すれば、SharePointやExcelのデータ抽出を細かくコントロールでき、
Power Automateの自動化フローをより「正確」「高速」「安定」させることができます。

複雑な条件でも慣れれば直感的に書けるようになるため、
この記事を参考に、実務に即したフィルタークエリ設定を試してみてください。

    -Power Automate, SharePoint・リスト操作