![見出し画像](https://assets.st-note.com/production/uploads/images/141128317/rectangle_large_type_2_68cd507c12282c462d7ca36cabb3299e.png?width=1200)
Tableau LOD表現のまとめ(その2)
📝Tableauで、自分がよく忘れるポイント、うっかりハマった点を備忘録として書いていきます。
利用するデータ・サンプルは、Tableauに付属している"スーパーストア"を利用しています。
LODは私にはやっぱり難しい…
ということで、前編:Tableau LOD表現のまとめ(その1)に続いて、INCLUDE、EXCLUDEについて。
INCLUDE
INCLUDEは、"一部条件だけ固定するもの=ちょっと丸くなったFIXED"みたいなイメージを持ちました。
FIXEDが、ちょっと大人になって、他の価値観も受け入れられるけど、やっぱりこれだけは譲れない!っていう信念も持ってるようなヤツがINCLUDE。(なんじゃそりゃ…)
実データの例
例えば、以下のように、カテゴリをFIXED/INCLUDE指定した上での利益平均で動作を見てみます。
{ FIXED [カテゴリ] : AVG( [利益] ) }
{ INCLUDE [カテゴリ] : AVG( [利益] ) }
![](https://assets.st-note.com/img/1703807041167-tVrL4dRyJZ.png?width=1200)
Viz上で色々やってみます。
通常のバリュー"利益(平均)"と、FIXED、INCLUDEのバリューをそれぞれ入れて、ディメンションで区切ってみます。
まずは、LOD表現の計算式と同じように、"利益(平均)"を"カテゴリ"で区切ります。
当然、全て同じ値になります。
![](https://assets.st-note.com/img/1703807169142-6HBtvmBYHS.png?width=1200)
さらに、"カテゴリ"の前を"顧客区分"で区切ってみます。
![](https://assets.st-note.com/img/1703808457273-zTX6UxzPAQ.png?width=1200)
FIXEDは、"カテゴリ”で区切った状態で固定されるので、"カテゴリ
"欄には同じ値が入りますが、INCLUDEは"顧客区分"での細分化も受け入れて、普通に"利益(平均)"を"顧客区分"+"カテゴリ"で区切った値と同じになります。
(この段階で、INCLUDEは、FIXEDより大人になったなーと感じた私ですw)
次は、この状態から"カテゴリ"のディメンションを抜くとこうなります。
![](https://assets.st-note.com/img/1703808538451-0y5Ux7LbjM.png?width=1200)
INCLUDEの場合は、”カテゴリ"だけは固定されているので、以下のような感じで計算されているようです。
![](https://assets.st-note.com/img/1703809073431-Iq7Ef0a2fz.png?width=1200)
利用例
Viz/ビューで表現されたLOD・ディメンションより、細かい粒度で計算したものを使いたい場合に使います。
例えば、地域ごとに最も売上の高い日の売上を表現する場合を考えます
Viz/ビューで表現したいのは、地域ごと。(つまり、Viz/ビューのLODは"地域")
集計したいのは、"地域”ごとの"売上が一番高い日" (Viz/ビューより細かい粒度)
この場合、LOD表現で以下のように記載して、
MAX( { INCLUDE DATETRUNC( 'day' , [オーダー日] ) : sum( [売上] ) } )
![](https://assets.st-note.com/img/1703811370051-XlQDNwHWoH.png?width=1200)
地域ごとにこれを出すことで表現できます。
![](https://assets.st-note.com/img/1703811411372-x2Tvh296jF.png?width=1200)
ちなみに、LOD表現を使わない場合は、こんな感じで"オーダー日"までVizのLODに指定し、ラベルを「最大値のみ表示」にすると同じ結果は得られます。ただ、LOD表現を使ったほうが、圧倒的に見やすいです。
![](https://assets.st-note.com/img/1703811496279-lGFvPldRwM.png?width=1200)
INCLUDEの場合は、"地域"を"都道府県"に変えたり、"顧客区分"に変えて、それぞれの日毎の最大値を見ることができますが、"地域"単位だけみたい、という場合はFIXEDを指定することで、同様の結果を得ることができます。
![](https://assets.st-note.com/img/1703811686133-YoIWLBeA9f.png?width=1200)
![](https://assets.st-note.com/img/1703811860621-jak2ZPaD4W.png?width=1200)
条件固定でいい場合はFIXED、Viz/ビューで指定できる条件の可変要素を残したい場合はINCLUDE、という感じです。
(都度FIXED関数を編集すれば、同じことができる、とも言えます)
EXCLUDE
まだ仲良くなれていない=使い道がよくわかっていないヤツです。
EXCLUDEに指定したものは、Viz/ビューでLOD指定されても無視する、みたいな動作です。
実データの例
こんな感じで、"カテゴリ"を除外した"利益"の合計を算出できるLOD表現を書きます。
{ EXCLUDE [カテゴリ] : sum( [利益] ) }
![](https://assets.st-note.com/img/1703812234212-h0eKrx8EmW.png)
これで、"カテゴリ"単位での利益合計を表示させると、以下のようになります。
![](https://assets.st-note.com/img/1703812357699-uak0XiVQNC.png?width=1200)
Viz/ビューのカテゴリが無視されて、全体利益合計が表現されています。
これに対して、"顧客区分"でさらに細分化すると、EXCLUDEの方は"カテゴリ"は無視して"顧客区分"だけで細分化されます。
![](https://assets.st-note.com/img/1703812429777-pHi0cZBpqB.png?width=1200)
利用例
正直利用例がよくわからないので、「これだ!」っていうのが見つかった際に記載します。
ネットなどで調べると、こんな事例が紹介されていました。
各"カテゴリ"の売上が、全体の"売上"にどれだけ寄与しているかを調べたい
その際に、以下のようにEXCLUDEを利用
各"カテゴリ"の売上を表示
全体の売上 = "カテゴリ"を除いた(="カテゴリ"をEXCLUDEした)値を算出
こんな感じ。
![](https://assets.st-note.com/img/1703812833040-df5vBpMCcC.png?width=1200)
![](https://assets.st-note.com/img/1703812985854-nLe5glu04o.png?width=1200)
EXCLUDEの理解のための事例としてはわかります。
でも、これなら、EXCLUDEじゃなく、
{ FIXED : sum( [売上] ) }
でも同じことが出来ますので、私はこちらでやります。
まとめ
LODもまだまだ奥が深そうで、まだまだ理解が及んでいないところが多々あるかと思います。
今後の学習・経験を通じて、より理解を深めたいですし、都度Updateできればと思っています。
一旦、DATA Saberを目指す初学者の理解ということで、何かの理解のとっかかりになると嬉しいです。
この記事が気に入ったらサポートをしてみませんか?