Excel機能の1つであるPowerQueryでは、Excelデータとして様々な形式のデータを取得⇒加工し、データ作成することができます。
そのPowerQueryでも、データ加工や目的のデータを作成するうえで重要な機能が、
「クエリのマージ」
「クエリの追加」
の2つです。
この2つの機能を使いこなせることで、PowerQueryでのデータ加工はもちろんのこと、データ加工や作成においてワンランク上のスキルアップにもつながります。
≪クエリの追加についてはこちら≫
今回は、PowerQueryの機能でも重要な2つの機能のうち、
「クエリのマージ」
について、紹介します。
【今回の記事で分かること】
・クエリのマージでどんなことができるのか?
・クエリのマージの使い方
・クエリのマージを使う場合の注意点
「クエリのマージ」で出来ること
「クエリのマージ」によってできることとして、
「2つのデータをテーブルをつなげて、必要とするデータを作る」
ということが可能となります。
イメージとして、下図のように、2つのテーブルで共通のフィールド(列)をキーにして、データを横につなげることで、目的のデータを作成することができます。
この「2つのデータをテーブルをつなげて、必要とするデータを作る」、クエリのマージ機能を使いこなせるようになることで、下記3つのメリット得ることができます。
①:必要なデータやデータベース(DB)をExcelで作成することができる。
②:Power PivotやDAXと組み合わせることで、集計・分析の幅と作業効率が向上する。
③:Power Query の機能でDBを作成すれば、「データの更新」~「集計・分析」までの工程を簡単に行うことができる。
Excel上でよくあるデータの作成方法として、
・ワークシート関数(VLOOKUPやXLOOKUP関数)を使い、複数のデータから必要なデータを
作る。
・Excel VBAとワークシート関数を組み合わせて、データ作成と集計・分析作業を効率化する。
といった流れが多く、Excelベースのツールを作り、業務で使用する場面が多かったように思います。
(自分自身も過去、上記のようなツールを作成していたことがあります。)
しかし、データ量が多くなってきた際やデータ元の改修により、ツールの修正も必要となると、
・手動で行う作業が増え、更新作業に時間がかかってしまう。
・ツールの修正に時間がかかってしまう。
(他人が作成したツールなら、なおさら時間がかかってしまう。)
といった、デメリットが発生してしまいがちです。
一方、Power Queryでは、データの取得~集計までの更新作業は簡易的に行うこともでき、ローコードでのデータ作成・加工となるため、修正も比較的に行いやすいため、初心者やVBAの知識がない人でも扱いやすいメリットがあります。
加えて、「クエリのマージ」を使うことで、これまでVLOOKUPやXLOOKUP関数で行っていたことが容易に行えるため、「データ・DB作成」、「集計業務」、「分析業務」といった、昨今でも業務上、求められるスキルとして役立てられる。また業務効率化における改善業務への応用に役立てることができます。
「クエリのマージ」の使い方
「クエリのマージ」の概要とそのメリットがあるかについては、上述の通りでありますが、では、どのようにして「クエリのマージ」を使えばよいのでしょうか?
4工程に分けて、解説していきます。
2つのテーブル(クエリ)を準備する
クエリのマージの前提条件として、テーブル(クエリ)を2つ用意する必要があります。
下図のデータテーブルを例に解説していきます。
2つのテーブルのうち、1つはデータが蓄積される、または日々データが更新されるようなデータテーブルまたはデータベース(ここでは、主テーブルとします)。
もう1つは、上記主テーブルのうちキーとなるフィールドの一覧となるテーブル(ここではマスタテーブル(外部テーブル)とします。)
この2つのテーブルをキーとなるフィールドを基にデータを突合し、主テーブルへマスタテーブルのデータを反映させることができます。
上述の図を具体的なテーブルに置き換えて考えてみましょう。
前述の図で用いたデータでの、テーブルの関係性を考えると、
・売上テーブル⇒主テーブル
・商品カテゴリテーブル⇒マスタテーブル
となります。
この2つのテーブルのうち、「商品カテゴリ」フィールドは売上テーブル、商品カテゴリテーブルどちらにも属するフィールドであり、「キー」として選択することが可能です。
この商品カテゴリフィールドをキーに、売上テーブルと商品カテゴリテーブルを突合させたデータが「売上表データ」となります。
この一連の流れは、Power Queryの「クエリのマージ」を使うことで簡単に行うことができます。
実際にPower Query(Power Queryエディター)を利用して「クエリのマージ」を使う場合、まずは今回の「売上表データ」を作るための、
売上テーブル(主テーブル)
商品カテゴリテーブル(マスタテーブル)
の2つのデータを取り込みます。
Power Queryでのデータの取り込みについては、下記ページにて詳細を記載しているので、こちらも併せてご覧ください。
データの取り込みに関しては、下図の①~⑦の手順を踏んでデータを取り込みます。
①:「データ」タブ>「データの取得」を選択
②:「ファイルから」を選択肢
③:「Excelブックから」を選択する。
④:取込むExcelブックを選択する。
⑤:ブックを選択後、「インポート」をクリック
⑥:Excelブック内で取り込むシートを選択する。
今回は、Excelブック内の2シートを取り込むため、「複数のアイテムを選択」をチェックし、
「主テーブル」、「マスタテーブル」を選択する。
⑦:「データの変換」をクリックする。
データを取り込み、Power Queryエディター画面が表示されたら、下図の①と②の処理を行いましょう。
①:取込んだデータ(クエリ)の名称をわかりやすくする。
(今回は、売上テーブルと商品カテゴリテーブルの2つの名称に変更)
②:2つのテーブル間でキーになるフィールドが同一のデータ形式に変更する。
キーのデータ形式としては、「テキスト」型にしておくとベターです。
「クエリのマージ」画面を開く。
クエリの名称変更やデータ形式の変更・確認が終わったら、下図のように、主テーブルとなる「売上テーブル」を選択し(①の工程)、リボン上の「クエリのマージ」を選択しまょう(②の工程)
クエリのマージを選択した際に、「クエリのマージ」と「新規としてクエリをマージ」の2つがありますが、それぞれの違いは下記の通りです。
■「クエリのマージ」
選択した主テーブルに直接、突合するテーブル(マスタテーブル、外部テーブル)のデータを反映させる。
■「新規としてクエリをマージ」
新たにPower Queryエディター上でクエリを作成し、そのクエリにて主テーブルと突合するテーブルのデータを反映させたデータを作成する。
ここからは、「新規としてクエリをマージ」にて、売上表データを作成してみます。
クエリのマージをクリックすると、下図のようなマージの編集画面が開きます。
ここで、2つのテーブル(クエリ)を選択します。
このうち、クエリのマージ画面上段(赤枠)のテーブルに関しては、主テーブル(今回の場合、売上テーブル)を選択します。
一方、画面下段のテーブルに関しては、マスタテーブル(今回の場合は。商品カテゴリテーブル)を選択し、クエリのマージを実施します。
結合の種類によって、この上段と下段は入れ替えることも可能ではありますが、基本的には、
・上段⇒主テーブル
・下段⇒マスタテーブル(外部テーブル)
というように使い分けておくと良いです。
主キーと外部キー、結合種類の選択
クエリのマージ画面にて、主テーブルとマスタテーブルを選択した後、下図のように、売上テーブルと商品カテゴリテーブルの「商品カテゴリ」をクリックすることで、それぞれのテーブル上でキーとなるフィールドを選択することができます。
今回は、キーとなるフィールドはそれそれのテーブルにて「商品カテゴリ」のフィールドのみなので、①の赤枠部分の商品カテゴリをクリックして、選択します。
キーとなるフィールドを選択後、②の赤枠にて、データの「結合の種類」を選択します.この結合の種類の内容によって、主テーブルとマスタテーブルのデータの突合方法が変わります。
この結合の種類には様々なありますが、イメージとして、SQLでの内部結合、外部結合をイメージするとわかりやすいかと思います。
今回、売上表データを作成するにあたっては、「左外部」の結合方法を選択してクエリのマージを実行します。
(基本的に何も結合方法を出必要性がない場合は、左外部(デフォルト設定の結合方法)を利用すると良いです。)
この際、結合方法まで選択すると、③の赤枠部分にあるように「○行中○行が一致しています。」という文章が表示されます。ここではクエリのマージにて、データの突合がどれくらいうまくできているかを簡易的に判断することも可能です。
キーの選択、また結合の種類まで選択をおこなったら、「OK」をクリックし、クエリのマージを実施します。
結合したテーブルを展開する。
クエリのマージが完了し、新規に作成されたクエリを「売上表データ」とクエリ名を変更しましたが、この時点でクエリのマージによるデータ突合とデータ作成が完了という訳ではないです。
下図をご覧ください。
クエリのマージ後、各売上テーブルのレコード右端に、「商品カテゴリテーブル」のフィールドが新たに表示されます。
この「商品カテゴリテーブル」のフィールドには、「Table」というデータしか表示されていないため、このままでは最終的に作りたい「売上表データ」とは言えない状態です。
この「Table」をクリックすると、下図のようなデータが表示されます。
例えば、1行目の「Table」をクリックすると、商品カテゴリマスタの商品カテゴリ「A001」のレコードデータが表示されます。
これは、売上テーブルの商品カテゴリ「A001」とクエリのマージにて、データが結合されたことにより、「A001」のレコードでは、商品カテゴリマスタの「A001」が結合されて、表示されるようになります。
もちろん、売上テーブルの商品カテゴリが「A001」以外のデータのレコードで「Table」をクリックすると、商品カテゴリに準じた商品カテゴリテーブルのデータが表示されます。
ですが、このTableの状態では、都度クリックしないとデータがどのように結合されているのかわかりません。
また、結合したテーブルのデータを全て表示させてしまうため、使い勝手と汎用性がないデータとなってしまいます。
その為に、下図のように、商品カテゴリテーブルフィールドの①の赤枠部分をクリックし、クエリのマージで結合したマスタテーブル(外部テーブル)を展開します。
展開後、②の赤枠部分が表示されます。ここでは、結合したマスタテーブルのフィールド一覧が表示され、チェックボックスにチェックが入ったフィールドがクエリのマージで作成したクエリにフィールドとして表示されます。
ここでは、「商品名」と「単価」の2つのフィールドを選択します。
また、③の赤枠部分に「元の列名をプレフィックスとして使用します」というチェックボックスがあります。
このチェックボックスにチェックを入れてtableを展開すると、展開前のフィールド名(今回は、商品カテゴリテーブル)が展開したフィールド名の先頭にすべて付与された形で展開されます。
同一名称のフィールドが主テーブル、マスタテーブルに複数存在する場合はチェックを入れて展開し、区別できるようにすると良いですが、今回はチェックを外して展開します。
商品カテゴリテーブルフィールドを展開すると、下図のようなフィールド構成のデータが出来上がります。
ここまでくると、目的としていた「売上表データ」の完成となります。
クエリのマージにより、売上テーブル(赤枠)と商品カテゴリテーブル(青枠)のフィールドを結合し、新たに売上表データを作成することができましたが、これまでの一連の流れの中で、
・VLOOKUP関数やXLOOKUP関数といった、関数式の使用
・SQLやVBAとったコード作成
のような複雑な作業を行うことなく、目的のデータを作成することができました。
Power Queryでの「クエリのマージ」機能を使うことで、比較的簡単かつローコードで目的とするデータを自身で作成することができるため、使いこなせるようになると大変便利な機能です。
「クエリのマージ」の注意点
「クエリのマージ」は、前述のようにVLOOKUP関数やXLOOKUP関数といった、関数式の使用やSQL、VBAを使わずとも、目的とするデータ作成やそのデータの更新自動化することが可能であり、かつ簡易的に行うことができます。
しかし、この「クエリのマージ」を使うにあたっては大きく2点の注意点があります。
ここから先は、どのような点に注意すべきか解説していきます。
複数クエリを一度にマージできない
前述ので触れた、「クエリのマージ」画面では2つのテーブル(主テーブル、外部テーブル)しか選択することができません。(下図をご参考ください。)
そのためAccessやPower BIとは異なり、主テーブルに対して複数のデータテーブルを一括でリレーションシップを組み、データ(Accessであればクエリをイメージされるとわかりやすいです)を作ることがPower Queryの場合はできないです。
また、クエリのマージ自体は行っていることはリレーションシップに近しいですが、Excel上での「リレーションシップ」が組み込めているわけではないので、その点も注意が必要です。
(Power Pivotでのデータ集計やDAX式を作る際に影響が発生します。)
マスタテーブルに重複データがある場合
マスタテーブルにて、クエリのマージで選択すべき外部キーに重複がある場合、マージ後の結果には注意する必要があります。
下図にて、今回マスタテーブルにて、商品カテゴリ=A002が重複(実際は商品名はパン、オレンジと異なる内容となります)しています。
このマスタテーブルとこれまで使用していた売上テーブル(主テーブル)を商品カテゴリをキーにクエリのマージを使用すると下図の売上表データにようになります。
今回のように、重複するキーのレコードがマスタテーブルにある場合、マージ後にできる売上テーブルには、
商品カテゴリ=A002, 商品名=パン
商品カテゴリ=A002, 商品名=オレンジ
2つ分のレコードが生じてしまいます。
データとしては、A002だけでは何の商品名が売上として計上されるべきかが分からないですが、このデータのまま売上金額を計算し、集計してしまうと間違った集計結果となってしまいます。
このようにクエリのマージにて、外部キーとなるフィールド関して、マスタテーブルにあたるデータテーブルにて、重複データの有無はあらかじめ確認しておくようにしましょう。
Power Queryや「クエリのマージ」を効率的に学ぶためには
これまでの記載のように、Power Queryや「クエリのマージ」を使いこなせるようになることで、
・データ加工や目的とするデータ作成の効率化
・データ作成からその後の集計・分析作業の半自動化
といったメリットを得ることができ、日々の業務改善や効率化へ役立てられるだけでなく、Excelスキルを広げることもできます。
ですが、
・Power Queryやクエリのマージについて、学習している時間がない。
・書籍を読んでも、なかなか身に着けることができない。
といった方もいらっしゃるのではないでしょうか?
私自身も時間がない中でどうやって学習すればよいか悩みました。
本で学習しようにも、読む時間や学んだことを定着化させることに難しさを感じていました。
そんな中、学習を行う上で、非常に役立ったのが、
Udemy
というサイトでの学習コンテンツでした。
≪Udemyへはこちらから≫
UdemyホームページUdemyでの動画を活用することで、
効率的にPowerQueryやその先の集計(Power PivotやDAX)を学習できた。
学んだスキルを定着させ、日々の仕事に活かすことができている。
大きく2つのメリットが自身にとってありました。
Udemyについては、過去にまとめた記事がありますのでそちらもご参照ください。
特にUdemyを利用して、
・ハンズオン形式で手を動かしながら学ぶことができる。
・動画のため、再生速度を調節しながら時短できる(1.5倍速~2倍速で視聴していました。)
・ポイントを絞って、繰り返し視聴で学習できる。
といった良かった点がありました。
Udemyではよくセールをしているため、1動画1,200円~1,800円程度で購入できます。
(本1冊分で効率よく学習することができます。)
特に、私がUdemyでPowerQueryについて学習していてオススメの動画が下記3つでした。
①Microsoft Excel – Power Pivot, Power Query, DAX 入門講座
≪こんな方にオススメ!≫
Power Queryでの加工からPower PivotやDAXを使った集計・分析までをざっくりと学んでみたい方向け。
②【続】Microsoft – Excel Power Pivot 入門講座 ~Power Query Editor編~
≪こんな方にオススメ!≫
Power Queryエディターでのデータ加工/整形方法を集中的に学びたい方向け。
③Excel& Power BI両方で使えるPower Query 完全ガイド 初級者から上級者まで対応
≪こんな方にオススメ!≫
Power Queryの概要は理解しており、さらに発展的に学びたい方向け。
PowerQueryを学習してみたい、仕事に活かしてみたいと思った方は是非、利用・活用してみてください!
まとめ
今回の記事では、Power Queryの機能である「クエリのマージ」について、
1.クエリのマージは「2つのデータをテーブルをつなげて、必要とするデータを作る」ことが
できる。
2.クエリのマージでデータを作るまでの実際の流れ
3.クエリのマージを使うにあたって、
「複数クエリの一括マージができない」
「マスタテーブルに重複データがある」
場合の注意点
3つについて解説してきました。
「クエリのマージ」を使いこなせることで、Excelスキルはもちろんデータ作成の幅が広がること。また、日々の業務効率化や業務改善の一助にもつながりやすいです。
今回の記事から、
・PowerQueryを学んでみよう!
・日々の仕事に活用してみよう!
と思えてもらえますと幸いです。
コメント