この連載では「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のワークシートで作成したものと違い、途中で数式が間違っていないかな…という不安はなくなるでしょう。
連載「Excel2013で止まっている人必見!業務効率がUPするExcel2019活用術」、今回は、Power Queryを使ったテーブルの結合方法を紹介しました。
これまで複数のExcelデータを、VLOOKUP関数を駆使して作成していた方は、今回のようにPower Queryを活用してみてください。業務効率がアップすることに気が付いていただけると思います。
次回は、「Power Queryの使い方」編のラスト。この3回でご紹介しきれなかった、Power Queryの便利機能をご紹介します。この連載の最終回でもある次回、ぜひ、楽しみにしておいてください。
関連する記事が他にもあります
業務効率UP!Excel2019活用術
- 知らないと損!Excel2019「Power Query」活用必須の便利機能編
- 知らないと損!Excel2019「Power Query」複数データの結合編
- 知らないと損!Excel2019「Power Query」データの整形編
- 知らないと損!データ集計に最適なExcel2019「Power Query」とは
- マップグラフを超えるインパクト、Excel2019「3D Maps」とは
- 知らないと損!誰でも売上予測が作れるExcel2019「予測シート」機能とは
- 知らないと損!Excel2019グラフ「マップグラフ」「じょうごグラフ」とは?
- 知らないと損!Excel2019グラフ「パレート図」「ウォーターフォール」とは?
- 知らないと損!Excel2019グラフ「ヒストグラム」「箱ひげ図」とは?
- 知らないと損!Excel2019グラフ「サンバースト」「ツリーマップ」とは?
- 知らないと損!EXCEL2019関数MAXIFS、MINIFS、CONCATとは
- 知らないと損!EXCEL2019の新関数「IFS」「SWITCH」とは?
- Excel2013ユーザー必見!知らないと損するExcel2019の新機能とは?