
Tableau 2024.2新機能:Multi-Fact Relationshipsを実際に使ってみた
こんにちは!前回の記事で書いた、Tableau 2024.2で「Multi-fact Relationships」(あるいはShared Dimensions)という新機能について実際に使ってみたので、その部分についてまとめてみました。
データセットについて
今回使うサンプルデータセットはこちら
ファクトテーブル
注文(テーブル名称:Fact注文):注文ID, 顧客ID, 製品ID, 注文日, 出荷日, 配送モードID, 売上, 数量, 割引率, 利益
予算(Fact予算):予算ID, 日付, 製品ID, 売上予算
ディメンションテーブル
顧客(Dim顧客):顧客ID, 顧客名, 顧客区分, 市区町村, 都道府県, 国, 地域
製品 (Dim製品):製品ID, カテゴリー, サブカテゴリー, 製品名, 基本単価
日付(Dim日付):日付, 年, 月, 日, 四半期
配送モード(Dim配送モード):配送モードID, 配送モード名
ちなみになかなかネットで複数のファクトテーブル、ディメンションテーブルに分かれているデータセットが見つかりませんでした、、(探した限りは大福帳形式、、)
そこで生成AIを活用して自分で作成してみました!その内容については次回の記事で紹介したいと思います。
データセットをTableauへ実装
まずは完成版
先に完成版をお見せすると以下のようなレイアウトになりました。
今回はテーブル数も少ないので、非常にシンプルです。

実際に構築してみる
では、実装へ!
まず最初にFact注文.csvを加えます。
すると、画面中央に「テーブルの関連付け」と「ベーステーブルの追加」の表示があります。前者は従来よりあったリレーションシップ機能で、後者が今回の新機能のMulti-fact Relationshipsです。

ひとまず注文テーブルの関連情報をつないでいきます。

こんな感じです。
次に新たなファクトテーブル(予算)を追加してみます。予算テーブルをドラッグアンドドロップしようとすると「新しいベーステーブル」が表示されますので、ここにドロップします。

すると、Fact予算.csvが無事追加されました。

次にFact予算に必要な関連テーブルを紐づけていきます。
以下のように対象のベーステーブルから任意の関連テーブルに引っ張り、それぞれの関係を設定してあげれば完了です。(従来のリレーションシップと同じですね)

Vizの作成
先ほど作成したモデリングでVizを作ってみたいと思います。
まずは売上、予算それぞれ単体で数値を確認してみたいと思います。まずは売上から。
なお、赤線のフィールドを各Vizに使用しております。

続いて予算。

そして2つの売上、予算テーブルをマージして分析した場合は以下のようになります。上記の売上、予算のそれぞれの値が正しく以下のVizで反映されていることが分かります。

なお、片方にしかないディメンションを追加しようとすると、以下のようなエラーメッセージが表示されます。(ここでは予算テーブルにはない、地域フィールドをVizに入れようとした際に表示されました)

データとMulti-fact Relationships機能を正しく理解したうえで警告を無視するのは問題ないですが、今回のような場合ですと以下のようなVizに様変わりしてしまいます、、

上記の赤枠で囲っている部分はデータに関連性がない組み合わせを表示するアラートとなります。マウスオーバーすると、下図のように何が問題かTableauが示してくれます。

まとめ
今回は複数ファクトテーブルを繋いで分析できるというところまでとなります。非常にシンプルな事例になりますが、ご自身のデータで様々な切り口から深掘りを分析を行えそうと、何かしらのヒントになれたら幸いです。
一方で、データの中身を把握し、リレーションシップを正しく設定できていないと意図しないVizを作成してしまう可能性があるため注意も必要です。
どうデータを設計し、どうデータを整えるか、そもそもどういった業務にどのようにVizを活用したいのか、といった部分をより一層突き詰めていくことが大事になりそうです。