PowerQuery【06】2つのテーブルを結合する

(今までの記事)
■全体像説明
PowerQuery【01】PowerQuery(パワークエリー)で出来ること
PowerQuery【02】PowerQuery(パワークエリー)の動かし方

■PowerQueryの実際のインポート方法
PowerQuery【03】CSVファイルのインポート
PowerQuery【04】Excelファイルのインポート
PowerQuery【05】フォルダから読み込み(Excel・CSV等の複数ファイルを同時にインポートする)

PowerQueryのテーブル結合については、話が長くなるので、いくつかに分けます。
今回は 1~4について説明します。

1.2つのテーブルを結合する(VLOOKUPのイメージ)

2.結合方法:2つ以上のキーを使う

3.結合の種類

4.列を移動して並び順を変える・列名を変える

5.条件絞り込み
・キーの組み合わせに条件式を適用できる(例:仕入日によって異なる価格にする)
・不一致分のみ表示できる(→名寄せができる)
・重複行の削除(上のデータを残す/下のデータを残す)

1.2つのテーブルを結合する

クエリ/結合

・参照元となるクエリを選択して
(クエリを選択すると、「テーブルデザイン/クエリ」タブが表示されるので)
クエリタブを開いて「結合」を選択

マージ画面

元テーブルが選択されているので
結合先テーブルを選択して
結合キー(複数選択可)を選択して(項目名をクリックすれば良い)
結合方法を選択(一番上の「左外部」を選択)

PowerQueryエディタ画面

第2テーブルの表示する項目を選ぶ
列を適宜並び替えることも可能
①参照先テーブルを展開する
③表示項目を選ぶ
(元の列名をプロフィックスとして使用しますの「v」は外した方が便利です。)
④列を適宜並び替える(列名も適宜変更)
②クエリ名を変更する
⑤閉じて読み込む

結合したテーブルが表示されるのでシート名を変更する。

※一度に結合できるのは「2つまで」なので、3つ以上結合する場合は、結合を繰り返す必要があります。

注意事項

ExcelのVLOOKUP関数と異なり、Accessの結合のイメージになるので少し注意が必要です。

■VLOOKUP関数:キーが合致する行が複数あった時は、上のデータのみ結合する。
■PowerQueryやAccess:キーが合致する行が複数あった時は、全ての行を結合する。
(つまり複数行が合致する場合は、データが1行増えるので注意)
例:(商品1の価格テーブルが時期によって異なり、2行ある時)
A社 2019/5/1 商品1 500円
A社 2019/5/1 商品1 550円  →2行になってしまう

2.結合方法:2つ以上のキーを使う

2つ以上のキーを使う時は、2つ目からはctrlを押しながら、キーを順番にクリックすると、番号が振られるので
それぞれの結合キーの順番を合わせます。

 

3.結合の種類

結合の種類は、6種類あります。
「左」といっているのが、「上」(結合元)で
「右」といっているのが、「下」(結合先)のテーブルです。

大体は、「左外部」を使いますが、結合の種類は他にもあり、以下の通りです。
結合の種類によって色々なことが出来ます。
Accessイメージと、式のイメージを記載しました。

※この先の連載で、上記を上手く利用して、以下のような表示をするための方法(条件絞り込み)をご案内します。

 

4.列を移動して並び順を変える・列名を変える

結合表を作った後に、その後に必要なことは、以下のような処理をしていきます。
①表示列の選択(必要な列だけにする)
②列名の変更
③列の並び替え
④式を使い新たな列を作る
⑤行の並び替え

今回は、列の①~③まで記載します。

①列の選択(必要な列だけ表示する)

・表示する列を選択する方法
ホーム/列の選択/列の選択

※ちなみに、列が多くて選択する列が右の方にあるときは、「列の選択」「列に移動」で表示列を指定すると便利です。

・不要な列を削除する/または選択した列以外を削除する
ホーム/列の削除/列の削除または他の列の削除

 

②列名の変更

フィールド名をダブルクリックしても、右クリックして「名前の変更」でも、どちらでも変更できます。

③列の並び替え

・手動でドラッグ(複数の列を選択すれば一度に移動できます)
・変換タブ/移動/左へ移動・右へ移動・先頭に移動・末尾に移動 を選択
※列が多いときは、この「先頭に移動」が地味に便利です。

・最終兵器は、「式を直しちゃう」というのですが、慣れるまではおススメはしないです。
↓クリックすると拡大します。

 

こんな感じで表示列を決めて、列の並び順を整えます。