ブログ

Tableauでのデータ結合と集計方法、リレーションシップとの違いとは?

データの民主化や可視化が大事だと叫ばれて久しい今日、BIツール、なかでもTableauはその推進をしてくれる強力な製品です。
この記事では、Tableauを使ってデータ分析を行うのにあたって、避けては通れない「結合」と「リレーションシップ」について解説していきます。

データの結合とは

これからデータ分析を始めようという時に、手元にあるデータをTableauに流し込んですぐ分析できる人はほとんどいらっしゃらないでしょう。
データ分析を行うためには、まずデータを色々な場所 (他システムやDBやCSVファイルなど) からデータを引っ張ってきて、それら組み合わせる必要があります。

あるデータとあるデータとを合体させ1つのデータにすることを「データの結合」と呼び、データ分析のファーストステップと言えます。

データを結合する方法

データ結合を行うためには、まずTableauでいくつかのデータソースへ接続を行います。ご存じかもしれませんが、Tableauはオンプレ、クラウド、ローカルファイルなどあらゆるデータソースへの接続ができるようになっています。
データソースへアクセス出来たら、Tableauを使ってデータを結合する方法はとても簡単です。以下のサンプルでは手元にあるエクセルファイル(3シート構成)のTEST Aシートを展開したものですが、データ結合を行う場合は「TEST A」の「開く」を選択し、「データがもっと必要ですか?」と質問されているスペースにデータセットをドラック&ドロップするだけです。

データ結合タイプと結果

データ結合を実行すると、図のようなベン図が表示されます。また、キー項目や演算子はTableauが自動で選択してくれますが、ご自身で変更することも出来ます。

どのようにデータを接合するのか選択する必要があるのでデータ分析の目的に合わせて、適切な結合方法を選ぶとよいでしょう。

種類

結合後のテーブル(処理結果)

内部

結合対象のテーブルにおいて、キーが合致する値を含んだテーブルになります。
マッチングしなかったデータは破棄されます。
いわゆるINNER JOINですね。

左側にあるテーブルを基準にして、右のテーブルのキーが一致する値を含んだテーブルになります。
対応する項目が右テーブルにない場合、NULLと表示されます。
いわゆる左外部結合(LEFT OUTER JOIN)ですね。

右側にあるテーブルを基準にして、左のテーブルのキーが一致する値を含んだテーブルになります。
対応する項目が左テーブルにない場合、NULLと表示されます。
いわゆる右外部結合(RIGHT OUTER JOIN)ですね。

完全外部

両方のテーブルの全データを含むテーブルになります。
マッチングしないデータがある場合、その項目はNULLと表示されます。
いわゆる完全外部結合(FULL OUTER JOIN)ですね。

DB間の結合

先ほど一つのエクセルファイルの複数シートを結合しましたが、複数のエクセルファイルや外部DBとも結合させることも可能です。
その場合は、上記ピクチャーの左上、接続「追加」をクリックし、データソースを選択し、あとは結合と同じ操作をするだけです。
これによって異なるデータソースをあたかも一つのテーブルのように操作出来るようになります。ただし、先ほどの結合と比べるとパフォーマンスや保守性が劣るため、多くのデータを扱う場合には注意しましょう。

集計方法

データ結合を行うことで、データ分析の準備が完了しました。

左ペインの青文字で書かれている部分は「ディメンション」と呼び、名前・日付・理的データなどの数値項目以外のカラムがここに分類されています。緑文字で書かれている部分は「メジャー」と呼び、数値項目のカラムがここに分類されています。それぞれ集計の方法が

メジャー集計

メジャー(数値)項目をシートへ展開するとデフォルトの設定では集計(SUM)が適用されるようになっています。
※必ず集計になるわけではなく、他項目との兼ね合いで別の関数が出来ようされる可能性もあります。

もちろんデフォルト設定は変更可能ですし、以下のピクチャーのように項目単位で集計関数を変更することも可能です。

ディメンション集計

ディメンション集計にもメジャー集計と同じように集計関数(最小値、最大値、カウント、カウント (個別))が用意されています。それぞれに対応するSQLが内部的に発行され、その結果が表示されます。
例えば、2020/1/1~2022/12/31の日付項目で最大値を選択すれば2022/12/31のデータが、最小値を選択すれば2020/1/1のデータが表示されるようになります。

利用可能な集計関数

以下の集計関数が用意されています。※集計関数以外の関数(IFなど)も利用可能です。

関数

説明

想定利用シーン

属性 選択した項目を「属性」に変換する関数です。引数項目の値がユニークであればその値を返し、複数あった場合は*(アスタリスク文字)を返します。NULLは無視されます。 検査対象項目に重複がないかをチェックするとき
合計 選択した項目の合計値を返す関数です。 総合計金額の出力など
平均 選択した項目のNULLを無視して、平均値を返す関数です。 1顧客当たりの売り上げ金額など
カウント 選択した項目に含まれるデータ数を返す関数です。NULLは無視されます。 データ件数をチェックするとき
カウント(個別) カウント関数とは異なり、同じ値がいくつ重複していても“1”と数えた値を返す関数です。 重複なくデータ件数をチェックするとき
標準偏差 指定したすべての値の標準偏差を返す関数です。 データがどのように分布しているかチェックしたいとき
分散 指定したすべての値の分散を返す関数です。NULLは無視されます。 データのばらつき具合をチェックしたいとき

※分散について
この関数を使用することで、データのばらつき具合を確認することができ、それによって特異値を発見することが出来ます。この値は最終的な分析結果に影響を与えることがあるので、こういったチェックは忘れずに実施しましょう。

リレーションシップとの違い

リレーションシップはバージョン2020.2で追加された新しい機能です。
結合とリレーションシップには内部処理の違いがあります。チェックしていきましょう!

リレーションシップとは

複数テーブルを組み合わせる方法で、結合とは異なり結合タイプを選択する必要がなく、ベン図が表示されません。

先ほども記載していますが、キー選択を自動で行ってくれますので、より直感的な操作を可能にし、データ分析の負担を軽減する機能といえるでしょう。
また、ピクチャーでは1-1の関係ですが、n-nの関係にも適用することが可能です。この時、データは完全外部結合が使用されます。

リレーションシップの作成する方法

結合と似ていますが、結合を作成する際は「TEST A」の「開く」を選択する操作を実施しました。リレーションシップの場合は左ペインに表示されたシートをドラック&ドロップするだけです。
この機能の要件としては関連付け用の同じデータ型の項目があることであることが挙げられるので、適用なデータセットを放り込んでもリレーションシップは行われないので注意しましょう。

リレーションシップ不可の場合はこのように表示されます。

結合とリレーションシップの特性と違い

実は、リレーションシップというのは2020年2月の新バージョンでの新しい機能です。
結合とリレーションシップの1番の相違点は、複数テーブルが1つのテーブルになるタイミングと、データ集計のタイミングです。
売上テーブルと予算テーブルがあり、ある日付の売上が予算を達成しているか確認することを仮定しましょう。

リレーションシップは以下の流れで処理されます。

1. ある日付の売上を合計(集計)する。
2. 日付をキーにし、テーブル(表)を1つのテーブルにする。
3. 売上÷予算を計算する。

このように、リレーションシップは集計した後に2つのテーブルが1つになります。

結合の場合は以下の流れで処理されます。

1. 日付をキーにし、2つのテーブルを1つのテーブルにする。
2. 売上は合計(集計)、予算は平均(集計)する。

処理自体は複数テーブルを1つのテーブルにする、ということで同じような機能ではあるものの、処理の流れが異なります。
データの粒度が異なる場合は特に注意が必要です。

【まとめ】

いかがでしたでしょうか?
この記事では結合とリレーションシップの違いを解説させて頂きました。

Tableau公式としては後者推しのようですので、こちらを積極的に使い、データの民主化を実現できる様に頑張りましょう!

Tableauセミナー
弊社ではTableauをはじめとするさまざまな無料オンラインセミナーを実施しています!

詳しくはこちらをクリック!

弊社ではTableauの導入支援を行っています。
お気軽にお問い合わせください!

この記事を読んだ方の多くは以下の記事も読まれています。

PAGE TOP