posted

知らないと損!Excel2019「Power Query」複数データの結合編

知らないと損!Excel2019「Power Query」複数データの結合編

この連載では「Excel2013で止まっている人必見!業務効率がUPするExcel2019活用術」と題し、Excel2019(Office365)の新機能や活用方法を、13回にわたり紹介しています。

連載第10回からご紹介しているのは、Excel2019で進化した便利機能「PowerQuery」の使い方
前々回はPower Queryの概要とデータの取込み方法について、前回はデータの成型方法についてご案内しました。今回は、複数のテーブルを結合する方法をご紹介します。

自部署用のデータを集計するのに、各部署が作成しているデータを集めてきて、必要部分だけコピペして…という作業を行っている方は、今回の記事を読んでいただき、仕事に活用してくださいね。

データの取込み・集計に最適!PowerQueryの使い方
(1)概要とデータの取込み連載第10回
(2)データの整形連載第11回
(3)複数データの結合(連載第12回←今回はココ
(4)フォルダ内複数データの結合から集計まで(連載第13回
広告

Power Queryでテーブルを結合!まず概要を確認しよう

今回Power Queryでの結合に使用するテーブルは、こちらの3つです。

  • 営業部にある売上データのテーブル
  • 人事部にある社員リストのテーブル
  • 購買部にある商品台帳のテーブル

複数データの結合編

各部署が日々更新しているこれらのテーブルは、各部署内で使用するだけでなく、組み合わせれば、様々な分析ができるようになりますね。
テーブルを結合するには、各テーブルにある「同じ項目」で紐付けていくことになります。

例えば以下の図のように、「売上データ」テーブルの「社員ID」と、「社員リスト」テーブルの「社員ID」を繋ぐ設定をすると、「売上データ」と「社員リスト」を結合できます。
この結合したテーブルに、「商品CD」を使って「商品台帳」テーブルも同じように結合すると、さらに詳しいテーブルができあがります。

複数データの結合編

下図のように、社員別の商品売上データが作成できました。
複数のテーブルを結合することで、どの社員がいくら売り上げたのかとか、どの商品が良く売れているのかといった、単独のテーブルでは見えなかった様々なことが見えてきます。

複数データの結合編

これまでも、Excel2013であればVLOOKUP関数を使って、社員IDに紐づけて社員の名前を表示することなどは可能でした。
しかしこの方法だと、多くのセルに計算式を入れるので、パソコンのパフォーマンスが下がることがありました。また、データの追加があれば、その都度検索範囲を広げる必要もありました。

Excel2019のPower Queryを使えば、VLOOKUP関数とは違い、より効率よく簡単にテーブルを結合・表示できるようになるのです。

では実際に、2つのテーブルを結合して1つにしていきましょう。

「売上データ」に「社員リスト」を結合してみよう

ここからは、Excel2019のPower Queryを使って「売上データ」「社員リスト」「商品台帳」の3つのテーブルを結合し、新たに「売上一覧表」を作成していきます。

まずはデータの取り込みを行います(手順は、連載第10回「Power Queryでブック(Excelファイル」参照。取込みしたインポートしたブック内で、今回使用するワークシートを選択し、「データの変換」>「閉じて読み込む」を、3回繰り返します)。

下図の上半分は、3つのデータを取り込み後、Excel2019のPower Queryエディターを開いた状態です。まずは、「売上データ」と「社員リスト」の結合を行っていきましょう。
ちなみに2つのテーブルは「社員ID」が共通のキーとなっています。

複数データの結合編

①「売上データ」クエリを開いた状態で、「ホーム」タブから「結合」の「クエリのマージ」横の下向き三角をクリックしましょう(「クエリのマージ」は「クエリを結合する」という意味です)。
ここでは「売上データ」のクエリとは別に、結合したクエリを新たに作成するので、「新規としてクエリをマージ」をクリックしましょう。

複数データの結合編

② マージの画面です。上側の「売上データ」を基準に、どのテーブルを結合するか選択するため、下側の下向き三角をクリックします。結合したいテーブル「社員リスト」を選択します。

複数データの結合編

③ 「照合列」(2つのテーブルを紐づける列)を、それぞれ選択します。「売上データ」の「社員ID」と「社員リスト」の「社員ID」をクリックしましょう。
「結合の種類」では、「左外部(最初の行すべて、および2番目の行のうち一致するもの)」の状態で「OK」をクリックすれば、結合後のクエリが表示されます。

複数データの結合編

④ 新しくクエリが表示されました(仮の名前で「マージ1」と表示されます)。

複数データの結合編

⑤ クエリ名を変更します。画面右側「クエリの設定」の名前欄に「売上一覧表」と入力しましょう。

複数データの結合編

⑥ 表示されたクエリは、「社員リスト」が折りたたまれた状態になっています。展開するため、「社員リスト」列名の右にある展開マークをクリックします。

複数データの結合編

⑦ 続いて、結合する「社員リスト」テーブルから表示させる列を選択します。
「社員ID」は、「売上データ」にあるのでチェックを外します。
「社員名」は、「売上データ」に無いためチェックを入れます。
「住所」は、売上一覧に必要ないデータであるため、チェックを外します。
「元の列名をプレフィックスとして使用します」はチェックを外します。これは、列名の前に元のテーブル名を入れるかどうかの設定です。

複数データの結合編

ちなみに「元の列名をプレフィックスとして使用します」にチェックを入れた場合は、下図のようになります。

複数データの結合編

⑧ 次に、日付の書式を変更しましょう。
日付の列の右側の下向き三角をクリックし「日付」を選択すると、スラッシュ形式の日付に変わります。

複数データの結合編

⑨ 見やすくなるよう、「社員名」を「社員ID」の隣に移動しましょう。列の先頭をドラッグすると、移動できます。

複数データの結合編

以上で、「売上データ」と「社員リスト」の結合は完了です。

Power Queryを使わず、VLOOKUP関数を使って作成した場合も、同じような表は作成できます。ただ、VLOOKUP関数の場合は、社員が増えると検索範囲を変更する必要がありました。Power Queryでは、社員が増えてもそのような変更は不要です。

なお、結合を行うと、下図のように「null」エラーが表示されることがあります。意味としては、値が無いといったものになります。

複数データの結合編

この理由は、「社員リスト」には社員IDがNo.001から010までしかなく、No.000が存在しないためです。

複数データの結合編

これを回避するためには、売上データ側に正しいデータを入力する、または「社員リスト」にNo.000の社員データを追加することになるかと思います。

さらに「商品台帳」を結合してみよう

では続いて、先ほど作成した「売上一覧表」クエリに、「商品台帳」を結合していきましょう。
ここではさらに、「売上データ」の「数量」と「商品台帳」の「単価」を計算し、「売上金額」を出すところまで行います。
前章と同じような内容の操作がありますが、復習と思って操作してみてください。

① 先ほど作成したクエリ「売上一覧表」のPower Queryエディターを開きます。
「ホーム」タブから「クエリのマージ」を選択します。

先ほどは新規作成だったので「新規としてクエリをマージ」をクリックしましたが、今回は既存のクエリに上書きするので「クエリのマージ」をクリックしましょう。

複数データの結合編

② マージの画面です。上側の「売上一覧表」を基準に、どのテーブルを結合するか選択するため、下側の下向き三角をクリックします。結合したいテーブル「商品台帳」を選択します。

複数データの結合編

③ 「照合列」(2つのテーブルを紐づける列)を、それぞれ選択します。「売上一覧表」の「商品CD」と「商品台帳」の「商品CD」をクリックしましょう。
「結合の種類」では、「左外部(最初の行すべて、および2番目の行のうち一致するもの)」の状態で「OK」をクリックすれば、結合後のクエリが表示されます。

複数データの結合編

④ 表示されたクエリは、「商品台帳」が折りたたまれた状態になっています。展開するため、「商品台帳」列名の右にある展開マークをクリックします。

複数データの結合編

⑤ 続いて、結合する「商品台帳」テーブルから表示させる列を選択します。
「商品CD」は、「売上一覧表」にあるのでチェックを外します。
「商品名」と「単価」は、「売上一覧表」に無いため、チェックを入れます。

複数データの結合編

⑥ 見やすくなるよう、「商品名」と「単価」を「商品CD」の右側へ、ドラッグして移動しましょう。

複数データの結合編

⑦「日付」を選択し、昇順に並べ替えます。

複数データの結合編

⑧ ここで、「単価」×「数量」の計算をする列を挿入します。
「数量」の列を選択した状態で、「列の追加」タブにある「カスタム列」をクリックしましょう。

複数データの結合編

⑨ カスタム列の画面が表示されます。
「新しい列名」に「売上金額」、「カスタム列の式」に「=[単価]*[数量]」と入力してください。
右側の「使用できる列」には、「売上一覧表」内にある列名が表示されています。クリックすると、「カスタム列の式」に文字が挿入されます。
※数式を入れるとき、通常のワークシートでは「セル名」を使いますが、Power Queryではこのように「列名」を使って計算します。

複数データの結合編

⑩ 最終列に「売上金額」が入り完成です。「閉じて読み込む」を実行すると、今回作成したクエリに従って「売上一覧表」シートが作成されます。

複数データの結合編

Excel2019のPower Queryで作成したテーブルは、1行目のデータから最終データまで間違いのない計算式が入力されるので、Excel2013のワークシートで作成したものと違い、途中で数式が間違っていないかな…という不安はなくなるでしょう。

Excel2019「Power Query」とは

連載「Excel2013で止まっている人必見!業務効率がUPするExcel2019活用術」、今回は、Power Queryを使ったテーブルの結合方法を紹介しました。

これまで複数のExcelデータを、VLOOKUP関数を駆使して作成していた方は、今回のようにPower Queryを活用してみてください。業務効率がアップすることに気が付いていただけると思います。

次回は、「Power Queryの使い方」編のラスト。この3回でご紹介しきれなかった、Power Queryの便利機能をご紹介します。この連載の最終回でもある次回、ぜひ、楽しみにしておいてください。

これだけマスター!Excel講座

スキルアップならオンスク.JP!月980円で講座受け放題!

関連する記事が他にもあります

広告

お友達紹介特典URL発行

ログインが必要です

ページトップへ