【今回は便利だけど何気に難解なフィルタークエリを数パターン解説します】
エクセルでフィルターを使う機会は多いと思います。Power Automateでもフィルターは「フィルタークエリ」という形で使うことができます。ただ文法等が何気に分かりずらいので、今回は陥りやすいパターンになるべく絞って解説します
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-24.png)
特にSharepointリストの内部名の指定やシングルクオーテーションの指定は何気に間違えやすいので注意が必要です
///2023年7月19日追加記事///
フィルタークエリに関しては、今現在、次の画像のような機能が活用できます
![](https://analytic-vba.com/wp/wp-content/uploads/2023/07/image-52.png)
この機能であれば、フィルタークエリを通常の条件式と同じように扱えます
細かな文法の知識を駆使する必要はなく、直感的な操作で設定が行えます
![](https://analytic-vba.com/wp/wp-content/uploads/2023/07/image-53.png)
この機能を活用するには、画面右上の以下の箇所を操作する必要があります
![](https://analytic-vba.com/wp/wp-content/uploads/2023/07/image-54.png)
上の画像にて、黄色の箇所をクリックするとこの機能の「オン・オフ」が指定できます
![](https://analytic-vba.com/wp/wp-content/uploads/2023/07/image-55.png)
あくまで実験的な機能という風に記されていますので、この点は注意が必要です
//////
使用データ
使用するデータは以下の画像の内容です
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-25.png)
等しい:eq(equal)
例えば「名前」の列が「木塚 信之」の行を抽出したい場合には、次のようにeqを使用します
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-26.png)
この時「シングルクオーテーション:’」を忘れないようにしてください(数値の場合は別扱い)
このフィルタークエリを実行すると次のように結果が得られます
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-27.png)
尚、上記のフィルタークエリは「表内に存在する行を一覧表示」アクション内で使用しています
等しくない:ne(not equal)
次のようにフィルタークエリを書いてみます
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-28.png)
名前が「木塚 信之」以外の行が出力されます
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-29.png)
以上:ge(greater than equal)
ここからはSharepointリストをデータソースにして「複数の項目の取得」アクション内でフィルタークエリを実行します
~以上を抽出するには「ge」を使用します
では、次のようにフィルタークエリを書いてみます
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-32.png)
そうするとエラーになります
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-33.png)
これは「年齢」というSharepointリスト内の内部名を指定できていないからです
まずはSharepointリストの「リストの設定」画面にて、内部名をURLから取得します
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-34-644x309.png)
該当箇所は「=」の次からの文字列になります
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-35.png)
これで内部名を取得できたので、フィルタークエリを修正してみます
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-36.png)
この時の出力は次の通りとなります
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-37.png)
尚、内部名が「_X・・・」となるときがあります
上記で使用していたSharepointリストはエクセルから作成しました
「問合せ日」という列を加えると内部名が次の通りになります
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-38.png)
この場合、フィルタークエリの書き方に工夫が必要です
内部名の前に「OData_」という文字を加える必要があります
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-39.png)
なお、比較の演算子には「以上:ge」以外にも次のような内容があります
以下:le
~超:gt
未満:lt
startswith他
「文字列が特定の文字から始まる」という指定を行いたい場合はstartswithを使用します
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-40.png)
出力される内容は次の通りとなります
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-41-644x133.png)
「substringof」により文字列内の特定の文字が含まれる行を抽出することもできます
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-42.png)
引数が「startswith」と逆なので注意が必要です
and条件やor条件
「且つ」や「又は」を指定することもできます
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-43.png)
<まとめ>
今回は便利なフィルタークエリですが、陥りやすいパターンを中心に解説させて頂きました
尚、下の画像のような日付の関数などを使用した場合のシングルクオーテーションなども抜けやすいので注意していきましょう
![](https://analytic-vba.com/wp/wp-content/uploads/2023/06/image-44.png)
ぜひフィルタークエリを有効活用してクラウドでの仕事を充実させていきましょう!