Tableauにおけるデータの準備(ユニオン?結合?リレーションシップ?)

こんばんは。
先日「Tableauとは?」という名目で初心者向けの社内勉強会を主催しました。
担当内の半分くらいの方が参加してくださり、嬉しいかぎりです。

開催後にアンケートを取ってみたのですが、「複数のテーブルにまたがるデータの準備が楽になりそうだ」という声をちらほらと頂きました。
皆さんやっぱりデータの準備には苦労されているようで(私自身もTableauを使用する前は関数やマクロなどでデータをくっつけておりました)。

今ではTableauを使用することで、非常に快適に複数データを合体させられるようになったのですが、当初苦労したのは本題目にもありますようにデータを合体させる方法が多彩すぎて何が何やら。。。
ということで自身の頭の再整理もかねてTableauのデータ合体方法についてまとめます。

ユニオン

一言でいうとデータを縦に合体させること。

ユニオンイメージ


実際にやってます。

Tableauデータソースページ

今回はそれぞれのシートにデータを分けているので、そのままシートの部分に「2020年釣果」、「2021年釣果」がはいってます。
※ もしシート分けしていなくても、データインタープリター機能を使えばTableau側で同一シート内の別データを見分けてくれたり、編集することができますのでご安心ください。

複数のデータがある場合、①【ユニオンの新規作成】という項目が追加されます。
こちらをキャンバスにドロップしたものが②ですが、この②に「2020年釣果」、「2021年釣果」をドロップすると出来上がります。

ユニオンの完成

イメージ図通りに、縦にデータを合体させてくれています。
それぞれのデータで、項目数が異なる場合や、項目名が異なる場合もユニオン後の修正できれいに整います(方法はまたの機会に)。

結合

続いて結合についてです。
こちらは横にデータをくっつけるイメージです。
ただし結合については左結合、右結合、完全外部結合、内部結合の4種類があり、どのように結合するか選択する必要があります。
以下にそれぞれの結合イメージを示します。

・左結合

左結合イメージ

・右結合

右結合イメージ

・完全外部結合

完全外部結合イメージ

・内部結合

内部結合イメージ

上記4つのイメージを見てもらうとわかりますか?
KEY(この場合は魚種ですが)を基に、最終的に結合されて出来上がったデータが、「どちらのデータを基にして横にくっついた形になるか」というのが4つの結合の違いです。

左結合の場合、最終的なデータは左の釣果というデータを基に、右のおいしい食べ方データで一致した部分、アジの「南蛮漬け」というデータのみを残し、一致しなかったアマゴやカサゴのレコードについては破棄されます。
左の釣果データを基にしているため釣果データは全て残っています。
また、この場合おいしい食べ方のデータがなかったアユやメバルの食べ方部分はNull値をとります。

右結合は右のおいしい食べ方というデータを基にして、同様のことが言えます。

完全外部結合は全てのデータが残り、内部結合は一致したデータのみが残ります。

左結合だけ実際にやってみます。

左結合の完成

イメージ通りになったかと思います。

この結合というのは、最終的なデータのイメージを理解して、自身でどの種類が最適になるかを選択しなくてはならないため、どれを選べばよいか悩みます。
面倒だな。。。と思いませんか?
実はTableau公式でも、データをくっつける際にいきなり結合を使うというのは推奨されておりません!
なぜなら、より簡単に尚且つ最終イメージを考えなくても、KEYとなる項目があればデータをくっつけられるからです。
それが次のリレーションシップです。

リレーションシップ

私の所感ですが、リレーションシップを一言で表すなら「柔軟性のある緩い結合」です。
2つのデータについて、この項目とこの項目は関係性があるよ!
という設定をしてやれば、実際のViz作成時にTableauが最適な結合を選択してくれるみたいです。

実際にやってみます。

リレーションシップ完成

先ほど結合を使用した際には、2つのデータの間にベン図が現れていましたが、リレーションシップの場合は2つのデータ間に青矢印で示すオレンジの線が現れています。
そして赤枠で囲った部分で、2つのデータの関連する項目を選択しています。
釣果データの魚種=おいしい食べ方データの魚種
という設定をしてやるわけです。
ところで、先ほどまでデータの完成形が現れていた部分に、結果が反映されてないように見えますが大丈夫なのか?とおもいませんか?

実際にシート画面を見てみましょう!

リレーション後のシート画面

実際にシート画面を見てみると、きちんと2つのシートがデータとして取り込まれているのがわかります。
このVizでは釣果の合計をおいしい食べ方データの魚種で分けています。
アジについてはきちんと釣果が反映されているのがわかります。
当然アマゴやカサゴには釣果データはないわけなので、NULL値が反映されています。
また、釣果データはあるけど、おいしい食べ方データのほうで項目のなかったアユやメバルの釣果は項目としてはNullのほうへ反映されています。

もう一つ見てみましょう。

二つのデータにわたる項目の表示画面

今度は釣果データの「魚種」を列に、おいしい食べ方データの「食べ方」をテキストにドロップしてます。
きちんと2つのデータが結合されていることがわかります。

このようにどのタイプの結合を使用するか考えなくてもリレーションシップで簡単にデータ結合ができました。

因みに結合を使おうと思うと、データソースのキャンバスに1つ目のデータをドロップして、ドロップされたデータをダブルクリックした画面に2つ目のデータをドロップして。。。
と、手順を多く踏む必要がありますが、リレーションシップの場合はデータソースキャンバスにポンポンと2つのデータを横並びでドロップするだけなので、最初は結合に気づかないかもしれませんね。
より推奨されている使い方をユーザーに提示してくれる。
Tableauっていいね!

以上
データの準備についてでした。

この記事が気に入ったらサポートをしてみませんか?