Tableau(タブロー)のデータブレンド機能(ブレンディング)について解説します。リレーションシップやデータ結合との違いやデータブレンドが失敗する原因などについても解説しています。
データブレンドとは?
データブレンドとはワークシート上で複数のデータソースからデータを利用する機能です。
データブレンドは1行1行のデータを結合するのではなく集計値(SUM,AVGなど)をキーとなる関連フィールドを用いて関連付けます。
例えば、以下の2つのデータソースを「販売月」をキーにしてブレンドしようした場合を考えてみます。
(※ワークシートに最初にデータを追加したデータソースをプライマリデータソース、2回目以降のデータソースをセカンダリデータソースと呼び、ブレンドに使うキーのことを「ブレンドリレーションシップ」と呼びます)
集計関数SUMを用いてデータブレンドする場合は下図のように各テーブルでキーである「販売月」で値がSUM集計された後にテーブルを左結合します。プライマリデータソースのテーブルに「7月」はないため、結合後にはデータは残らず以下のような結果になります。
このようにデータブレンドでは複数のデータソースの集計値をブレンドリレーションシップ(キー)を用いて左結合でくっつけてデータを利用します。そのため、プライマリデータソースのデータは全て残りますが セカンダリデータソースの関連付けられないデータは表示されなくなるので注意が必要です。
- 複数データベースの集計値をブレンドリレーションシップ(キー)で関連付ける
- データ関連付けは左結合
- ブレンドリレーションシップによるデータ関連付けはワークシート毎で機能する
データブレンドの使い方・やり方
具体的なデータを用いてで実際にデータブレンドを行ってみたいと思います。データブレンドに必要なのは下記の2つです。
- 2つ以上のデータソース(プライマリデータソース&セカンダリデータソース)
- ブレンドリレーションシップ(共通フィールド・キー)
今回はTableauのサンプルデータであるスーパーストアと以下の売上目標のエクセルデータを関連フィールドを用いてデータブレンドをしていきます。
画面上部の「新しいデータベース」をクリックする。データベースへの接続画面が表示されますので対象のファイルを選択する。
追加されたデータベースは画面左上に表示され、クリックして選択することでデータベース内の各データを確認できます。
スーパーストアをプライマリデータソースとするためスーパーストアからディメンション[オーダー日]とメジャー[売上]を行列シェルフにドラッグ&ドロップする。
ワークシートに最初にデータをセットしたデータソースをプライマリデータソース(親のデータソース)、それ以降をセカンダリデータソース(子のデータソース)と呼びます。
プライマリデータソースには 下図のようにデータソースのアイコンに青いチェックマークが付きます。
プライマリデータソースはワークシート上の親のデータベースのようなモノで、データブレンドをした場合 全てのデータがブレンド後のデータに残ります。
データベースを「売上目標」に切り替えてメジャー[売上目標]を行列シェルフにドラッグ&ドロップする。
セカンダリデータソースには 下図のようにデータソースのアイコンにオレンジ色のチェックマークが付きます。
セカンダリデータベースはワークシートで2回目以降に利用した全てデータベースを指します。ワークシート上の子のデータベースのようなモノで データブレンドをした場合 プライマリデータベースと関連付けられたデータのみが残ります。
セカンダリデータベースで「鎖マーク」と「斜め線で切られた鎖マーク」が表示されているデータがあります。これがブレンドリレーションシップ(キー)となるフィールドを示しており、複数のデータベースをつなげる「共通のデータ集計用フィールド」となっています。
- 鎖マーク: 複数データソースをつなげる共通のフィールド(ブレンドリレーションシップ)
- 斜め線で切られた鎖マーク:ブレンドリレーションシップの候補だが機能していないフィールド
鎖マークをクリックすることで共通のデータ集計用フィールドとして使うかどうかを切り替えられます。下図内の[カテゴリ]もブレンドリレーションシップとして利用したい場合は鎖マークをクリックすれば可能です。
以上が基本的なデータブレンド機能の使い方です。ブレンドしたデータは下記のようにブレンドリレーションシップである[オーダー日 の年]毎に集計されて横につながっています。
データブレンドしたデータを用いて以下のような売上目標と売上を比較するグラフも作成できます。
このようなグラフの作成方法はこちらの記事にあります。
結合・リレーションシップとの違いは?
複数のデータソースを利用する方法としてはデータブレンドを含めて以下の3つの機能があります。それぞれの機能の違いについて簡単に説明します。
- データブレンド
- データ結合
- リレーションシップ
データを関連付けるのにキーとなる関連フィールドを用いることは全て同じですが、データの関連付けのレベル(粒度)と関連フィールドを設定するタイミングが異なります。
データブレンドとリレーションシップは関連フィールドにより集計値を関連付けることができ、データ結合は1行1行のレコード同士しか関連付けられません。データブレンドは関連フィールドをワークシート毎に変更できるといった点でリレーションシップとは異なり状況に応じて柔軟に対応できます。
データブレンド | リレーションシップ | データ結合 | |
---|---|---|---|
データ関連付け レベル | 集計範囲 | 集計範囲 行・レコード | 行・レコード |
データ関連付け 関連フィールド設定 | ワークシート毎 | データソース | データソース |
データブレンドでの失敗例・できない原因
最後にデータブレンドを行う中でよくある失敗例や上手くできない原因を紹介します。データが思った通りに表示されない場合に参考にしてみてください。
ブレンドリレーションシップに設定したいフィールドの名前が違う
ブレンドリレーションシップ(キー)として使いたいフィールドの名前が異なるとTableauが共通のフィールドであると判断してくれません(鎖マークが表示されません)。Tableau側に共通のフィールドであると自動的に判別させるためにキーとして使いたいフィールドは同じ名前にしましょう。
フィールド名が違くても無理やりブレンドリレーションシップを設定する方法がありますが設定後の使いやすさを考えると下記の方法がオススメです。
フィールド名を直接変更
名前を変更したいフィールド(ディメンション)を右クリックして「名前の変更」を選択する。そして、任意のフィールド名を設定する。
フィールドを複製して名前を変更
データペインの「▼」をクリックして「計算フィールドの作成」を選択する。計算フィールド名に変更したい名前を設定して計算式は元のフィールドをそのまま入力する。※データペインのフィールドを右クリックして「複製」を選択してもOK。
共通フィールド(キー)の要素が一致していない
ブレンドリレーションシップに設定した共通フィールド内において 同じ内容を示しているのに文字列や表記が異なるとデータブレンドが行われません。関連付けたい要素同士は同じ文字列・表記に合わせましょう。
下図はキーとなる共通フィールド[カテゴリ]の要素を「家電」と「家電製品」と異なる表記にした場合の結果です。表記・文字列が異なるため同じ要素と判断されずデータが関連付けられていません。NULLとなります。
要素を編集したい場合、データソースをいちいち修正する必要はなく「別名の編集」で行うことができます。
要素を別名編集
フィールド内の要素名を変更したいフィールドを右クリックして「別名」を選択する。そして、変更したい要素に対して任意の別名を設定する。
集計関数を使っていない / LOD関数や非加算集計関数を使っている
セカンダリデータソースから利用しているデータを計算フィールドで利用する場合、集計関数(SUM,AVGなど)で集計してデータを利用する必要があります。また、セカンダリデータソースからのデータにはLOD関数や非加算集計関数(COUNTD,MEDIAN,RAWSQLAGGなど)は利用できないといった制限があります。
計算フィールドが赤色になり利用できない場合は 計算フィールド内で集計関数が使われているか 制限されている関数を使ってしまっていないか確認してみてください。
※計算フィールド内でセカンダリデータベースのデータを用いると「データベース名.フィールド名」といった表記になります。
セカンダリデータソースの値が複製されている(重複している)
ブレンドリレーションシップに設定していないディメンションを行列シェルフに追加した場合 セカンダリデータソースで集計されたデータが追加したディメンション要素の増加分だけ複製されます。
下図の場合などは ブレンドリレーションシップに設定していないディメンション[カテゴリ]を行列シェルフにセットしているので[カテゴリ]の要素だけ[オーダー日の年]で集計した同じ値が複製されています。
この状態で年ごとの目標値を合計集計してしまうと本来の値より大きくなってしまいます。
行列シェルフに使うディメンションはブレンドリレーションシップを設定する
対応方法としては行列シェルフにあるディメンションには鎖マークが表示されるように設定する(ブレンドリレーションシップ(キー)に設定)。斜め線が鎖マークにかかっている場合はクリックして斜め線を消しましょう。
セカンダリデータソースにフィルタが適用されない
フィルタを設定した場合にプライマリデータソースのみにフィルタがかかりセカンダリデータベースの値にフィルタがかからない場合は、フィルタに設定したディメンションをブレンドリレーションシップ(キー)として設定できていません。
フィルタに設定したいディメンションもブレンドリレーションシップ(キー)に設定するようにしましょう。
下図の場合などは[カテゴリ]をブレンドリレーションシップに設定していない状態でフィルタ設定しているので売上目標値は[オーダー日の年]のみで集計された値が記載されています。
対応方法としては下記のどちらかで対応するのがオススメです。
フィルタに設定するディメンションはブレンドリレーションシップに設定する
フィルタ設定にあるディメンションには鎖マークが表示されるように設定する。斜め線が鎖マークにかかっている場合はクリックして斜め線を消しましょう。
セカンダリデータベースの同様のディメンションもフィルタに設定する
フィルタ設定にセカンダリデータベースから同じディメンションをセットするとちゃんとフィルタが機能します。ブレンドリレーションシップに設定したくないときなどはこの方法がオススメです。
Tableau(タブロー)の学習本についてはコチラの記事でまとめてますので参考にしてみてください。
初学者向け おすすめ学習書
コメント