データ結合 Tableau Prepでやってみる(第2回)

データ結合 Tableau Prepでやってみる(第2回)

一致している結合句と不一致の結合句があるとき

サンプルデータ
データ【C】 データ【D】
店舗売上高 店舗利益高
2017東京500 2017東京200
2018東京1,000 2018東京400
2019東京1,500 2019東京600
    2019横浜100

・データ【C】は年ごとの東京店の売上高です。
・データ【D】は年ごとの東京店の利益高です。
 ところが【D】へ2019年の横浜店の利益高が入り込んでいます。

 結合句になるであろう「年」は【C】【D】ともに2017・2018・2019で一致している。ただし【D】は2019が2行ある。そして【D】には【C】にはない「横浜」がある。

右外部結合
Tableau Prep 右外部結合

 結合句を「年」に設定してデータ結合 Tableau Prepでやってみる(第1回)で確認したとおり行数がが多い【D】右外部結合を選択します。

 すると、【C】の2019年東京店の行が2重になります。ということは、結合前の売上高合計3,000が、結合後に4,500になります。メジャー合計が増えているときはこのような結合状態になっているわけです。

完全外部結合
Tableau Prep 完全外部結合

 完全外部結合だとどうでしょうか。結果は右外部結合とおなじです。

結合句を追加する
Tableau Prep 結合句追加

 こんなときはTableau Prepならではの機能を活用します。
「結合句の推奨事項」に「店舗=店舗」が薄いグレーで書いてあります。Tableau Prepが「店舗=店舗」を結合句に追加してみてはいかがでしょうか!こような提案をしてくれます。右側の+マークをクリックします。結合句が追加されました。

Tableau Prep 結合句追加

・右上部の+マークを押したときは、結合句を選択する窓が開きます。
・【C】【D】それぞれから結合句を選択すると、結合句を追加することができます。
 ポチっとワンクリックで欲しかった結合状態を得ることができました。右下破線で囲まれた部分をつかえば分析が可能になります。もちろん売上高の合計は3,000のままです。
 結合句「年」and結合句「店舗」になったことで左側【C】にNullが出現しました。

両方に一致しない結合句があるとき

サンプルデータ
データ【E】 データ【F】
店舗売上高 店舗利益高
2017名古屋500 2017名古屋200
2018名古屋1,000 2018名古屋400
2019名古屋1,500 2020名古屋800
Tableau Prep 完全外部結合
Tableau Prep ディメンション削除

 前回の記事で少しふれましたが、結合しようとする【E】【F】両方それぞれに一致しない結合句があるときです。

 完全外部結合してみます。
【E】【F】の全行に接続できました。しかし、課題があります。①の「年」もしくは②の「年」のどちらかをディメンションに設定して分析します。ところがどちらの「年」にもNULLがあります。ディメンションにNULLがあると困ります。もちろん「店舗」もディメンションですからNULLがあると困ります。
 年①のNULLを除外すると利益高800が消えます。利益高合計は1,400から800へ減少します。年②のNULLを除外すると売上高1,500が消えて、売上高合計は3,000から1,500へ減少します。メジャーのNULLがあってもよいので、とにかくすべての年とすべてのメジャーを表示したいのです・・・

ユニオンする
Tableau Prep ユニオン

・【F】を【E】の上にドラッグします。
・「ユニオン」へドロップします。
 ユニオンは上下(縦)のデータをくっつけます。ということは「売上高」列の下に「利益高」の数値がくっついてしまう。このような心配は無用です。

・Tableau Prepはフィールド名(列名)が同じなら上下でくっつけます。
・フィールド名(列)名が違うときは列を追加してくっつけます。

Tableau Prep ユニオン

 データテーブルを確認します。ディメンションになる「年」「店舗」どちらの列にもNULLはありません。これでOKです。

Tableau データ接続


 「年」を行シェルフへ、メジャーを列シェルフへドロップします。考えていたとおりの表になりました。