パラメータクエリ ― セルの値で結果を切り替える
このページのゴール
Excelシート上のセルに入力した値をPower Queryのフィルター条件やファイルパスとして渡し、エディターを一切開かずに「更新」ボタンだけで出力結果を切り替えられるようになることです。
パラメータクエリの仕組み
パラメータクエリは3つの要素で構成されます。
| 要素 | 役割 | 具体例 |
|---|---|---|
| ①パラメータテーブル | シート上に作成する小さなテーブル。ユーザーが条件値を入力するセルを含む。 | セルA2に「営業部」と入力 |
| ②パラメータ取得クエリ | ①のテーブルからセル値を読み取り、1つの値(テキスト・数値)として返すクエリ。Excel.CurrentWorkbook() を使用。 | 「営業部」というテキストを返す |
| ③メインクエリ | ②で得た値をフィルター条件やファイルパスとして使用するクエリ。 | 部署列が「営業部」の行だけ残す |
ユーザーがシート上のセルの値を変えて「更新」するだけで、②→③が再実行され、結果が切り替わります。
セル値をフィルター条件にする ― 手順
Step 1:パラメータテーブルを作成する
操作
1. シート上にパラメータ用の小さな表を作ります。例:
A1に「部署」、A2に「営業部」と入力。
2. A1:A2を選択して Ctrl+T でテーブル化します。
3. テーブル名を「param_部署」などわかりやすい名前に変更します(テーブルデザインタブで変更)。
Step 2:パラメータ取得クエリを作成する
操作
1. データ タブ → テーブルまたは範囲から(パラメータテーブルをクリックした状態で)。
2. エディターが開きます。1行1列の小さなテーブルが表示されます。
3. 「部署」列のヘッダー下にある値「営業部」のセルを右クリック → 「ドリルダウン」します。
4. テーブルが消え、「営業部」というテキスト値だけが残ります。
5. ホーム → 閉じて次に読み込む → 接続のみで保存します。
6. クエリ名を「prm_部署」に変更します。
テーブル(複数行×複数列の構造)から1つの値を取り出す操作です。ドリルダウン後のクエリは「テーブル」ではなく「単一の値」を返すクエリになります。この値を他のクエリから参照できるのがパラメータクエリの核心です。
Step 3:メインクエリでパラメータを参照する
操作(M言語の一部修正が必要)
1. メインのデータクエリをエディターで開きます。
2. 「部署」列でフィルターをかけます(何でもよいので適当な値で)。フィルターのステップが追加されます。
3. 数式バーを確認すると、次のようなM言語が表示されています:
4. この "営業部" の部分を、パラメータクエリの名前に書き換えます:
5. Enterで確定します。これで「prm_部署」クエリが返す値でフィルターされるようになります。
Step 4:使ってみる
操作
1. シートに戻り、パラメータテーブルの値を「経理部」に変更します。
2. データ タブ → すべて更新をクリックします。
3. メインクエリの出力が「経理部」のデータに切り替わります。エディターは一切開いていません。
セル値をファイルパスに使う
取り込むファイルのパスをシート上で管理し、パスを変えて「更新」するだけで別のファイルを取り込めるようにする方法です。
操作
1. パラメータテーブルに「パス」列を追加し、セルに C:\Data\sales_202603.csv と入力。テーブル名「param_FilePath」。
2. Step 2と同様にドリルダウンして「prm_FilePath」クエリを作成(接続のみ)。
3. メインクエリの詳細エディター(表示タブ → 詳細エディター)を開き、ソースステップのファイルパスを次のように書き換えます:
4. シート上のパスを変えて更新すれば、別のCSVが自動で取り込まれます。
Windowsのファイルパスは
\(バックスラッシュ)です。M言語のテキスト内では \\ ではなく \ をそのまま使えます。フォルダパスの末尾にバックスラッシュを付けるかどうかは統一してください。
応用パターン
| パターン | パラメータの内容 | 使いどころ |
|---|---|---|
| 日付でフィルター | 「2026/03/01」(日付型に変換してドリルダウン) | 月次データから特定月だけ抽出 |
| Top N件 | 「10」(数値型に変換してドリルダウン) | 上位N件を動的に切り替え |
| フォルダパス | 「C:\Data\2026年3月\」 | 月ごとにフォルダが変わるファイル取り込み |
| 複数パラメータ | 部署・期間など複数のパラメータテーブルを用意 | ダッシュボード的な使い方 |
まとめ
パラメータクエリの本質は「シート上のセルの値をM言語のコード内で参照する」ことです。設定に必要なM言語の修正は、数式バーの文字列リテラル("営業部")をクエリ名(prm_部署)に書き換えるだけ。この1箇所の修正だけで、エディターを開かずに「セルの値を変えて更新」するだけで結果が切り替わる強力な仕組みが手に入ります。