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の「更新」ボタン一つで、結合結果も自動的に最新の状態にできます。
Power Queryでデータを結合する手順
ここでは、2つのExcelシート(「売上データ」と「商品マスタ」)を例に、Power Queryのマージ機能を使ってデータを結合する手順を解説します。
「売上データ」シートには、商品コード、売上数、売上日などが、「商品マスタ」シートには、商品コード、商品名、単価、カテゴリなどが含まれているとします。
最終的に、売上データに商品名や単価などの情報を付加した、結合済みのデータを作成することを目指します。
Step 1:各テーブルをPower Queryに読み込む
- Excelシートをテーブルに変換する
まず、結合したい各Excelシートのデータ範囲を選択します。Ctrl+T(またはCommand+T)を押して、「テーブルの作成」ダイアログを表示させます。ヘッダー行がある場合は、「先頭行をテーブルの見出しとして使用する」にチェックを入れて「OK」をクリックします。これにより、データがExcelテーブルとして管理され、Power Queryでの取り込みが容易になります。 - テーブルをPower Queryに読み込む
Excelテーブルに変換したら、テーブル内の任意のセルを選択します。「データ」タブをクリックし、「データの取得と変換」グループにある「テーブルまたは範囲から」をクリックします。これにより、「Power Query エディター」が開きます。 - 「Power Query エディター」で確認する
Power Query エディターが開いたら、読み込まれたデータが正しく表示されているか確認します。必要に応じて、列名の変更やデータ型の確認・修正を行います。 - 「閉じて読み込む」でExcelシートにテーブルとして読み込む
データが問題なければ、「ホーム」タブの「閉じて読み込む」をクリックします。ここでは、「閉じて読み込む」の▼をクリックし、「閉じて次に読み込む」を選択します。表示されるダイアログで「テーブル」を選択し、「OK」をクリックします。これにより、Power Queryで整形されたデータが新しいExcelシートにテーブルとして読み込まれます。この操作を、結合したい全てのテーブルに対して行います。
Step 2:テーブルをマージする
- マージを実行するクエリを選択する
Power Query エディターで、結合の「基準」となるテーブル(例:「売上データ」)を選択します。 - 「マージ」機能を選択する
「ホーム」タブにある「クエリのマージ」ボタンをクリックします。ドロップダウンメニューが表示されるので、「クエリをマージ」を選択します。 - マージダイアログの設定
「マージ」ダイアログが表示されます。上段のドロップダウンリストには、現在選択しているテーブル(例:「売上データ」)が表示されています。下段のドロップダウンリストで、結合したいもう一方のテーブル(例:「商品マスタ」)を選択します。 - 結合キーとなる列を指定する
両方のテーブルで、共通のキーとなる列(例:「商品コード」)をクリックして選択します。複数の列をキーにしたい場合は、Ctrlキーを押しながら複数の列を選択します。選択した列は、背景色が変化して示されます。 - 結合の種類を選択する
「結合の種類」のドロップダウンリストから、目的に合った結合方法を選択します。VLOOKUP関数は「左外部結合」に相当します。ここでは、「左外部結合」を選択します。 - 「OK」をクリックする
設定が完了したら、「OK」をクリックします。
Step 3:結合結果を展開する
- 展開アイコンをクリックする
Power Query エディターに戻ると、元のテーブルに新しい列が追加されています。この列には、マージしたテーブルの名前が表示され、右端に展開アイコン(左右の矢印)が表示されています。このアイコンをクリックします。 - 展開する列を選択する
展開ダイアログが表示されます。ここで、結合したい「商品マスタ」テーブルから取り込みたい列(例:「商品名」、「単価」、「カテゴリ」)を選択します。元のテーブルのキー列(例:「商品コード」)は、通常、既に元のテーブルにあるため、チェックを外しておくと重複を防げます。 - 「元の列名をプレフィックスとして使用します」のチェックを外す
通常、展開された列には元のテーブル名がプレフィックスとして付与されます(例:「商品マスタ.商品名」)。これを避けたい場合は、「元の列名をプレフィックスとして使用します」のチェックを外します。 - 「OK」をクリックする
選択が終わったら「OK」をクリックします。 - データ型を確認・修正する
展開された列に、元のテーブルから必要な情報が結合されていることを確認します。必要に応じて、各列のデータ型(数値、テキスト、日付など)を修正します。 - 「閉じて読み込む」で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機能との組み合わせも検討すると、業務効率が大きく向上するでしょう。
ADVERTISEMENT
超解決 Excel・Word研究班
企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。
Office・仕事術の人気記事ランキング
- 【Outlook】宛先が「オートコンプリート」に出ない・間違っている時の修正手順|履歴の削除と再構築
- 【Outlook】メールの受信が数分遅れる!リアルタイムで届かない時の同期設定と送受信グループ設定
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
- 【Outlook】「メール送信を5分遅らせる」設定!誤送信を防ぐ最強のディレイ機能
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Outlook】予定表の「祝日」が表示されない!最新カレンダーの追加と二重表示の修正手順
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
