【Excel】Power Queryのマージ機能でVLOOKUP代わりにデータを結合する方法

【Excel】Power Queryのマージ機能でVLOOKUP代わりにデータを結合する方法
🛡️ 超解決

Excelで複数の表を結合する際、VLOOKUP関数は非常に便利です。しかし、データ量が多い場合や、複雑な条件で結合したい場合には、VLOOKUP関数では処理が重くなったり、実現が難しかったりすることがあります。

そんな時に役立つのが、Excelの「Power Query」機能です。特に「マージ」機能を使えば、VLOOKUP関数よりも効率的かつ柔軟にデータを結合できます。

この記事では、Power Queryのマージ機能を使って、VLOOKUP関数の代わりにデータを結合する方法を解説します。VLOOKUP関数で限界を感じている方や、より高度なデータ結合を求めている方は、ぜひ参考にしてください。

【要点】Power Queryのマージ機能でVLOOKUPのようにデータを結合する

  • Power Queryのインポート: 結合したい複数のExcelシートや外部データをPower Queryに読み込みます。
  • マージ操作の実行: 2つのテーブルを選択し、結合キーとなる列を指定して「マージ」を実行します。
  • 結合結果の展開: マージされたテーブルから必要な列を選択し、元のテーブルに結合します。

ADVERTISEMENT

Power Queryのマージ機能とは

Power Queryのマージ機能は、SQLのJOIN操作のように、2つのテーブルを共通の列(キー)を元に結合する機能です。VLOOKUP関数が1つのテーブルから情報を検索してくるのに対し、マージ機能は複数のテーブルを「横」に結合するイメージです。

この機能を使うことで、以下のようなメリットがあります。

  • 大量データでも高速: Excelのシート上に直接数式を入力するよりも、Power Queryはバックグラウンドで処理するため、大量のデータでも比較的軽快に動作します。
  • 柔軟な結合条件: 完全一致だけでなく、前方一致、後方一致、あいまい一致など、多様な条件で結合できます。
  • 結合方法の選択: 左外部結合、右外部結合、完全外部結合、内部結合など、SQLと同様の結合方法を選べます。
  • データ整形と統合が一度に: データの取り込みから結合、整形までを一連の流れで行えるため、作業効率が格段に向上します。
  • 更新が容易: 元データが更新された場合、Power Queryの「更新」ボタン一つで、結合結果も自動的に最新の状態にできます。
お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

Power Queryでデータを結合する手順

ここでは、2つのExcelシート(「売上データ」と「商品マスタ」)を例に、Power Queryのマージ機能を使ってデータを結合する手順を解説します。

「売上データ」シートには、商品コード、売上数、売上日などが、「商品マスタ」シートには、商品コード、商品名、単価、カテゴリなどが含まれているとします。

最終的に、売上データに商品名や単価などの情報を付加した、結合済みのデータを作成することを目指します。

Step 1:各テーブルをPower Queryに読み込む

  1. Excelシートをテーブルに変換する
    まず、結合したい各Excelシートのデータ範囲を選択します。Ctrl+T(またはCommand+T)を押して、「テーブルの作成」ダイアログを表示させます。ヘッダー行がある場合は、「先頭行をテーブルの見出しとして使用する」にチェックを入れて「OK」をクリックします。これにより、データがExcelテーブルとして管理され、Power Queryでの取り込みが容易になります。
  2. テーブルをPower Queryに読み込む
    Excelテーブルに変換したら、テーブル内の任意のセルを選択します。「データ」タブをクリックし、「データの取得と変換」グループにある「テーブルまたは範囲から」をクリックします。これにより、「Power Query エディター」が開きます。
  3. 「Power Query エディター」で確認する
    Power Query エディターが開いたら、読み込まれたデータが正しく表示されているか確認します。必要に応じて、列名の変更やデータ型の確認・修正を行います。
  4. 「閉じて読み込む」でExcelシートにテーブルとして読み込む
    データが問題なければ、「ホーム」タブの「閉じて読み込む」をクリックします。ここでは、「閉じて読み込む」の▼をクリックし、「閉じて次に読み込む」を選択します。表示されるダイアログで「テーブル」を選択し、「OK」をクリックします。これにより、Power Queryで整形されたデータが新しいExcelシートにテーブルとして読み込まれます。この操作を、結合したい全てのテーブルに対して行います。

Step 2:テーブルをマージする

  1. マージを実行するクエリを選択する
    Power Query エディターで、結合の「基準」となるテーブル(例:「売上データ」)を選択します。
  2. 「マージ」機能を選択する
    「ホーム」タブにある「クエリのマージ」ボタンをクリックします。ドロップダウンメニューが表示されるので、「クエリをマージ」を選択します。
  3. マージダイアログの設定
    「マージ」ダイアログが表示されます。上段のドロップダウンリストには、現在選択しているテーブル(例:「売上データ」)が表示されています。下段のドロップダウンリストで、結合したいもう一方のテーブル(例:「商品マスタ」)を選択します。
  4. 結合キーとなる列を指定する
    両方のテーブルで、共通のキーとなる列(例:「商品コード」)をクリックして選択します。複数の列をキーにしたい場合は、Ctrlキーを押しながら複数の列を選択します。選択した列は、背景色が変化して示されます。
  5. 結合の種類を選択する
    「結合の種類」のドロップダウンリストから、目的に合った結合方法を選択します。VLOOKUP関数は「左外部結合」に相当します。ここでは、「左外部結合」を選択します。
  6. 「OK」をクリックする
    設定が完了したら、「OK」をクリックします。

Step 3:結合結果を展開する

  1. 展開アイコンをクリックする
    Power Query エディターに戻ると、元のテーブルに新しい列が追加されています。この列には、マージしたテーブルの名前が表示され、右端に展開アイコン(左右の矢印)が表示されています。このアイコンをクリックします。
  2. 展開する列を選択する
    展開ダイアログが表示されます。ここで、結合したい「商品マスタ」テーブルから取り込みたい列(例:「商品名」、「単価」、「カテゴリ」)を選択します。元のテーブルのキー列(例:「商品コード」)は、通常、既に元のテーブルにあるため、チェックを外しておくと重複を防げます。
  3. 「元の列名をプレフィックスとして使用します」のチェックを外す
    通常、展開された列には元のテーブル名がプレフィックスとして付与されます(例:「商品マスタ.商品名」)。これを避けたい場合は、「元の列名をプレフィックスとして使用します」のチェックを外します。
  4. 「OK」をクリックする
    選択が終わったら「OK」をクリックします。
  5. データ型を確認・修正する
    展開された列に、元のテーブルから必要な情報が結合されていることを確認します。必要に応じて、各列のデータ型(数値、テキスト、日付など)を修正します。
  6. 「閉じて読み込む」でExcelシートに反映させる
    最終的な結合結果が表示されたら、「ホーム」タブの「閉じて読み込む」をクリックします。これにより、結合されたデータが新しいExcelシートにテーブルとして読み込まれます。

Power Queryマージ機能の注意点と応用

Power Queryのマージ機能は非常に強力ですが、いくつか注意すべき点や、さらに活用できる応用例があります。

結合キーのデータ型を揃える

マージ操作を成功させるためには、結合キーとして指定する列のデータ型が一致していることが重要です。例えば、一方のテーブルでは「商品コード」が数値型(12345)で、もう一方のテーブルではテキスト型(“12345”)になっている場合、正しく結合されません。

Power Query エディターで、結合キーとなる列のデータ型を確認し、必要であれば「データ型」メニューから適切な型に変更してください。通常は、テキスト型に統一するのが安全です。

結合の種類を理解する

マージダイアログで選択できる「結合の種類」は、結果に大きく影響します。それぞれの意味を理解しておきましょう。

  • 左外部結合: 左側のテーブルの全ての行と、右側のテーブルの結合キーが一致する行を結合します。一致しない場合は、右側のテーブルの列はnull(空白)になります。VLOOKUP関数の動作に最も近いです。
  • 右外部結合: 左外部結合の逆です。右側のテーブルの全ての行と、左側のテーブルの結合キーが一致する行を結合します。
  • 完全外部結合: 両方のテーブルの全ての行を結合します。どちらかのテーブルにしか存在しない行も含まれます。
  • 内部結合: 両方のテーブルで結合キーが一致する行のみを結合します。

目的に応じて適切な結合の種類を選択することが、正確なデータ結合の鍵となります。

あいまい一致による結合

Power Queryのマージ機能は、完全一致だけでなく、あいまい一致による結合も可能です。これは、例えば「商品名」が完全に一致しない(例:「○○コーヒー(200g)」と「○○コーヒー(250g)」)場合でも、ある程度の類似性があれば結合したい、といった場合に役立ちます。

結合の種類として「あいまい一致」を選択し、類似度をパーセンテージで指定することで、柔軟な結合が可能になります。

複数のテーブルを段階的にマージする

3つ以上のテーブルを結合したい場合でも、Power Queryを使えば段階的に処理できます。まず2つのテーブルをマージし、その結果を新しいクエリとして保存します。次に、その新しいクエリを基準として、さらに別のテーブルをマージしていく、という形で処理を進めることができます。

Power Query エディターの左側にある「クエリ」ペインで、各ステップ(テーブルの読み込み、マージ、展開など)がリスト表示されます。これらのクエリを右クリックして「コピー」や「参照」を選択することで、既存のクエリを元に新しいクエリを作成し、段階的な結合処理を構築できます。

Power QueryとVLOOKUPの使い分け

Power Queryのマージ機能はVLOOKUP関数の強力な代替手段となりますが、どちらが適しているかは状況によります。

項目 Power Query(マージ) Excel関数(VLOOKUPなど)
データ量 大量データに強い データ量が多いと処理が重くなる
結合の柔軟性 多様な結合条件・種類に対応 基本は前方一致の1対多結合
更新の容易さ 「更新」ボタンで自動化 元データ変更時に数式修正が必要な場合も
学習コスト 初期学習が必要 比較的習得しやすい
利用シーン データ統合、ETL処理、定型レポート作成 一時的なデータ参照、小規模な表の結合

単純な1対多のデータ参照であればVLOOKUP関数で十分な場合が多いです。しかし、データ量が膨大になる場合、複雑な条件で結合したい場合、あるいはデータの前処理(クリーニング)から結合までを一気通貫で行いたい場合は、Power Queryの導入を強く推奨します。

ADVERTISEMENT

まとめ

この記事では、ExcelのPower Query機能における「マージ」を使って、VLOOKUP関数のように複数のテーブルを結合する方法を解説しました。Power Queryを使えば、大量のデータでも効率的に、かつ柔軟にデータを結合し、その結果をExcelシートに反映させることができます。

Power Queryのエディターで各テーブルを読み込み、マージ機能で結合キーと結合種類を指定し、最後に展開することで、目的のデータ結合が実現します。結合キーのデータ型を揃えることや、結合の種類を理解することが、正確な結果を得るためのポイントです。

VLOOKUP関数では対応が難しかった複雑なデータ結合や、更新頻度の高いデータソースの統合に、ぜひPower Queryのマージ機能を活用してみてください。さらに高度なデータ整形や、他のPower Query機能との組み合わせも検討すると、業務効率が大きく向上するでしょう。

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

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

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

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