適材適所

PowerShellやVBAなどのプログラミングに関すること、キャリア、子育ての3本で書いていきます

【Excel Power Query入門】複数の表を結合する

[:content]

Excelで表を管理しているけれど、

普段は分けておきたい表だけど、俯瞰してみたいので、結合して管理したい・・・

なんてことがありませんか?

それ、Power Queryの出番です。

いちいちコピペして・・・なんて面倒な作業ともおさらばです!

今回はPower Queryで表を結合する方法を見て行こうと思います。

環境

Excel 2019 64bit

2つの表を結合する

同じ項目を持った、2つの表(個人情報 (1).csvと個人情報 (2).csv)を用意しました。

どちらも1行目がヘッダーで、レコードは50です。

いつもありがとうございます⇒参考なんちゃって個人情報

f:id:shinmai_papa:20201005130332p:plain

新規のExcelブックを開いて「データ」タブ⇒「データの取得と変換」⇒「テキストまたはCSVから」をクリックします。

f:id:shinmai_papa:20201005130322p:plain

個人情報(1).csvを選択します。

f:id:shinmai_papa:20201005130319p:plain

読み込まれると・・・項目の設定画面がでてきました。

ファイルの文字コード、区切り記号、レコードのデータ型を指定することができます。

f:id:shinmai_papa:20201005130326p:plain

今回の表の文字コードははシフトJISなので、932のコードページが自動で指定されました。

文字のコードは自動で設定され、大体正確に解析してくれますので、基本的には変更する必要はありません。

今回はCSVファイルの読み込みなので、コンマが自動で選択されていますが、

コンマ以外にも、コロンやタブ、カスタムなどの区切り記号を選ぶこともできます。

f:id:shinmai_papa:20201005130329p:plain

これらの設定が終わったら、「データの変換」をクリックします。

するとPower Queryエディターが起動しますので、変換されたクエリを編集していきます。

今回は、CSVファイルの1行目がヘッダーなので、「ホーム」タブの「1行目をヘッダーとして使用」をクリックしてヘッダーに設定してあげます。

f:id:shinmai_papa:20201005130344p:plain

f:id:shinmai_papa:20201005130340p:plain

これで無事にCSVを読み込む準備が整いました。

同じく個人情報 (2).csvも読み込みます。

Power Queryエディターから読み込みます。

「ホーム」タブ⇒「新しいソース」⇒「ファイル」⇒「テキスト/CSV」とクリックしていきます。

f:id:shinmai_papa:20201005130336p:plain

同じ要領でヘッダーまで設定してあげます。

f:id:shinmai_papa:20201005130348p:plain

これで結合するファイルの読み込みが完了しました。

次にこれを結合します。

表(クエリ)を結合するときは、「クエリの追加」という操作をしてあげます。

クエリの後部にデータを「追加」する、という意味で追加なんでしょうが、

私は「結合」の方がしっくりきます・・・。

話が逸れてしまいました、クエリの追加をしていきます。

「ホーム」タブ⇒「クエリの追加」⇒「クエリを新規クエリとして追加」の順にクリックします。

f:id:shinmai_papa:20201005130355p:plain

すると、結合するテーブルの選択画面が出てきます。

f:id:shinmai_papa:20201005130352p:plain 「主テーブル」で選択したクエリのお尻に、「主テーブルに追加するテーブル」が追加されます。

今回は、個人情報 (1)の下に、個人情報 (2)を追加(結合)します。

「OK」をクリックすると

f:id:shinmai_papa:20201005130359p:plain

追加1というクエリが作成され、2つの表が結合されました。

あとは、「閉じて読み込む」ボタンをクリックすれば、結合されたクエリのデータがシートに読み込まれます。

3つ以上の表を結合する

2つの表を結合する手順とほとんど同じよに、同時に3つ以上の表を結合することも可能です。

結合用に3つ目のクエリを作成します。

ヘッダは先ほどの2つと同じです。

f:id:shinmai_papa:20201005130409p:plain

先ほどと同じく「クエリを新規クエリとして追加」を選択します。

f:id:shinmai_papa:20201005130405p:plain

追加のメニューが表示されるので、「3つ以上のテーブル」を選択します。

そして、「利用可能なテーブル」の一覧から結合したいテーブルを選択し、追加>>ボタンで追加していきます。

f:id:shinmai_papa:20201005130417p:plain

f:id:shinmai_papa:20201005130412p:plain

結合する表を選択し、順番を整えたら、OKをクリックします。

すると、3つの表が結合された新たな表が作成されました。

f:id:shinmai_papa:20201005130420p:plain

項目が違う表を結合しようとすると?

ここまで3つの表はヘッダが同じという前提で話を進めてきましたが、

ヘッダが異なる表を結合したい場合があるかも知れません。

その場合でも大丈夫、ちゃんと結合することができます。

ヘッダの項目が異なる表を単純に結合した場合は、全てのヘッダが作成され、

該当のヘッダがないレコードはnullで埋められます。

では実際に見てみます。

個人情報 (4).csvというファイルを用意し、番号というヘッダを追加しました。

f:id:shinmai_papa:20201005130425p:plain

個人情報 (1).csvと結合してみると

f:id:shinmai_papa:20201005130428p:plain

新規作成されたクエリには、「番号」というヘッダが追加され、個人情報 (1)のレコードでは「番号」はnullになりました。

そして51レコード目からの個人情報 (4)のレコードはちゃんと数字が入っています。

f:id:shinmai_papa:20201005130432p:plain

これで、同じような表で、多少ヘッダが違っている場合でも結合することができます。

終わりに

以上、Power Queryを使って表を結合する方法を見てきました。

Power Queryを使えば、複数の表を簡単に表を結合することができます。

複数の表を一発で簡単に結合してしまうなんて・・・。

Power Query、恐ろしい子!!

今までは、ちょっとしたプログラムを書かなくちゃ自動でできなかったことが

Power Queryのおかげで簡単にできるようになりそうですね・・・。

次回も、もう少しPower Queryについて、見ていきたいと思います。

ここまでお読みいだだき、ありがとうございました。

Excel Power Query入門シリーズ

【Excel Power Query入門】Power Queryを使うと何ができるのか - 適材適所

【Excel Power Query入門】他のブックからデータを取得する - 適材適所

【Excel Power Query入門】2つの表を結合する - 適材適所