本ページには広告が含まれています。

Power Query フィルターをパラメーターで変更可能にする

PowerQueryでフィルターをパラメーターで変更可能にする

Power Query 第22回目です。
前回は、フィルターを手動で設定して読み込むファイルを絞り込む方法について勉強しました。
今回は、パラメーターを利用してフィルター設定を変更できるようにしていきましょう。

くるみこ
くるみこ

パラメーター値を使ってフィルターに適用する方法です。テーブルからパラメーターを作成する方法は勉強していますから、今回はその応用です。

パラメーターを利用する応用編ということですね。
よろしくお願いしますm(__)m

【この記事でわかることは】
・フィルターの絞り込みにパラメーターを使う方法がわかります
・テーブルのパラメーター値変更でフィルターが変更できることがわかります

前回記事のおさらいは、下のカードをクリックすれば開きます(^^ゞ

・前回内容はフォルダーから読み込む [ソース] をフィルターで絞り込む方法ついて解説しています。

記事作成にあたっては次の Microsoft office のサポートの情報などを参照しています。
Power Query for Excel のヘルプ
Excel の Power Query について
データのフィルター処理 (Power Query)

なお、この記事の画像は Microsoft 365 で取得した画像です。Excel2016 のリボンやメニューなどバージョンによって違うようなので、適宜読み替えをお願いします(^^)/

スポンサーリンク

フィルターで絞り込むコードの確認

前回、手動でフィルター設定した Mコード を確認します。

手動でフィルター設定した Mコード を確認

・最初の行(3行目)が「指定の値を含む」テキストフィルターの Mコードです。
・2番目(4行目)は「指定の値に等しい」を「基本」で設定した場合のコードです。

フィルターされた行 = Table.SelectRows(ソース, each Text.Contains([Folder Path], “\08\”)),
フィルターされた行1 = Table.SelectRows(フィルターされた行, each [Extension] = “.csv”),

複数の列をフィルター処理するには、最初の列をフィルター処理し、追加の列ごとに列フィルターを繰り返します。

パラメーターで値を指定する

それでは、パラメーターを使ってフィルターの「指定の値」をセットしてみましょう。

パラメーターを用意します

・下図のすでにカスタム関数で使用中のパラメーター用に作成したテーブル「ParamSetTable」を使いましょう。

パラメーター用テーブル

・行を追加してパラメーターを増やしていきます。

・テーブルに追加している動画です。マウスで文字「月指定」が隠れちゃってるけど(^^;

テーブルは隣接セルに入力するだけで行や列が自動追加されるのですごく楽ですね。

・これで二つのパラメーターが追加されました。

先ほどの Mコード に組み入れます

・書き換えた部分は赤字で表記します。

フィルターされた行 = Table.SelectRows(ソース, each Text.Contains([Folder Path], GetParamValue(“月指定”))),
フィルターされた行1 = Table.SelectRows(フィルターされた行, each [Extension] = GetParamValue(“拡張子”)),

Mコードにコードを追加

・設定後、[完了] を選択します。

設定後の動作を確認してみます

・エラー無くプレビューされました。

設定完了後動作結果をプレビューでの確認

・Mコードのパラメーターが確認できます。

・「08」でフィルターされ、該当フォルダーが表示されています。

列ヘッダーのアイコン表示が変わりました

・手動設定でフィルターを実行した時のアイコン表示は、下の画像のようになっています。

手動設定したフィルターのアイコン表示

・フィルターをパラメーターで設定した場合、アイコンの「フィルターしている表示」が無くなっています。外見ではフィルターされていないように見えます。

アイコンの「フィルターしている表示」が無い

パラメーター値を変更してみます

・「月設定」の「Value」を「\01\」に変更します。

パラメーター値を変更

・変更後のプレビュー画像がこちらです。

パラメーター変更後のプレビュー確認

・「01」フォルダーだけに絞り込まれました。

・パラメーターがしっかり機能していることを確認できました。

データ型によるフィルターの違い

列のデータ型によって、フィルターオプションが違います。
代表的なデータ型を見てみましょう。

・テキスト型の場合

テキスト型のフィルタ

・日付/時刻型のフィルターオプション

日付/時刻型のフィルターオプション

・数値型のフィルターオプション

数値型フィルターオプション

パラメーター値等でフィルターを設定する場合の手順
・はじめに、手動でフィルターを設定してみます。
・プレビューを確認して正しくフィルターされているかどうか確認します。
・正しくない場合は、正しくフィルターされるまで設定を変更して繰り返します。
・正しいフィルターの状態で、詳細エディターで Mコード を確認します。
・確認できたら、パラメーター値を設定して Mコード を書き換えます。
・書き換え後、正しく動作しているかプレビューで確認します。
・正しくない場合は、パラメーター や Mコード を見直します。
こんな感じです。

まとめ(おわりに)

以上、フィルターの設定値にパラメーターを使う方法について解説しました。

今回も、サンプルファイルにフォルダー設定と見本のCSVファイルをまとめて登録しておきますので、いろいろな設定を試してみてください。

追加作成された [ステップ] を削除すれば、簡単に元に戻せますのでぜひ練習してみてください。

まとめと感想など

くるみこ
くるみこ

フィルターの設定にパラメーターを使う方法について勉強しました。パラメーターもカスタム関数を利用したものを使ってみましたが、いかがでしたか?

今まで勉強してきたことの応用だから、難しくはなかったです。でも、フィルターオプションがすごく沢山あるので、一度それぞれ試してみないといけないですね。
サンプルを使って復習します(^^♪

【今回わかったことは】
・フィルターの絞り込みにパラメーターを使う方法がわかりました
・テーブルのパラメーター値変更でフィルターが変更できることがわかりました

★★★ ブログランキング参加中! クリックしてね(^^)/ ★★★

【今後の記事について】

今回の記事はいかがだったでしょうか。皆さまのお役に立てたなら幸いです(^^;
「汎用でだれでも使えて活用できるように考えてる」というポリシーで、記事を継続して書いていきたいと思っています。どうぞよろしくお願いしますm(_ _)m

【検討中の今後の記事内容は・・・・・】
・実務に役立つものを提供できるよう常に検討しています(^^ゞ
・その他雑記的に「プチネタなど」もいろいろ考えていきたいと思います・・・・・
・今後の記事にご期待ください(^^)/

スポンサーリンク
スポンサーリンク

過去記事のサンプルファイルをダウンロードできます

今回記事のサンプルファイルを登録しています

過去の記事で使用したサンプルファイルをダウンロードできるようにページを設置していますので、こちら(このリンク先)からご利用ください