【Excel】Power Queryのパラメーターを使ってフィルター条件を動的に切り替える方法

【Excel】Power Queryのパラメーターを使ってフィルター条件を動的に切り替える方法
🛡️ 超解決

【要点】Power Queryでフィルター条件を動的に切り替える方法

  • パラメーターの作成: フィルター条件を外部から指定できる変数を作成します。
  • パラメーターの参照: 作成したパラメーターをクエリのフィルター条件で利用します。
  • パラメーターの値の変更: Excelシートやクエリ設定でパラメーターの値を変更し、クエリ結果を更新します。

ADVERTISEMENT

Power Queryパラメーターの仕組みと利便性

Power Queryのパラメーター機能は、クエリ内で使用する値を外部から設定できるようにする仕組みです。これにより、クエリ自体を編集することなく、特定の条件を変更してデータを再取得できます。

例えば、特定の地域名、日付、数値などをパラメーターとして設定しておけば、これらの値を変更するだけで、該当するデータのみを抽出した結果を得られます。

これは、レポート作成やデータ分析において、様々な切り口でデータを素早く確認したい場合に非常に役立ちます。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

パラメーターを作成しクエリに適用する手順

ここでは、具体的な例として、地域名をパラメーターで指定し、その地域ごとの売上データを抽出する手順を解説します。

1. パラメーターの新規作成

  1. Power Queryエディターを開く
    Excelのリボンメニューから「データ」タブを選択し、「データの取得と変換」グループにある「データの取得」→「Power Queryエディターの起動」をクリックします。
  2. パラメーターの管理画面を開く
    Power Queryエディターの「ホーム」タブにある「パラメーター」グループから「パラメーターの管理」を選択します。
  3. 新しいパラメーターを追加する
    「パラメーターの管理」ウィンドウで「新規パラメーター」ボタンをクリックします。
  4. パラメーターの設定
    • 名前: パラメーターの名前を入力します。ここでは「地域」とします。
    • 説明: 必要に応じて、パラメーターの説明を入力します。例:「抽出する地域名」
    • 必須: チェックを入れると、値が必須になります。
    • 種類: パラメーターのデータ型を選択します。地域名なので「テキスト」を選択します。
    • 推奨値: ここでドロップダウンリストの候補を設定できます。後述する「値」の設定と連動します。
    • 現在の値: パラメーターの初期値を設定します。ここでは例として「東京」と入力します。
  5. パラメーターの作成を完了する
    設定が完了したら「OK」ボタンをクリックします。これで「地域」という名前のパラメーターが作成されました。

2. 作成したパラメーターをクエリに適用する

  1. フィルターを適用したいクエリを選択する
    Power Queryエディターの左側にある「クエリ」ペインから、フィルターを適用したいクエリを選択します。
  2. フィルター列を選択する
    対象のデータ列(ここでは「地域」列)のフィルターボタンをクリックします。
  3. テキストフィルターを設定する
    表示されるメニューから「テキストフィルター」→「指定の値と等しい」を選択します。
  4. パラメーターを参照する設定
    「指定の値と等しい」ダイアログボックスが表示されます。左側のドロップダウンリストで「テキスト」となっている部分をクリックし、「パラメーター」を選択します。
  5. 作成したパラメーターを選択する
    右側のドロップダウンリストに、先ほど作成した「地域」パラメーターが表示されるので、これを選択します。
  6. フィルターを適用する
    「OK」ボタンをクリックします。

これで、クエリのステップに「フィルターされた行」が追加され、パラメーター「地域」の値に基づいてデータがフィルターされるようになります。

初期値で「東京」を設定しているため、この時点では「東京」のデータのみが表示されているはずです。

3. パラメーターの値を変更してクエリを更新する

  1. パラメーター管理画面を再度開く
    Power Queryエディターの「ホーム」タブにある「パラメーター」グループから「パラメーターの管理」を選択します。
  2. パラメーターの値を変更する
    「地域」パラメーターの「現在の値」欄に、新しく抽出したい地域名(例:「大阪」)を入力します。
  3. 変更を保存する
    「OK」ボタンをクリックします。
  4. クエリを更新する
    Power Queryエディターの「ホーム」タブにある「閉じて読み込む」ボタンの▼をクリックし、「閉じて次に読み込む…」を選択します。
  5. 読み込み設定を確認する
    「データのインポート」ダイアログボックスが表示されたら、通常はそのまま「OK」をクリックします。
  6. 結果を確認する
    Excelシートに、新しいパラメーター値(「大阪」)でフィルターされた結果が読み込まれます。

このように、クエリを編集せずにパラメーターの値を変更するだけで、異なる条件でのデータ抽出が可能になります。

Excelシートからパラメーターを操作する方法

Power Queryエディターを開かなくても、Excelシート上の値を直接パラメーターに反映させることができます。これにより、さらに手軽に条件を切り替えられるようになります。

1. Excelシートにパラメーター用のセルを作成する

  1. 新しいシートを作成する
    Excelブック内に新しいシートを作成し、シート名を「設定」など分かりやすい名前に変更します。
  2. セルにラベルと値を入力する
    例えば、A1セルに「抽出地域」と入力し、B1セルに初期値として「東京」と入力します。

2. パラメーターをExcelシートのセルにリンクさせる

  1. Power Queryエディターを開く
    既存のクエリを右クリックし、「編集」を選択してPower Queryエディターを開きます。
  2. パラメーター管理画面を開く
    「ホーム」タブの「パラメーター」グループから「パラメーターの管理」を選択します。
  3. 既存のパラメーターを選択する
    「地域」パラメーターを選択した状態で、「現在の値」欄の右側にあるドロップダウンボタンをクリックします。
  4. 「Excelシート」を選択する
    ドロップダウンリストから「Excelシート」を選択します。
  5. リンクするセルを選択する
    「参照」ボタンをクリックし、先ほど作成した「設定」シートのB1セル(「東京」と入力したセル)を選択します。
  6. 設定を完了する
    「OK」ボタンをクリックして、パラメーター管理画面を閉じます。

3. Excelシートの値でクエリを更新する

  1. Excelシートの値を変更する
    「設定」シートのB1セルの値を、例えば「札幌」に変更します。
  2. クエリを更新する
    Excelのリボンメニュー「データ」タブにある「すべて更新」ボタンをクリックします。
  3. 結果を確認する
    「札幌」のデータのみを抽出した結果がExcelシートに表示されます。

このように、Excelシートの値を変えるだけで、Power Queryのフィルター条件を動的に変更できるようになりました。この機能は、複数の担当者間で同じテンプレートを共有し、各自が担当地域のデータを抽出する際などに特に便利です。

ADVERTISEMENT

複数のパラメーターや異なるデータ型での活用

パラメーターは、地域名のようなテキスト型だけでなく、数値型や日付型など、様々なデータ型で作成できます。また、複数のパラメーターを組み合わせて、より複雑な条件設定も可能です。

1. 数値・日付パラメーターの作成と利用

例えば、売上金額の閾値を設定するパラメーターを作成する場合を考えます。

  1. パラメーターの作成
    「パラメーターの管理」画面で、「種類」を「10 進数」や「日付」などに設定して作成します。
  2. クエリでの利用
    フィルター条件で「指定の値より大きい」や「指定の値の間」などを選択し、パラメーターを参照します。

これにより、「売上金額が100万円以上のデータ」といった抽出条件をパラメーターで切り替えられるようになります。

2. 複数パラメーターの組み合わせ

例えば、「地域」と「年度」の2つのパラメーターを作成し、両方の条件でフィルターをかけることも可能です。

  1. 複数のパラメーターを作成
    「地域」パラメーター(テキスト型)と「年度」パラメーター(数値型)を作成します。
  2. クエリに適用
    まず「地域」列で「地域」パラメーターを参照してフィルターをかけます。
  3. さらにフィルターを追加
    次に、「年度」列で「年度」パラメーターを参照してフィルターを追加します。

この場合、Power Queryエディターの「適用されたステップ」に、それぞれのフィルター条件が別々のステップとして追加されます。

Excelシートに複数のセルを用意し、それぞれのパラメーターをリンクさせれば、複雑な条件設定もGUI操作で柔軟に行えるようになります。

パラメーター利用時の注意点とトラブルシューティング

パラメーター機能は非常に便利ですが、いくつかの注意点や、予期せぬ動作を引き起こす可能性のあるポイントも存在します。

1. データ型の不一致によるエラー

パラメーターの「種類」と、クエリで参照する列のデータ型が一致していないと、エラーが発生します。

  • 原因: 例えば、パラメーターを「数値」型で作成したのに、クエリ側では「テキスト」型の列を参照しようとした場合などです。
  • 対処法: パラメーターの「種類」と、クエリの列のデータ型が一致しているか確認してください。必要であれば、クエリの列のデータ型を「データ型変換」ステップで明示的に変更してください。

2. 推奨値と現在の値の連携

パラメーター作成時に設定する「推奨値」は、ドロップダウンリストの候補を表示するためのものです。実際のフィルター条件に影響するのは「現在の値」です。

  • 原因: 「推奨値」に設定した値が「現在の値」と異なり、意図しない結果が表示されることがあります。
  • 対処法: 「現在の値」が常に最新のフィルター条件であることを確認してください。Excelシートと連携させる場合は、「現在の値」をシートのセルにリンクさせることが重要です。

3. パラメーターの削除とクエリへの影響

パラメーターを削除すると、そのパラメーターを参照しているクエリのステップでエラーが発生します。

  • 原因: 依存関係のあるパラメーターを削除してしまった場合です。
  • 対処法: パラメーターを削除する前に、どのクエリで利用されているかを確認してください。もし削除が必要な場合は、まずクエリのステップを修正してからパラメーターを削除するようにしましょう。

4. Power Queryのバージョンによる違い

Power QueryはExcelのバージョンによって機能やUIが若干異なる場合があります。

  • Excel for Microsoft 365: 最新の機能が随時追加され、UIも洗練されています。
  • Excel 2019/2021: 基本的なパラメーター機能は利用できますが、UIや一部の細かい設定項目が異なることがあります。

もし、上記の手順でうまくいかない場合は、お使いのExcelのバージョンを確認し、ヘルプドキュメントを参照することをおすすめします。

Power Queryパラメーターと他の機能との比較

Power Queryのパラメーター機能は、動的なデータ抽出を実現する強力な手段ですが、他のExcel機能と比較してどのような違いがあるのでしょうか。

項目 Power Queryパラメーター Excelのフィルター機能 VBAマクロ
動的な条件設定 ◎ (クエリ外部から設定可能) △ (手動での再設定が必要) ◎ (コードで柔軟に設定可能)
データソースの範囲 ◎ (様々なデータソースに対応) △ (主にExcelシート内のデータ) ◎ (Excelシート、外部ファイルなど)
再利用性 ◎ (クエリ単位で保存・再利用) × (設定はシートごとに保存) ◎ (マクロとして保存・再利用)
操作の容易さ ○ (GUI操作中心、Excelシート連携でさらに容易) ◎ (直感的で簡単) △ (VBAの知識が必要)
処理速度 ○ (大量データ処理に強い) △ (データ量が多いと遅くなる場合がある) ○ (コード次第で高速化可能)
学習コスト ○ (Power Queryの基本操作が必要) ◎ (特別な知識は不要) △ (VBAのプログラミング知識が必要)

Power Queryのパラメーターは、Excelの標準フィルター機能よりも高度な動的条件設定が可能であり、VBAマクロのようにプログラミング知識がなくても複雑なデータ処理を実現できる点が強みです。

特に、複数のデータソースを統合・加工する際に、条件を柔軟に変更したい場合に最適な機能と言えるでしょう。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】