Power BI

【Power BI】 複数のデータテーブルを縦方向に連結する

はじめに

Power BIで複数のデータテーブルを読み込んだ際にデータを縦方向に連結したいということがあると思います。例えば、各年の売り上げデータを1年ごとに別ファイルや別シートで管理していて、すべての年のデータをひとつのテーブルにまとめたい場合など。Power BIはそんな作業も結構簡単にできますので紹介していきます。具体的には下図のような連結ができるようになります。

複数のデータテーブルの縦方向への連結のイメージ
複数のデータテーブルの縦方向への連結のイメージ

この記事を読むことで、Power BIを使用して複数のデータテーブルを縦方向に連結する方法がわかります!

使用するデータ

警察庁の交通事故オープンデータ

以前の記事で、警察庁が毎年公開している交通事故のオープンデータを使用してヒストグラムを作成する方法を紹介しました。今回もその警察庁の交通事故データを使用します。今回は、2021年(令和3年)と2022年(令和4年)のデータを縦方向に連結してみましょう。

データのダウンロード

こちらのページの「オープンデータ」の取得したいデータの年度をクリックし、遷移先で「本票_01-12月」をクリックしてcsvデータをダウンロードします。下図は、2022年のデータのダウンロード方法です。2021年と2022年2つのcsvファイルがダウンロードできれば完了です。

2022年のデータのダウンロード方法
2022年のデータのダウンロード方法(警察庁 https://www.npa.go.jp/publications/statistics/koutsuu/opendata/index_opendata.html)

Power BIでのテーブルの連結手順

データがダウンロードできたら早速テーブルを連結していきます。

データの読み込み

まずは、Power BI Desktopに2つのデータを読み込みます。上部の「データを取得」から「テキスト/CSV」を選択して各ファイルを読み込みます。特につまずくことはないと思いますが、過去記事で詳細な読み込み方法を記載していますので必要であれば参照ください。

Power BI Desktop でcsvファイルを読み込む方法
csvファイルの読み込み方法

データペインに2つのファイルが読み込まれ、下図の状態になっていればOKです。

Power BI Desktopにデータが読み込まれた状態
Power BI Desktopにデータが読み込まれた状態

2つのテーブルを連結する

では実際に2つのテーブルを連結していきます。

ページ上部にある

このアイコンをクリックして、Power Queryを開きます。以下のような画面が開きますので、ここで「クエリの追加」をクリックします。

Power Queryエディターで「クエリの追加」を選択する
Power Queryエディターで「クエリの追加」を選択する

すると、以下のような画面が出ますので、ここでは「2つのテーブル」を選択します。「追加するテーブル」ではどのテーブルを追加するかを選択します。今回は、2021年のテーブルに2022年のテーブルを連結しようと思いますので「honhyo_2022」を選択します。「OK」を押すと、2つのテーブルが縦方向に連結されます。

連結の確認

では実際に、しっかりと連結されているかを見てみましょう。「発生日時 年」列を選択した状態で、「表示」→「列のプロファイル」にチェックを入れます。そうすると、データ数や「発生日時 年」列に入っている値の分布を確認することができます。

「表示」から「列のプロファイル」を選択
「表示」から「列のプロファイル」を選択

連結前のデータで確認するとデータ数は、305196 件、「2021」以外の数字も若干入っていそうですが、「2021」の数字が最も多く、2021年のデータであることがわかります。では、連結後のデータで同じようにプロファイルを確認してみます。データ件数は606035件でほぼ倍増していることがわかります。2022年のファイルのデータ件数が 300839件なので、305196(2021年) + 300839 (2022年) = 606035で連結後の件数とも合致します。また、列の分布を見ても、先ほどはなかった「2022」が入って来ていますので、2022年のデータがうまく連結できていることが確認できました。ここでひとつ注意ですが、デフォルトでは最初の1000行に基づいてプロファイルが集計されています。そのため「データセット全体に基づく列のプロファイル」を選択し、データセット全体のプロファイルを表示するようにしてください。

連結前と連結後の「発生日時 年」列のプロファイルの比較
連結前と連結後の「発生日時 年」列のプロファイルの比較

連結するテーブル間で列数が異なっていても連結してくれる

この「クエリの追加」のいいところは連結する2つのテーブルの列数が一致していなくても連結してくれるところです。例えば、「日の出時刻 時」列は2021年のテーブルにはありませんが、連結後のテーブルでは「日の出時刻 時」列が作成され、2021年分のデータのところは null で埋められます。一方で連結したいテーブルでは、2つのテーブルで列名は同じにしておく必要がありそうです。

列数が異なっていても連結でき、存在しない列の値はnull で埋められる
列数が異なっていても連結でき、存在しない列の値はnull で埋められる

別のテーブルとして連結する

一方のテーブルに他方のテーブルを連結する方法を紹介しましたが、それぞれのテーブルのオリジナルは保持したまま新しいテーブルとして連結したい場合もあると思います。その場合は、「クエリの追加」の「クエリを新規クエリとして追加」を選択することで実行することができます。

別のテーブルとして連結する方法
別のテーブルとして連結する方法

連結したいテーブルを選択して、OKを押すとテーブルの連結ができます。

別のテーブルとして連結する方法
連結したいテーブルを選択する

3つ以上のテーブルを連結する

ここまでは2つのテーブルを連結する方法を紹介しましたが、3つ以上のテーブルの連結も可能です。「クエリの追加」で「3つ以上のテーブル」を選択して、追加したいテーブルを選択して「追加ボタン」、「OKボタン」を押していけば連結することができます。

3つ以上のテーブルを連結する方法
3つ以上のテーブルを連結する方法

まとめ

Power BI Desktopで複数のデータテーブルを縦方向に連結する方法を紹介しました。

概要は以下の通りです。少しでも参考になればうれしいです。

Power Queryから「クエリの追加」で連結したいテーブルを選択。
別テーブルとして連結したい場合は「クエリを新規クエリとして追加」を選択。

参考:https://learn.microsoft.com/ja-jp/power-query/append-queries

-Power BI
-, , , ,