鷹尾祥(アキラ)のExcel BI ブログ

Excelの革新的機能であるパワーピボット/パワークエリ/DAXについて紹介します。

VLOOKUPを使わずに2つのデータを結合(クエリのマージ)

テーマ

マージとは、2つのデータを結合することです。

Power Queryに出てくるマージには列のマージクエリのマージがありますが、本ページではクエリのマージを紹介します。


このクエリのマージを使えば、Excelで最も有名な関数、VLOOKUP関数を使用せずに2つのデータを結合することができます。

 

さらに、VLOOKUP関数のようにメモリの使用とファイルサイズの増大によってパフォーマンスが低下することもありませんし、さらに片方のキー項目だけでなく、両方のキー項目による結合も可能になります。

 

大変強力な機能ですので、ぜひ活用してください。

f:id:modernexcel7:20190501174251p:plain

 

 手順

  1. 結合(マージ)するクエリの用意

    まずは結合(マージ)する二つのクエリを用意します。今回は以下二つのクエリを用意しました。

    左ファイル

    f:id:modernexcel7:20190430095059p:plain


    右ファイル

    f:id:modernexcel7:20190430095118p:plain

  2. 「結合」メニュー

    基準となるテーブルにカーソルを置くと「クエリ」メニューが表示されますので、そこから結合をクリックしてください。今回は「左クエリ」を基準とします。

    f:id:modernexcel7:20190501174503p:plain

    f:id:modernexcel7:20190501174251p:plain

  3. 「マージ」設定

    マージ画面では、①マージする二つのクエリ②照合列③結合の種類の三つの設定をします。

    f:id:modernexcel7:20190501174920p:plain

    ①マージする二つのクエリには、「左」と「右」があります。画面上のクエリが「左」で、下が「右」となります。(ちょっと紛らわしいですね。)今回の例では「左」を「左ファイル」に、「右」を「右ファイル」に設定しています。

  4. ②照合列は、二つのクエリを結合するためのキー項目のことです。

  5. 今回の例ではそれぞれ「番号」列を使っています。
    なお、照合列には一つだけでなく複数の列を選ぶこともできます。

    ③結合の種類は、照合列を使って結合したあとに残す行の設定です。
    今回は「左外部」を選択しているので、「左ファイル」に存在する行はすべて残しますが、左ファイルの照合列にマッチしなかった「右ファイル」の行は残しません。

    各「結合の種類」による動作の違いについては以下の記事を参照して下さい。

     

    modernexcel7.hatenablog.com

     
     上記の設定が済んだら、「OK」をクリックします。

  6. Tableの展開
    結合(マージ)が完了すると、データプレビュー右側に結合された「右ファイル」が表示されます。データ型が「テーブル」なので、展開される前は「Table」という値が表示されています。

    f:id:modernexcel7:20190501200921p:plain


    「右ファイル」列右上の展開ボタンを押します。

    f:id:modernexcel7:20190501200031p:plain

    すると、展開のオプションを選択するメニューが現れます。

    f:id:modernexcel7:20190501174832p:plain

    展開のメニューには三つの設定があります。

    展開/集計・・・「展開」は右クエリの列をそのまま追加します。「集計」は左クエリと右クエリが1対多の関係だった場合、合計、件数などの集計値として列を追加します。

    列の選択・・・追加したい列を選びます。

    元の列名をプレフィックスとして使用します・・・追加される列名の先頭にクエリ名を付けます。

    今回は、デフォルトの設定のまま「OK」を押します。
    すると、「右ファイル」クエリの列が展開されます。

    f:id:modernexcel7:20190501201104p:plain

    今回は、結合の種類が「左外部」なので、左ファイルの行はすべて残っていますが、参照列がマッチしなかった右ファイルの番号=3の行は残っていません。

    最後に「閉じて読み込む」を実行してワークシートテーブルに読み込みます。

    f:id:modernexcel7:20190501201425p:plain
    f:id:modernexcel7:20190501174815p:plain