\Excelショートカット集もらえる/
Power Queryのマージ(結合)とは?|結合の種類や3つ以上のクエリの追加も解説
この記事では、Power Queryの「クエリのマージ(結合)」機能の使い方を解説していきます。
「項目数を横に増やしていくならVLOOKUP関数じゃだめなの?」と思っている方も、この記事を読めばPower Queryでクエリの結合を使うメリットがわかり、作業を自動化することができます。
サンプルデータを使って練習がしたい・・・という方向けに、本記事で使用しているデータをダウンロードできるようにご準備しております!こちらからダウンロードをしてみてください。
- Power Query初心者
- クエリのマージ=VLOOKUP関数だと思っている
- VLOOKUP関数のように、他のシートにあるデータを引っ張ってきたい
【Before】
【After】
この記事の監修者
大垣 凜太郎
Excel・PowerPoint・Word研修講師
慶応義塾大学大学院法務研究科、東京大学大学院工学研究科修了
新卒で一般社団法人JTIの専務執行役員として、法務・経営企画を担当。法人対応における統括責任を務め、ビジネス現場におけるMicrosoft Officeツールの利活用を熟知したプロフェッショナル。
クエリのマージとは?
機能説明に入る前に、「そもそもマージって何?」と言う方も多いかと思います。マージとは、複数のファイルやデータを、決められたルールに従って統合することを指します。今回紹介する便利機能「クエリのマージ」も、複数データ間での共通するキーワード(照合列)を設定して、表と表を横につなげる機能です。
どういうものかというとExcelユーザーに馴染みのある「VLOOKUP関数」と同じようなことができる機能です。ただ、「クエリのマージ=VLOOKUP関数」というわけではなく、それ以外のアウトプットもできますので、ひとつひとつ丁寧に解説していきます。
【マージのイメージ】
どうしてVLOOKUP関数ではなくクエリのマージを使うのか?
冒頭で、VLOOKUP関数のような機能が使えるとお伝えしました。「それだったら、VLOOKUP関数を使えばいいんじゃないの?」と思うかもしれません。VLOOKUP関数を使うより、PowerQueryを使った方がいい理由を3つご紹介します。
- ビッグデータの活用が可能
Excelデータの限界:1,048,576行(Excel2003までは65,536行)
PowerQueryデータの限界:制限なし(xlsx ブックからインポート) - 更新作業が簡単
作業を自動化できる - 1対多の結合が可能
VLOOKUP関数では、共通の項目を設定して1つのデータしか引っ張ってこれないですが、
PowerQueryの場合、複数の項目を引っ張ってくることが可能です。
クエリのマージには6種類ある
6種類あるクエリのマージ方法のイメージをご紹介します。初めて学ぶ方は、「とりあえず左外部を使う」と覚えていただければ問題ありません。結合の6種類ついて詳しく学びたい方は、このパートの最後にあるYouTube動画をご覧ください!
6つの結合の種類
今回は、使用頻度の高い「左外部」の解説をします。
※6つの詳細を知りたい方は、下記の動画に詳しい解説がありますので、確認ください。
実際にクエリのマージ機能を使ってみよう
動画(無音)で確認したい方はこちらをご覧ください。好きなところで停止したり、巻き戻したりすることも可能なので理解するまで何度でもご覧ください!
手順①
∟マージしたいデータをパワークエリエディターに取り込む
それでは実際に複数のデータを結合してみましょう!まずは、「売上報告書データ」からパワークエリエディターを表示します。
Excelワークシート上の[データ]>[クエリと接続]>[売上報告書]をクリック。
次に「顧客データ」をパワークエリエディターに取り込んでいきます。
【ホーム】>【新しいソース】>【テキスト/CSV】をクリック。
そうすると、下記【Image①】のように「こんな感じでデータインポートしますね」という確認画面が表示されますので、[OK]をクリックします。
【image①】
手順②
∟クエリのマージボタンの使用
次に「売上報告書」クエリ*を選択した状態で、[ホーム]>[クエリのマージ]ボタンをクリック。
*売上報告書クエリに「顧客マスタ」クエリから必要データを引っ張ってきたいため、「売上報告書」クエリを選択した状態で手順を進めました。
この手順を終えると、下記【image②】のような画面が出てきます。
【image②】
次に画面真ん中あたりにあるドロップダウンリストから
マージしたい「顧客マスタ」データを選択します。
そうすると「顧客マスタ」のデータセット一覧がプレビューとして表示されます。
【「顧客マスタ」のデータセット一覧】
手順③
∟共通キーワードを選定する
「売上報告書」クエリと「顧客マスタ」クエリの共通項(キーワード)を選択する作業を行います。今回は、「売上報告書」クエリの「顧客ID」と「顧客マスタ」クエリの「顧客NO」が共通項なので、この2つを選択しています。
クエリのマージを行うときに、選択した列のデータ型が違う場合は、失敗します。
【失敗例】
「顧客ID」のデータ型:テキスト
「顧客NO」のデータ型:数字
上記失敗例の場合、errorが発生します。
*列項目の項目名は違っていても問題ないです。
手順④
∟結合の種類を選択する
[結合の種類を選択する]ボタンから「左外部」を選択します。
左外部を選択した後に確認していただきたい項目が、【image③】の赤線で囲っている部分です。
【image③】
この「選択範囲では、最初のテーブルと228,266行中、228,266行が一致していま…」と書かれてるものは、最初に選択した「売上報告書」と「顧客マスタ」のデータが、228,266行/228,266行すべてが照合しあえているという意味です。
これが仮に、「選択範囲では、最初のテーブルと228,266行中、10,000行が一致していま…」という表示であれば、照合できた程度が低いということになるので、結合前にこの部分はしっかり確認しておきたいところです!
*ちなみに照合できなかった行がある場合は、エディター内では「null」と表示されます。
【左外部で照合ができなかった行の見え方】
image③の画面を[OK]を押して進むと、image④のような画面に切り替わります。
【image④】
「結合し終えたのに、レコードの中にTableって出てきた・・」と疑問を抱くかと思います。
VLOOKUP関数とは違い「クエリのマージ」機能は、1対多のマージが可能です。
【クエリのマージのイメージ】
上記の【クエリのマージのイメージ】のデータでいう1対多は、
1:顧客ID/NOという共通項1つから
多:Tableに入っているすべての列(顧客NO/地域/TEL)情報を引っ張ってこれる
というイメージです。
マージした際、複数のデータがとりあえず「Table」として統合され、その統合された複数の中身から必要な項目だけを選択する作業を後述の手順⑤で行います。
手順⑤
∟結合後のデータを展開する
前述のPOINTでお伝えしたTableとして結合されたものを展開していきます。展開とは、Tableとして結合されたものの中身から必要なものだけを選択する作業を指します。結合をほどいてあげるイメージです。
まずは、image⑤の赤線で囲われている箇所[展開]ボタンをクリックします。
【image⑤】
そうするとimage⑥のような画面が出てくるので、必要なデータのみを選択して[OK]ボタンを押します。
今回は、「顧客NO」列は、すでに「顧客ID」列として存在していますので、チェックを外しておきましょう。
【image⑥】
下記【image⑦】のように画面の最下部に「元の列名をプレフィックスとして使用します」というチェックボタンがあります。ここは基本的にチェックを外しておくことをお勧めします。
【image⑦】
チェックがついた状態だと、【image⑧】のようにデータを展開した際、列項目名が「”クエリ名(顧客マスタ)”+”,(ピリオド)”+”列名”」というかなり長いものになってしまいます。
【image⑧】
実務で使う場合は、元の列名が表示されないものにしておいた方が第三者が見た際に「この列名ってなんなんだろう?」という疑問がなくて親切ですよね。
【image⑨】元の列名をプレフィックスとして使用しなかった場合
パワークエリエディターでの編集はここで終了です!
では実際に、Excelワークシート上に編集した内容を読み込んでいきましょう。
パワークエリエディター>[ホーム]>[閉じて読み込み]を押すとK列以降に今回結合したデータがマージされて完成です。
【image⑩:クエリのマージ完成形】
結合前のデータと比べるとK列以降にデータが追加されていることが分かります。
【image⑪:クエリのマージ前】
3つ以上のクエリを結合する方法
「複数のクエリの結合」というキーワードで検索して、この記事にたどり着いた方もいらっしゃるかと思います。
今回この記事では、「クエリのマージ(共通項を指定して横にデータを結合するイメージ)」を紹介しております。3つ以上の結合は「クエリの追加(縦にデータを結合するイメージ)」という機能を指しています。
【結合の種類】
似た用語が多く、混乱してしまいますが、しっかり違いをおさえていきましょう!
まとめ
いかがでしたでしょうか。今回はクエリのマージ機能を紹介しました。
実務では、複数のデータを組み合わせて、欲しい情報を一つにまとめる作業が定期的に行われることが多いです。定期的な作業を自動化できるパワークエリの特性を活かして日々の仕事を時短し、本来の仕事に注力できるようにしていきましょう!
「VBAはできないけど業務を自動化したい」
「周りと差をつけるExcelスキルを手っ取り早く獲得したい」
そんな方にはユースフルのExcelPro講座パワーコースがオススメです!登録者40万人のYouTubeチャンネル「ユースフル」のビジネス経験豊富な講師陣が、実務直結の学びを120本20時間の講義動画でお届けします。利便性・希少価値の高い実務スキルを身につけて、周囲をアッと言わせる超生産的な働き方を手に入れましょう!