Power Automateのフィルタークエリ 書き方と演算子一覧・型別の指定方法とエラー対処

Power Automateのフィルタークエリ 書き方と演算子一覧・型別の指定方法とエラー対処

「アイテムの取得を実行しても100件しか返ってこない」「条件に合うデータがあるはずなのに0件になる」。Power Automateを使い始めた人がほぼ全員ぶつかるのが、この2つです。

原因はどちらもフィルタークエリにあります。フィルタークエリは、データを取得する段階で条件に合う行だけを返させるための記述で、OData形式という書き方に従います。ここを使いこなせるかどうかで、フローの速さも安定性も大きく変わります。

難しく見えるのは、列の型ごとに書き方が変わること、そして画面に表示されている列名とは別の内部名を使う必要があることが理由です。この2点さえ押さえれば、あとは組み合わせで対応できます。

この記事では、基本の構文と使える演算子から、列の型別の書き方、内部名の調べ方、日付の式の組み込み方、そして動かないときの切り分け方までを順に整理します。

確認したいポイント結論詳細
フィルタークエリとは?取得の段階で対象を絞る指定SharePointなどからデータを取る際に、条件に合う行だけを返させるOData形式の記述です。
使わないとどうなる?既定では100件しか返らない「アイテムの取得」の既定の制限は100件です。全件を取ってから絞ると処理も大幅に遅くなります。
書き方の基本は?「列名 演算子 値」の順で書く文字列は半角の一重引用符で囲み、数値は囲みません。andやorで複数の条件をつなげます。
動かない原因で多いのは?列の内部名と型の指定違い表示名ではなく内部名が必要です。日本語の列名は変換された文字列になっている場合があります。

この記事でわかること

  • フィルタークエリの役割と、フロー内で絞り込む方法との違い
  • 公式にサポートされている演算子の一覧と、基本となる構文の書き方
  • テキスト、数値、選択肢、日付、はい/いいえなど列の型別の指定方法
  • 表示名と異なる列の内部名の調べ方と、日本語の列名で起きる問題への対処
  • 0件になる、エラーで止まるといった症状の原因の切り分け方と件数上限への対応
業務自動化の進め方をまとめた資料を無料で配布しています
どの業務から自動化に着手すべきかの見極め方、社内に定着させる手順、費用の目安を1冊にまとめました。検討段階の情報収集にご活用いただけます。
▶ 資料請求はこちら
※オンライン完結/しつこい営業は一切いたしません
目次

フィルタークエリとは|取得の段階で絞り込む仕組み

フィルタークエリは、SharePointリストやExcel、Dataverseなどからデータを取得するアクションに用意されている設定項目です。ここに条件を書いておくと、条件に合う行だけがフローに返ってきます。

書き方はOData(オーデータ)と呼ばれる形式に従います。SQLに似ていますが独自の記法があり、そのまま同じようには書けません。

フロー内で絞り込むのとの違い

同じ絞り込みは、全件を取得してから条件アクションで判定しても実現できます。ただし、この方法は件数が増えるほど処理時間とリソースを消費します。

1万件のリストから10件を抜き出す場合を考えると、違いは明確です。フィルタークエリを使えば10件だけが返りますが、フロー内で絞る方法では1万件を受け取ってから1件ずつ判定することになります。

サーバー側で絞るか、手元に全部持ってきてから絞るかの違いです。実務では前者を選ぶのが原則になります。

使えるアクションと設定場所

最もよく使われるのが、SharePointコネクタの「アイテムの取得」と「ファイルの取得」です。アクションを追加して詳細オプションを展開すると、フィルタークエリの入力欄が表示されます。

同じ考え方はExcel Online(Business)の「表内に存在する行を一覧表示」やDataverseの「行を一覧にする」でも使えます。コネクタによって対応する演算子が異なる点には注意が必要です。

この記事では、最も利用頻度の高いSharePointの「アイテムの取得」を前提に説明します。基本の考え方は他のコネクタでも共通です。

既定では100件しか取得できない

見落とされがちですが重要な仕様です。公式ドキュメントアイテムの取得とファイルの取得の詳細な分析(Microsoft Learn)によると、既定のアイテムの制限は100件で、アイテムは既定でページ分割されます。

サイトアドレスとリスト名を指定しただけの状態では、100件しか返ってきません。「データが足りない」という相談の多くは、この既定値が原因です。

返す件数は詳細オプションの「上位カウント」で指定します。大規模なリストではリストビューのしきい値である5,000件まで増やせますが、5,000を超える値を指定するとエラーになります。

フィルタークエリの書き方の基本

構文はシンプルです。「列名 演算子 値」を半角スペースで区切って書く、これが基本形になります。

最も基本的な形

地域という列の値が「関東」である行だけを取得したい場合、次のように書きます。

Location eq ‘関東’

Locationが列名、eqが「等しい」を表す演算子、’関東’が探したい値です。eqはequalの略で、OData形式で等価を表すコードになります。

ここで使うLocationは、画面に表示されている列名ではなく内部名です。日本語の列名をそのまま書いて動かないというのが、初心者に最も多いつまずきです。内部名の調べ方は後の章で説明します。

文字列は引用符で囲み、数値は囲まない

型による違いで最初に覚えるべき点です。文字列は半角の一重引用符で囲み、数値は囲みません。

Status eq ‘承認済み’      ← 文字列

Amount eq 3               ← 数値

数値の列に引用符を付けて書くとエラーになります。逆に、文字列の列で引用符を忘れた場合も同様です。列の型を常に意識することが、エラーを減らす最大のポイントになります。

使うのは必ず半角の一重引用符です。全角の引用符や二重引用符では動きません。日本語入力のままメモ帳などで書いてから貼り付けると、この事故が起きます。

andとorで条件をつなぐ

複数の条件を組み合わせるには、andとorを使います。andは両方を満たす行、orはどちらかを満たす行が対象になります。

Location eq ‘関東’ and Status eq ‘承認済み’

Status eq ‘未対応’ or Status eq ‘保留’

andとorはすべて半角小文字で書きます。AND、ORといった大文字では認識されません。

条件を増やすほど、どこかにミスが入る確率も上がります。うまくいかないときは1条件だけに戻して動作を確認するという進め方が確実です。

かっこで優先順位を指定する

andとorを混在させる場合は、意図した順序で評価されるようにかっこで囲みます。かっこがないと想定と違う結果になることがあります。

(Status eq ‘未対応’ or Status eq ‘保留’) and Location eq ‘関東’

この例では、「未対応または保留」であり、かつ「関東」である行が対象になります。かっこを外すと、「未対応」または「保留かつ関東」という別の条件として解釈される可能性があります。

条件が3つ以上になったら、かっこを付ける前提で書くと誤りを防げます。読み手にとっても意図が明確になります。

使える演算子と関数の一覧

書けるものと書けないものが決まっている点が、フィルタークエリの難しさです。ここでは公式にサポートされているものを整理します。

数値比較の演算子

数値や日付の大小を判定する演算子です。頭文字を覚えると迷いません。

  • eq:等しい(equal)
  • ne:等しくない(not equal)
  • gt:より大きい(greater than)
  • ge:以上(greater than or equal)
  • lt:より小さい(less than)
  • le:以下(less than or equal)

Amount ge 100000 and Amount lt 500000

gtとgeの違いに注意します。10万円以上を対象にしたいときにgtを使うと、ちょうど10万円の行が漏れます。集計結果が微妙に合わない場合は、まずここを疑います。

文字列比較の演算子と関数

文字列に対しては、等価判定に加えて前方一致と部分一致が使えます。公式にサポートされているのは次のものです。

  • eq / ne:完全一致、完全一致でない
  • startswith:指定した文字で始まる(前方一致)
  • substringof:指定した文字を含む(部分一致)

startswith(Title, ‘A’)

substringof(‘請求’, Title)

substringofは引数の順序が逆になる点に注意します。探したい文字列が先、列名が後です。startswithと同じ順序で書いてしまう誤りが頻発します。

後方一致のendswithは、環境によって動作しないことがあります。使う前に必ず実際のリストで確認するようにしてください。

並べ替えの書き方

フィルタークエリとは別の欄になりますが、あわせて覚えておくと便利です。「列名 asc」で昇順、「列名 desc」で降順を指定します。

Title asc

Start_x0020_Date desc

2つ目の例にある「_x0020_」は、列名に含まれる半角スペースの置き換えです。0は数字のゼロです。スペースを含む列名を扱うときは、この変換が必要になります。

サポート外の書き方に注意

SharePointは、Power Automateが求めるすべての操作を実行するわけではありません。特定の種類のクエリだけをサーバー側で処理するという制約があります。

そのため、他のシステムのODataで使える書き方が、そのままでは通らないことがあります。複雑な条件を書いて動かない場合は、サポート外の記法を使っている可能性を疑います。

対処は、条件を分解してフロー側で判定することです。サーバー側で大きく絞り込み、残りの細かい条件はフローの中で処理するという役割分担にします。

列の型別の指定方法

実務でつまずくのはここです。同じ「等しい」を表現するにも、列の型によって書き方が変わります。

1行テキスト・複数行テキスト

最も素直に扱える型です。値を一重引用符で囲むだけで動きます。

Title eq ‘見積書’

ただし、複数行テキストのうちリッチテキスト形式のものは、フィルターに使えない場合があります。HTMLタグを含んだ状態で保持されるためです。絞り込みに使う項目は1行テキストで作っておくのが安全です。

値に一重引用符そのものが含まれる場合は、引用符を2つ重ねて書くことでエスケープします。

数値・通貨

引用符で囲まずにそのまま書きます。小数を含む場合もそのままです。

Amount gt 50000

値が入っていない行を扱いたい場合は、nullとの比較を使います。空欄を除外したいという要件は実務で頻繁に出てきます。

Amount ne null

選択肢(単一選択)

文字列と同じように扱えます。選択肢に設定した文言を、一字一句そのまま書く必要があります。

Category eq ‘経費精算’

0件になる原因として多いのが、選択肢の表記ゆれです。全角と半角のスペース、中黒とハイフン、括弧の種類などが1文字でも違うと一致しません。リストの設定画面から選択肢をコピーして貼り付けるのが確実です。

複数選択が可能な選択肢列は、単純な等価比較では絞り込めません。この場合はフロー側で判定するか、列の設計を見直します。

日付と時刻

文字列として引用符で囲み、年月日をハイフンでつないだ形式で指定します。

Due_x0020_Date ge ‘2026-09-01’

注意すべきは時差です。SharePointは日時を協定世界時で保持しているため、日本時間の0時ちょうどを境界にすると、前日のデータが混ざることがあります。

厳密な期間指定が必要な場合は、開始と終了の両方を条件に入れて範囲で絞ります。時刻まで含めて指定することも可能です。

Due_x0020_Date ge ‘2026-09-01’ and Due_x0020_Date lt ‘2026-10-01’

はい/いいえ(真偽値)

型としては真偽値ですが、実際にはtrueとfalseでうまく絞り込めない場面があります。現場でよく使われる対処が、1と0で指定する方法です。

IsApproved eq 1      ← 「はい」を取得

IsApproved eq 0      ← 「いいえ」を取得

この列型は環境や更新の状況によって挙動が変わるという報告があります。実装前に少量のデータで両方の書き方を試し、期待どおりの結果になるほうを採用してください。

ユーザーまたはグループ

ユーザー列は内部的に別の情報を持つため、列名の後にスラッシュで項目を指定します。表示名で絞るならTitle、メールアドレスで絞るならEMailを使います。

Author/Title eq ‘山田 太郎’

AssignedTo/EMail eq ‘yamada@example.com’

表示名は同姓同名や表記変更で一致しなくなるため、メールアドレスで絞るほうが安定します。ユーザーIDで指定する方法もあります。

参照(ルックアップ)列

他のリストを参照している列も、スラッシュで参照先の列を指定します。公式ドキュメントにも例が掲載されています。

Country/Title eq ‘ニュージーランド’

ここでのCountryが参照列、Titleが参照先リストの列名です。参照列が12個を超えるリストでは、取得アクション自体が失敗するという別の制限もあるため、列設計の段階から意識しておきます。

フロー設計や自動化の対象選びからご相談いただけます
書き方は分かっても、自社のどの業務に適用すれば効果が出るかは別の問題です。業務の棚卸しから一緒に整理する30分の無料相談をご用意しています。
▶ 相談予約はこちら
※オンライン完結/秘密厳守/助成金活用のご相談も歓迎

列の内部名の調べ方

動かない原因として最も多いのがここです。フィルタークエリで使うのは、画面に表示されている列名ではなく内部名です。

なぜ内部名が必要なのか

SharePointは、列を作成した時点の名前を内部名として保持します。後から表示名を変更しても、内部名は最初のまま変わりません。

そのため、「担当者」という表示になっている列の内部名が「Person」だったり、まったく別の文字列だったりします。表示名で書いても認識されないのはこのためです。

さらに厄介なのが、日本語やスペースを含む名前で列を作った場合です。内部名が変換された文字列になり、人が読める形ではなくなります。

リスト設定のURLから確認する

内部名は次の手順で確認できます。難しい操作ではありません。

  • SharePointリストを開き、右上の歯車アイコンから「リストの設定」を選ぶ
  • 画面を下にスクロールし、列の一覧から確認したい列名をクリックする
  • 開いた設定ページのURLを見て、末尾の「Field=」以降の文字列を確認する

URLが「…FldEdit.aspx?List=xxxx&Field=partsName」であれば、内部名はpartsNameです。この文字列をそのままフィルタークエリに書きます。

日本語名で作った列の場合、「Field=_x62c5__x5f53__x8005_」のような文字列になります。この場合は先頭にOData_を付けて指定する必要があるケースがあり、実際に試して確認します。

日本語で列を作らないという予防策

最も確実な対処は、そもそも変換が起きないようにすることです。列を新規作成するときは半角英数字だけで名前を付け、作成後に表示名を日本語へ変更します。

この手順を踏めば、内部名は読みやすい英数字のまま、画面表示は日本語という状態になります。手間は最初の一度だけです。

既存のリストで内部名が変換されてしまっている場合、名前を作り直すには列そのものを作り直す必要があります。新しくリストを作る段階から徹底しておく価値のあるルールです。

動的な値と式を組み込む

固定の値だけでなく、実行時に決まる値を条件に使えます。ここができるようになると、フィルタークエリの実用性が一段上がります。

変数やトリガーの出力を差し込む

フィルタークエリの入力欄には、動的なコンテンツをそのまま挿入できます。トリガーで受け取った値や、前のアクションの結果を条件にできます。

注意点は引用符の扱いです。文字列として比較する場合、動的なコンテンツの前後を一重引用符で囲む必要があります。囲み忘れが原因のエラーは非常に多く発生します。

うまくいかないときは、いったん固定値に書き換えて動くかどうかを確認します。固定値で動くなら、原因は差し込んだ値のほうにあると切り分けられます。

日付を計算して条件にする

「今日以降のデータ」「過去7日間のデータ」といった相対的な期間指定には式を使います。公式ドキュメントでも次の形が例示されています。

Start_x0020_Date gt ‘formatDateTime(utcNow(),”yyyy-MM-dd”)’

utcNow関数で現在時刻を取得し、formatDateTime関数で日付形式に整えています。過去7日間であれば、addDays関数と組み合わせます。

式を書く際は、フィルタークエリ欄に直接入力するのではなく、動的なコンテンツの式タブで組み立ててから挿入すると誤りが減ります。引用符の入れ子で混乱しやすい部分です。

値に引用符が含まれる場合

会社名や商品名に一重引用符が含まれていると、そこで文字列が終わったと解釈されエラーになります。引用符を2つ重ねることでエスケープします。

外部から取り込んだデータを条件に使う場合は、この対処を組み込んでおくと安全です。replace関数で置換してからフィルタークエリに渡すという方法もあります。

同様に、アンパサンドやパーセント記号など、URLで特別な意味を持つ文字が含まれる場合も注意が必要です。

動かないときの原因と対処

エラーの内容ごとに、確認すべき箇所は決まっています。闇雲に書き換えるより、順番に切り分けるほうが早く解決します。

エラーメッセージから切り分ける

実行履歴でアクションを開くと、エラーの内容が表示されます。頻出するのは次の3パターンです。

  • Column does not exist:指定した列名が存在しない。内部名の確認が必要
  • 構文に関するエラー:引用符の閉じ忘れ、全角文字の混入、演算子の綴り誤り
  • The query is not valid:サポートされていない書き方を使っている

1つ目が出た場合は、まず内部名を再確認します。表示名をそのまま書いているケースが大半です。2つ目は、書いた内容をメモ帳に貼り付けて全角文字が混ざっていないか見ると発見が早くなります。

エラーは出ないが0件になる

構文は正しいものの、該当データがあるはずなのに何も返らないという状態です。原因の多くは値の不一致にあります。

選択肢の表記ゆれ、前後の空白、全角と半角の違い、日付の時差。これらはすべて、見た目には分かりません。実際のデータをリストの画面で開き、値をコピーして条件に貼り付けて試します。

条件を1つずつ外しながら、どこで0件になるかを特定するという進め方が確実です。すべて外して全件返るところから、1つずつ足していきます。

5,000件を超えるリストでの注意

見落とすと原因が分からなくなる仕様です。公式ドキュメントには、5,000件を超えるリストでフィルタークエリを使う場合、最初の5,000件に一致する項目がないとレコードが返らないことがあると明記されています。

対処として案内されているのは、アクションの設定メニューから改ページ(ページネーション)を有効にすることです。これにより、5,000件を超える範囲まで検索されるようになります。

ただし、改ページを有効にするとフローの速度は落ちます。上位カウントで必要な件数を指定し、改ページは必要な場合にだけ使うという使い分けが実務的です。

まずは1条件だけで試す

すべてに共通する基本の姿勢です。複雑なクエリをいきなり書かず、最も単純な1条件から始めて動作を確認します。

1条件で動いたら、and で条件を1つ足して再度実行する。この積み上げ方であれば、どの条件を足した時点で壊れたかが必ず特定できます。

慣れないうちは、この手順が遠回りに見えます。しかし、5つの条件を一度に書いて原因を探す時間と比べれば、結果的にはるかに短時間で終わります。

性能を落とさない使い方と運用

フィルタークエリは、正しく使えばフローの速度を大きく改善します。逆に使い方を誤ると、遅いだけでなく不安定な処理になります。

全件取得してからの絞り込みは避ける

改めて強調しておきたい原則です。取得の段階で絞れるものは、必ず取得の段階で絞ります。

フロー内の条件アクションやフィルター配列アクションは、サーバーから受け取った後に処理するものです。通信量も実行時間も、取得件数に比例して増えます。

公式のトレーニング教材でも、改ページを求めると時間がかかりフローの速度が低下すると説明されています。必要な分だけを取得するという設計が基本です。

上位カウントと改ページの設定

上位カウントは最大5,000、改ページのしきい値は最大100,000まで指定できます。ただし大きな値を入れるほど処理は重くなります。

実務で扱う件数が2,500件程度に収まるなら、上位カウントを2,500に設定するだけで済み、改ページを使う必要はありません。実際のデータ量を確認したうえで設定します。

上限いっぱいの値を入れておけば安心という考え方は、性能面で不利になります。必要な値を見積もって指定してください。

インデックス列を作成する

大規模なリストで頻繁に絞り込む列があるなら、SharePoint側でインデックスを作成します。リストの設定から「インデックス付きの列」で追加できます。

インデックスを付けた列で絞り込むと、しきい値の制約を受けにくくなり、取得も速くなります。日付や区分など、条件に使う頻度が高い列を優先して設定します。

この設定はフィルタークエリ側ではなくリスト側の作業です。フローを作る前に、対象リストの設計としてあわせて検討しておきます。

書いたクエリを社内で共有する

技術的な話から離れますが、運用面での要点です。フィルタークエリは書いた本人以外には読み解きにくく、属人化しやすい部分です。

中小企業庁の2025年版中小企業白書では、DXに向けた取り組みを進めるうえでの問題点として、推進する人材が足りないことが取り組み段階を問わず高い割合で挙げられています。担当者1人に依存する状態は避けたいところです。

対策は単純で、フローの説明欄やコメントに、そのクエリが何を絞り込んでいるかを日本語で書き残すことです。列の内部名と表示名の対応表を用意しておくと、引き継ぎがさらに楽になります。

自動化を社内へ広げていく進め方は業務効率化アイデア55選|部門別30+AI15+明日から3つで成果を出す方法で、手段の比較検討はAIツール比較|法人利用で見るべき7つの軸と主要ツールの違い、料金の目安で整理しています。

まとめ

フィルタークエリは、データを取得する段階で条件に合う行だけを返させる仕組みです。「アイテムの取得」の既定は100件という仕様を知らずに使うと、データが足りないという事態になります。

書き方の基本は「列名 演算子 値」です。文字列は半角の一重引用符で囲み、数値は囲みません。使える演算子はeq、ne、gt、ge、lt、leと、文字列向けのstartswith、substringofです。

つまずく原因のほとんどは、列の内部名を使っていないことと、型に合わない書き方をしていることの2つに集約されます。列は半角英数字で作成してから表示名を日本語に変える、という予防策が有効です。

動かないときは、1条件だけに戻して動作を確認し、そこから条件を足していきます。5,000件を超えるリストでは、最初の5,000件に該当がないと0件になる仕様も押さえておきます。

まずは既存のフローで全件取得している箇所を1つ見つけ、フィルタークエリに置き換えてみてください。処理時間の違いが、この記述を覚える価値を実感させてくれます。

AIコンサル・AX伴走支援サービスご紹介資料

社外AI役員サービスご紹介資料
  • サービス資料のページ例:社外AI役員とは
  • サービス資料のページ例:AI活用による企業変革の支援内容

この資料でこんなことがわかります!

  • 社外AI役員とは
  • 支援内容
  • 導入の進め方
  • 導入実績・効果

\3ステップで簡単入力/

フローの設計から社内定着まで、無料で相談できます
作ったフローが増えて管理しきれない、担当者1人に依存している状態を解消したいといった段階のご相談も承っています。営業色は一切ありません。
▶ 相談予約はこちら
※オンライン完結/秘密厳守/助成金活用のご相談も歓迎

この記事の監修者

石丸真平

石丸真平

株式会社ネクストスケール 代表取締役

株式会社ネクストスケールの代表。「AI時代に勝てる企業組織を共に創る」を掲げ、法人向けの生成AI研修とAX(AIによる企業変革)の伴走支援を手がける。経営課題の整理からAI活用領域の設計、ツール選定、業務への組み込み、社内定着、ROI測定までを一気通貫で支援。単なる効率化ではなく、経営戦略としてAIを活かす視点での支援を得意とする。Xでは「本当に仕事で使えるAI」をテーマに、実務で使えるノウハウを発信している。
この記事をシェアする
  • URLをコピーしました!

関連事例

他の成功事例を見る
目次

AI活用を経営成果につなげる
実践ヒントがわかる資料

社外AI役員の支援内容や導入の進め方を、わかりやすくご紹介します。

  1. 資料表紙

必要事項をご入力ください

フォームを読み込んでいます…