Excelのフィルタークエリで以上(ge)や以下(le)が使えないことを知ったので、詳しく調査してみた。
事前準備
このOneDrive上のExcelにフィルタークエリを使用し、動作を詳しく確認してみた。


文字列のフィルタ
文字列型へのフィルタは色々できて、以下の演算子が使える。
- eq : 等しい
- ne : 等しくない
- startswith : で始まる
- endwith : で終わる
- contains : を含む
eqやneは普通に使えるし、




startswithやendswith




containsも使えるのでかなり充実。




列名 eq '【対象文字列】' // 等しい 列名 ne '【対象文字列】' // 等しくない startswith(列名, '【対象文字列】') // で始まる endswith(列名, '【対象文字列】') // で終わる contains(列名, '【対象文字列】') // を含む
空白の行を除去
ある列が空白の行は除去したい、みたいな場合はneと空文字を組み合わせれば実現可能。




列名 ne '' // 「''」を忘れないこと
数字と日付/日時のフィルタ
数字や日付についてもeqやneについては問題なくフィルタ可能。




ただ、Excelのフィルタークエリでは「以上」や「以下」などには対応していなしく、フィルタークエリを設定するとエラーが発生する。
【Invalid filter clause: unsupported operation. Only single ‘eq’, ‘ne’, ‘contains’, ‘startswith’ or ‘endswith’ is currently supported.】


【Invalid filter clause: unsupported operation. Only single ‘eq’, ‘ne’, ‘contains’, ‘startswith’ or ‘endswith’ is currently supported.】


ということでこれらのフィルターを行いたい場合はアレイのフィルター処理を使う(日付の場合はISO 8601形式の方がやりやすい)。


左辺にExcelから取得した列(item()[‘列名’])を、(日付の場合はformatDateTimeで形式を合わせて)指定し、


右辺は比較対象になる数字または日付を指定する。


するとフィルターが可能になる。


※日時でフィルタするときはタイムゾーンを考慮すること。


Power Automate SharePointの日付と時刻列(時間付き)のフィルタークエリ実例|今より前のデータ取得 など
今回は前回の続きで「時間付き日付列」を対象としてフィルタークエリの実例。前回はこちら時間のフィルターについて日付の場合「2024-10-19」というフォーマットでフィルターを作成したが、時間が入る場合「2024-10-19T00:00:00...
大量のデータを高速にフィルターしたい場合
ただ、上記の方法はあくまで「取得」してから「フィルター」してるだけなので、Excelの最大取得行数「256行」には注意が必要。
もし大量のデータを高速にフィルターしたい場合は、オフィス スクリプトの使用を推奨。


Power Automate Excel内の大量のデータを高速に扱うときはOfficeスクリプトの利用を推奨
Excelにある大量のデータを高速に取得したいと言われたので、Officeスクリプトで実現してみた。「表内に存在する行を一覧表示」ではパフォーマンスと安定性に懸念Excel内のデータを一覧で取得するには、Excelコネクタの「表内に存在する...