見出し画像

Tableau Desktop データ結合方法について

📝Tableauで、自分がよく忘れるポイント、うっかりハマった点を備忘録として書いていきます。
利用するデータ・サンプルは、Tableauに付属している"スーパーストア"を利用しています。

はじめに

Tableau Desktopで、複数のデータを扱う方法についてです。

私はマニュアルを基本読まない人間ですし、UIで基本的に理解させてくれ!というタイプです。
特に、リレーションシップと結合(JOIN)については、Tableau Desktopの操作場所・操作方法が近いことから、最初は違いを意識せずに操作していました。結果、何でこっちはこういう表示がされて、こっちでは出てこないんだ!って混乱してしまいました😭
ということで、違いなどを調べてみました。

💭私自身、DBをちょっと触っていたこともあり、結合=JOINだと思い込んでおり、そもそも「リレーション」というものが存在することすら知りませんでした….

Tableauにおけるデータの結合方法

データ結合の方法は以下4つです。

  • リレーション

  • 結合(JOIN)

  • ブレンディング

  • ユニオン

このうち、ユニオンは行を追加していくイメージ、いわゆる「縦結合」です。
ここでは、複数データを関連づけていく手法として、リレーション・結合(JOIN)・ブレンディングについて記載します。

ざっとまとめてみると、こんな感じです。

手順について

こちらの記事がめちゃくちゃわかりやすかったです。(有難うございました)
これ以上のものを作れる気もしないので、リンク先を見ていただくのが良いかと思います。


一応、自分でも確認した内容を書いておきます。

リレーション

「データソース」の画面で、関連づけたいテーブル・シートをドロップするだけ。

テーブル・シートを関連づけているだけで、それぞれのテーブル・シートはそのまま保持されています。
「データソース」画面で見ると、以下のように、論理テーブルは別々で表示されます。

また、ワークシートで作業する際のメジャーも、それぞれのテーブル・シート毎に作成されています。
ここからも、元のテーブル・シートがそのまま残っている状態、ということが読み取れるかと思います。


結合(JOIN)

「データソース」の画面に最初に入れたテーブル・シートをクリックor「開く」で開きます。
その後に、結合対象のテーブル・シートをドラッグして、結合方法を指定します。

結合元のテーブルを選んで、そこに別テーブルをどう結合(JOIN)するかを選ぶ、ということで、まさにデータベースのJOIN操作になると理解しました。
テーブル名は「注文」のままですが、「2個のテーブルで構成」されたテーブルになったよ、ということも表現されています。

ワークシート側のメジャーも「注文」のものしか作成されていません。
ここからも、別テーブルが行単位で右にくっついた、新しい「注文」という表が作成されたのだな、ということは理解できました。

ただ、それであれば、ディメンションも「注文」だけにしてもらうか、テーブルは「注文」の配下階層に「注文」・「関係者」を区切ってほしいな…と思ってしまうのでした。
(私はこのディメンションの区分が、リレーションと同じだったこともあり、リレーションの動作=JOINだと誤解しちゃってました)

リレーションとテーブルで微妙にアイコンの色が違うので、それぞれの挙動を理解した後であれば、アイコンの色などで識別できるかもしれませんが、初見ではなかなか難しいポイントだと思いました。


ブレンド

ワークシートから、データソースを追加して、それぞれのデータソースをVizに入れていくと、Tableau君が「あ、これは共通の切り口・ディメンションだよね」と認識してくれたものを結びつけてくれるイメージです。
逆にいうと、複数のデータソースで共通の切り口になるものを、Tableau君がわかるようにしてあげる必要があります。(項目名を揃えるなど)

Tableauに付属している"スーパーストア"のデータを利用する場合、予算のシートを使うことになるのですが…
予算のシートはデータフォーマットをいろいろと整えてあげる必要があり、準備大変なので、ここでは割愛させてください。

私は、ブレンドの操作とか詳細は、以下のサイトで勉強させていただきました。


結合とブレンドの集計方法の違い

  • 結合:行単位で結合してから集計

  • ブレンド:データソースで集計してから集計

となるのですが、言葉だけだとイメージしづらいので、実際にやってみます。

以下のような、超シンプルなExcelファイルを2つ作成したので、これをそれぞれ、Tableaで結合・ブレンドしてみます。

結合の場合、こんな感じになります。

行ごとに、値が右側に追加されるのが読み取れますね。
この状態でVizを作ってしまうと、本来4月の売上目標は150、実際の売上も150で達成されているはずが、4月の売上目標が2行分足された300と誤った数字が設定され、未達になってしまいます。

続いて、ブレンドです。
売データはこんな感じで紐付きます。
「売上データ.xls」の4月、6月は複数商品の売り上げがあるので「*」が表示されています。「売上データ.xls」データソース側で事前に「4月分はどれ」と集計された後で、右側の「売上目標データ.xls」の各月の目標金額と結びついている、という感じですかね。

Vizもこんな感じで、正しく目標に対する売上が表示できました。

最後に

データの結合の仕組み・動作、改めて難しいな…と思いました。
特に、リレーション・結合は、操作や表示が微妙に異なるだけですが、データ結合の挙動としては、やっていることが全然異なるので、違いを理解した上で操作しないと危ないな、と感じております。

リレーション・結合・ブレンディングは、まだまだ奥が深そうなので、経験などを通じて理解を深めたいと思います。

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