<目次>
(1) Power BIで複数テーブルをUNIONで結合する方法
やりたいこと
初期状態
実施手順
(1) Power BIで複数テーブルをUNIONで結合する方法
やりたいこと
・Power BIで複数のテーブルに対してUNION相当の処理し、1つの表として扱いたい。
(想定利用シーン)
例えば、2つの表を合わせた情報をマトリクスに表示したい場合などが想定されます。
両方のテーブルを同じ縦軸テーブル・横軸テーブルと結合すれば、それに近しい表を作れます。しかし問題は、縦軸を「役職」と「名前」など複数の階層にした場合に表示が不正になる事です(例:ある役職を展開すると、その役職以外の人もぶら下がって表示されてしまう等)。これを防ぐためには、今回ご紹介するテーブルのマージが1つの解決策になります。
初期状態
・「従業員テーブル1」と「従業員テーブル2」があり、カラム構成が異なる。
(図121)
(図122)従業員テーブル1
(図123)従業員テーブル2
実施手順
今回はPower QueryのM言語の「Table.Combine」関数を使って、2つの表を合体させていきます。
●STEP1:カラムを揃える
両方のテーブルでカラムが揃っていないと、綺麗にマージできないため、まずはPower Queryでカラムを揃える。
今回の例では「従業員テーブル1」の「grade」と、「従業員テーブル2」の「入社日」を削ります。
(図131)
・①「従業員テーブル1」を右クリックで「クエリの編集」を押下
(図132)
↓
Power Queryエディターが開きます
↓
・②「grade」列を右クリックして「削除」を押下
(図133)
↓
・③「ホーム」→「閉じて適用」を押下
(図134)
↓
・④「従業員テーブル2」の「入社日」も同様に削除します。
(図135)
(備考)カラムを揃えずにマージした場合
マージ自体は出来なくはないのですが、次のように片方にしか無いカラムは、もう一方ではnullと表示されてしまいます。この挙動が特に問題ないようでしたら、STEP1は飛ばしてもOKです。
(図136)
●STEP2:テーブルのマージ(Table.Combine)
次に2つのテーブルをマージした表を作ります。
・①「ホーム」→「データの入力」を押下
(図141)
↓
・②何もせずに「OK」を押下
→この後、Power Queryエディターで結合した表を作っていくので、ここでは何もしなくてOK
(図142)
↓
・③テーブルをマージするため、下記の式を入力します。
※今回は自動で作られたステップ「変更された型」を上書きしてしまいます。
(式)
= Table.Combine({従業員テーブル1,従業員テーブル2})
(図143)
↓
・④マージされた表の完成!
(図144)
↓
・⑤「ホーム」→「閉じて適用」を押下
(図145①)
↓
リレーションの表示からも見えます。
(図145②)