見出し画像

Tableau LOD表現のまとめ(その2)

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

LODは私にはやっぱり難しい…
ということで、前編:Tableau LOD表現のまとめ(その1)に続いて、INCLUDE、EXCLUDEについて。

INCLUDE

INCLUDEは、"一部条件だけ固定するもの=ちょっと丸くなったFIXED"みたいなイメージを持ちました。
FIXEDが、ちょっと大人になって、他の価値観も受け入れられるけど、やっぱりこれだけは譲れない!っていう信念も持ってるようなヤツがINCLUDE。(なんじゃそりゃ…)

実データの例

例えば、以下のように、カテゴリをFIXED/INCLUDE指定した上での利益平均で動作を見てみます。

  • { FIXED [カテゴリ] : AVG( [利益] ) }

  • { INCLUDE [カテゴリ] : AVG( [利益] ) }

作成した計算式

Viz上で色々やってみます。
通常のバリュー"利益(平均)"と、FIXED、INCLUDEのバリューをそれぞれ入れて、ディメンションで区切ってみます。

まずは、LOD表現の計算式と同じように、"利益(平均)"を"カテゴリ"で区切ります。
当然、全て同じ値になります。

"カテゴリ"で区切った場合


さらに、"カテゴリ"の前を"顧客区分"で区切ってみます。

FIXEDは、"カテゴリ”で区切った状態で固定されるので、"カテゴリ
"欄には同じ値が入りますが、INCLUDEは"顧客区分"での細分化も受け入れて、普通に"利益(平均)"を"顧客区分"+"カテゴリ"で区切った値と同じになります。
(この段階で、INCLUDEは、FIXEDより大人になったなーと感じた私ですw)

次は、この状態から"カテゴリ"のディメンションを抜くとこうなります。

"カテゴリ"を抜いて"顧客区分"だけで区切った場合

INCLUDEの場合は、”カテゴリ"だけは固定されているので、以下のような感じで計算されているようです。

FIXED/INCLUDEの平均計算イメージ

利用例

Viz/ビューで表現されたLOD・ディメンションより、細かい粒度で計算したものを使いたい場合に使います。

例えば、地域ごとに最も売上の高い日の売上を表現する場合を考えます

  • Viz/ビューで表現したいのは、地域ごと。(つまり、Viz/ビューのLODは"地域")

  • 集計したいのは、"地域”ごとの"売上が一番高い日" (Viz/ビューより細かい粒度)

この場合、LOD表現で以下のように記載して、

  • MAX( { INCLUDE DATETRUNC( 'day' ,  [オーダー日] ) :  sum( [売上] )  }  )

地域ごとにこれを出すことで表現できます。

LOD表現を使ったViz

ちなみに、LOD表現を使わない場合は、こんな感じで"オーダー日"までVizのLODに指定し、ラベルを「最大値のみ表示」にすると同じ結果は得られます。ただ、LOD表現を使ったほうが、圧倒的に見やすいです。

LOD表現を使わなかった場合

INCLUDEの場合は、"地域"を"都道府県"に変えたり、"顧客区分"に変えて、それぞれの日毎の最大値を見ることができますが、"地域"単位だけみたい、という場合はFIXEDを指定することで、同様の結果を得ることができます。

FIXEDを使ったLOD表現
FIXEDを使った場合

条件固定でいい場合はFIXED、Viz/ビューで指定できる条件の可変要素を残したい場合はINCLUDE、という感じです。
(都度FIXED関数を編集すれば、同じことができる、とも言えます)


EXCLUDE

まだ仲良くなれていない=使い道がよくわかっていないヤツです。
EXCLUDEに指定したものは、Viz/ビューでLOD指定されても無視する、みたいな動作です。

実データの例

こんな感じで、"カテゴリ"を除外した"利益"の合計を算出できるLOD表現を書きます。

  • { EXCLUDE  [カテゴリ] :  sum( [利益] ) }

これで、"カテゴリ"単位での利益合計を表示させると、以下のようになります。

Viz/ビューのカテゴリが無視されて、全体利益合計が表現されています。
これに対して、"顧客区分"でさらに細分化すると、EXCLUDEの方は"カテゴリ"は無視して"顧客区分"だけで細分化されます。

利用例

正直利用例がよくわからないので、「これだ!」っていうのが見つかった際に記載します。

ネットなどで調べると、こんな事例が紹介されていました。

  • 各"カテゴリ"の売上が、全体の"売上"にどれだけ寄与しているかを調べたい

  • その際に、以下のようにEXCLUDEを利用

    • 各"カテゴリ"の売上を表示

    • 全体の売上 = "カテゴリ"を除いた(="カテゴリ"をEXCLUDEした)値を算出

こんな感じ。

EXCLUDEの理解のための事例としてはわかります。
でも、これなら、EXCLUDEじゃなく、

  •  { FIXED : sum( [売上] ) }

でも同じことが出来ますので、私はこちらでやります。


まとめ

LODもまだまだ奥が深そうで、まだまだ理解が及んでいないところが多々あるかと思います。
今後の学習・経験を通じて、より理解を深めたいですし、都度Updateできればと思っています。
一旦、DATA Saberを目指す初学者の理解ということで、何かの理解のとっかかりになると嬉しいです。

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