データ結合 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が「店舗=店舗」を結合句に追加してみてはいかがでしょうか!こような提案をしてくれます。右側の+マークをクリックします。結合句が追加されました。
 右上部の+マークを押したときは、結合句を選択する窓が開きます。【C】【D】それぞれから結合句を選択すると、結合句を追加することができます。
Tableau Prep 結合句追加 ポチっとワンクリックで欲しかった結合状態を得ることができました。右下破線で囲まれた部分をつかえば分析が可能になります。もちろん売上高の合計は3,000のままです。
 結合句「年」and結合句「店舗」になったことで左側【C】にNullが出現しました。

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

サンプルデータ
データ【E】 データ【F】
店舗 売上高 店舗 利益高
2017 名古屋 500 2017 名古屋 200
2018 名古屋 1,000 2018 名古屋 400
2019 名古屋 1,500 2020 名古屋 800

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

ユニオンする

Tableau Prep ユニオン 【F】を【E】の上にドラッグします。「ユニオン」へドロップします。
Tableau Prep ユニオン ユニオンは上下(縦)のデータをくっつけます。ということは「売上高」列の下に「利益高」の数値がくっついてしまう。このような心配は無用です。Tableau Prepはフィールド名(列名)が同じなら上下でくっつけます。フィールド名(列)名が違うときは列を追加してくっつけます。データテーブルを確認します。ディメンションになる「年」「店舗」どちらの列にもNULLはありません。これでOKです。
Tableau データ接続 「年」を行シェルフへ、メジャーを列シェルフへドロップします。考えていたとおりの表になりました。