Power Automate(パワーオートメイト)を使ってSharePointリストやExcelテーブルなどからデータを取得する際、
「特定の条件に合うデータだけ取得したい」「不要なデータを省いて効率的に処理したい」という場面は非常に多くあります。
そんなときに欠かせないのが「複数の項目の取得(Get items)」アクションのフィルタークエリ(Filter Query)設定です。
この設定を使うことで、条件に一致したデータだけをPower Automateが取得できるため、
処理のスピードアップやフローの安定性向上に大きく役立ちます。
この記事では、「複数の項目の取得」で使うフィルタークエリの基本構文・書き方・実務応用例を、初心者にもわかりやすく解説します。
SharePointリストを例に、複数条件・部分一致・日付指定など、現場でよく使われる設定パターンを丁寧に紹介します。
目次
- ✅ 「複数の項目の取得(Get items)」とは
- ✅ Filter Queryの基本構文
- ・例1:ステータスが「承認待ち」のデータだけ取得
- ・例2:金額が5000円以上のデータを取得
- ・例3:担当者が「田中」ではないデータを取得
- ✅ 日本語列名を使う場合の注意点(内部名)
- ・内部名の確認方法
- ✅ 複数条件を組み合わせる方法(and / or)
- ・例1:部署が「営業部」かつステータスが「完了」
- ・例2:担当者が「佐藤」または「鈴木」
- ・例3:金額が1000円以上かつ5000円以下
- ✅ 日付を使った条件設定(Created、Modifiedなど)
- ・例1:作成日が今日以降のデータ
- ・例2:1週間以内に更新されたデータ
- ・例3:2025年1月1日以降のデータ
- ✅ 部分一致・含む条件を使う方法(substringof)
- ・例1:タイトルに「請求書」を含むデータ
- ・例2:備考に「緊急」が含まれるデータ
- ✅ 実務で役立つフィルタークエリの応用例
- ・例1:承認待ちデータのみTeamsに通知
- ・例2:当日更新されたアイテムをメール送信
- ・例3:特定担当者+特定ステータスを組み合わせて抽出
- ✅ フィルタークエリ設定のメリット
- 主なメリット
- ✅ トラブルシューティング:フィルタークエリが動作しないときの対処法
- ① 列名の指定ミス
- ② シングルクォートの抜け
- ③ 大文字・小文字の区別
- ④ 空のデータを処理しようとしてエラーになる
- ✅ まとめ:Filter QueryでPower Automateをもっとスマートに
- 🔍 この記事のまとめ
✅ 「複数の項目の取得(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)が異なるためです。
・内部名の確認方法
- SharePointリストを開く
- 「設定(歯車マーク)」→「リストの設定」を開く
- 「列」をクリックして、対象列を選択
- 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の前後には必ずスペースを入れる- 大文字・小文字を区別する(
ANDやORは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 '承認待ち' - 処理フロー:
- 「複数の項目の取得」でFilter Queryを設定
- 「Apply to each」で1件ずつ処理
- 各担当者にTeamsメッセージを送信
これにより、毎朝自動で承認待ちデータだけを通知するフローを作成できます。
・例2:当日更新されたアイテムをメール送信
- Filter Query:
Modified ge '@{startOfDay(utcNow())}' - 処理フロー:
- 今日更新されたデータを取得
- HTMLテーブルに整形
- Outlookメールで自動送信
業務日報や更新通知の自動配信に最適です。
・例3:特定担当者+特定ステータスを組み合わせて抽出
- Filter Query:
Author eq '田中' and Status eq '完了'
このように複数条件を組み合わせれば、「担当者ごとの完了データ集計」などの管理業務にも応用できます。
✅ フィルタークエリ設定のメリット
フィルタークエリを正しく使うと、Power Automateの処理効率が格段に上がります。
主なメリット
- 無駄なデータを除外できる
取得データを必要最小限に絞り込み、処理時間を短縮。 - トリガーの負荷軽減
フロー実行時に扱うデータが減るため、全体の安定性が向上。 - シンプルなロジック設計
事前に抽出条件を指定することで、後続の条件分岐を最小化できる。 - エラー防止
空配列(データなし)を防ぐ設計が可能になり、フロー停止のリスクが減る。
✅ トラブルシューティング:フィルタークエリが動作しないときの対処法
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の自動化フローをより「正確」「高速」「安定」させることができます。
複雑な条件でも慣れれば直感的に書けるようになるため、
この記事を参考に、実務に即したフィルタークエリ設定を試してみてください。