Power Automate Excelのフィルタークエリを詳しく調査|以上/以下の抽出、指定列が空欄の行の除去など

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.】

ということでこれらのフィルターを行いたい場合はアレイのフィルター処理を使う(日付の場合はISO 8601形式の方がやりやすい)。
左辺にExcelから取得した列(item()[‘列名’])を、(日付の場合はformatDateTimeで形式を合わせて)指定し、
右辺は比較対象になる数字または日付を指定する。
するとフィルターが可能になる。

大量のデータを高速にフィルターしたい場合

ただ、上記の方法はあくまで「取得」してから「フィルター」してるだけなので、Excelの最大取得行数「256行」には注意が必要

関連記事

タイトルとURLをコピーしました