![見出し画像](https://assets.st-note.com/production/uploads/images/141128517/rectangle_large_type_2_22662d51a18340d8939287498145ef79.png?width=1200)
Tableau Desktop データ結合方法について
📝Tableauで、自分がよく忘れるポイント、うっかりハマった点を備忘録として書いていきます。
利用するデータ・サンプルは、Tableauに付属している"スーパーストア"を利用しています。
はじめに
Tableau Desktopで、複数のデータを扱う方法についてです。
私はマニュアルを基本読まない人間ですし、UIで基本的に理解させてくれ!というタイプです。
特に、リレーションシップと結合(JOIN)については、Tableau Desktopの操作場所・操作方法が近いことから、最初は違いを意識せずに操作していました。結果、何でこっちはこういう表示がされて、こっちでは出てこないんだ!って混乱してしまいました😭
ということで、違いなどを調べてみました。
💭私自身、DBをちょっと触っていたこともあり、結合=JOINだと思い込んでおり、そもそも「リレーション」というものが存在することすら知りませんでした….
Tableauにおけるデータの結合方法
データ結合の方法は以下4つです。
リレーション
結合(JOIN)
ブレンディング
ユニオン
このうち、ユニオンは行を追加していくイメージ、いわゆる「縦結合」です。
ここでは、複数データを関連づけていく手法として、リレーション・結合(JOIN)・ブレンディングについて記載します。
ざっとまとめてみると、こんな感じです。
![](https://assets.st-note.com/img/1703385369828-HX5eSUuITh.png?width=1200)
手順について
こちらの記事がめちゃくちゃわかりやすかったです。(有難うございました)
これ以上のものを作れる気もしないので、リンク先を見ていただくのが良いかと思います。
一応、自分でも確認した内容を書いておきます。
リレーション
「データソース」の画面で、関連づけたいテーブル・シートをドロップするだけ。
![](https://assets.st-note.com/img/1703382435721-eCdRD360pM.png?width=1200)
テーブル・シートを関連づけているだけで、それぞれのテーブル・シートはそのまま保持されています。
「データソース」画面で見ると、以下のように、論理テーブルは別々で表示されます。
![](https://assets.st-note.com/img/1703382883133-TiWTLFwXWh.png)
また、ワークシートで作業する際のメジャーも、それぞれのテーブル・シート毎に作成されています。
ここからも、元のテーブル・シートがそのまま残っている状態、ということが読み取れるかと思います。
![](https://assets.st-note.com/img/1703382960955-GnsOadide5.png)
結合(JOIN)
「データソース」の画面に最初に入れたテーブル・シートをクリックor「開く」で開きます。
その後に、結合対象のテーブル・シートをドラッグして、結合方法を指定します。
![](https://assets.st-note.com/img/1703383126189-ZJfCMsFHWB.png)
![](https://assets.st-note.com/img/1703383417506-SXIvw9CBfA.png?width=1200)
結合元のテーブルを選んで、そこに別テーブルをどう結合(JOIN)するかを選ぶ、ということで、まさにデータベースのJOIN操作になると理解しました。
テーブル名は「注文」のままですが、「2個のテーブルで構成」されたテーブルになったよ、ということも表現されています。
ワークシート側のメジャーも「注文」のものしか作成されていません。
ここからも、別テーブルが行単位で右にくっついた、新しい「注文」という表が作成されたのだな、ということは理解できました。
![](https://assets.st-note.com/img/1703383657057-8Q8MhQ36MT.png)
ただ、それであれば、ディメンションも「注文」だけにしてもらうか、テーブルは「注文」の配下階層に「注文」・「関係者」を区切ってほしいな…と思ってしまうのでした。
(私はこのディメンションの区分が、リレーションと同じだったこともあり、リレーションの動作=JOINだと誤解しちゃってました)
リレーションとテーブルで微妙にアイコンの色が違うので、それぞれの挙動を理解した後であれば、アイコンの色などで識別できるかもしれませんが、初見ではなかなか難しいポイントだと思いました。
ブレンド
ワークシートから、データソースを追加して、それぞれのデータソースをVizに入れていくと、Tableau君が「あ、これは共通の切り口・ディメンションだよね」と認識してくれたものを結びつけてくれるイメージです。
逆にいうと、複数のデータソースで共通の切り口になるものを、Tableau君がわかるようにしてあげる必要があります。(項目名を揃えるなど)
Tableauに付属している"スーパーストア"のデータを利用する場合、予算のシートを使うことになるのですが…
予算のシートはデータフォーマットをいろいろと整えてあげる必要があり、準備大変なので、ここでは割愛させてください。
私は、ブレンドの操作とか詳細は、以下のサイトで勉強させていただきました。
結合とブレンドの集計方法の違い
結合:行単位で結合してから集計
ブレンド:データソースで集計してから集計
となるのですが、言葉だけだとイメージしづらいので、実際にやってみます。
以下のような、超シンプルなExcelファイルを2つ作成したので、これをそれぞれ、Tableaで結合・ブレンドしてみます。
![](https://assets.st-note.com/img/1703386633091-g6lznJjPHJ.png)
結合の場合、こんな感じになります。
![](https://assets.st-note.com/img/1703387129953-onxLxTST19.png?width=1200)
行ごとに、値が右側に追加されるのが読み取れますね。
この状態でVizを作ってしまうと、本来4月の売上目標は150、実際の売上も150で達成されているはずが、4月の売上目標が2行分足された300と誤った数字が設定され、未達になってしまいます。
![](https://assets.st-note.com/img/1703387304555-p3cpYGVNGi.png)
続いて、ブレンドです。
売データはこんな感じで紐付きます。
「売上データ.xls」の4月、6月は複数商品の売り上げがあるので「*」が表示されています。「売上データ.xls」データソース側で事前に「4月分はどれ」と集計された後で、右側の「売上目標データ.xls」の各月の目標金額と結びついている、という感じですかね。
![](https://assets.st-note.com/img/1703387708876-Wg5S15XVhj.png)
Vizもこんな感じで、正しく目標に対する売上が表示できました。
![](https://assets.st-note.com/img/1703387968517-kIKaAaxvKK.png?width=1200)
最後に
データの結合の仕組み・動作、改めて難しいな…と思いました。
特に、リレーション・結合は、操作や表示が微妙に異なるだけですが、データ結合の挙動としては、やっていることが全然異なるので、違いを理解した上で操作しないと危ないな、と感じております。
リレーション・結合・ブレンディングは、まだまだ奥が深そうなので、経験などを通じて理解を深めたいと思います。
この記事が気に入ったらサポートをしてみませんか?