Tableau 公式ヘルプから読み解くLOD計算!

説明聞いたり解説を読んで理解はできるんです。
でも自分で実際に使ってみようと思うと、意味が分からな過ぎて泣きそうです。
Tableau超初心者なりに、Tableauヘルプの「詳細レベル表現」を読み解いて、それぞれの計算の役割を整理していきたいと思います。
(自分なりに理解することを目的としているため、大変読みづらい部分があると思います。。汗)

Tableauヘルプはこちら↓

詳細レベル表現 (LOD 表現とも呼びます) ではデータ ソース レベルおよびビジュアライゼーション レベルで値を計算できます。さらに、LOD 表現は計算したい粒度のレベルをコントロールできます。粒度のより細かいレベル (INCLUDE)、それよりも粒度の大きなレベル (EXCLUDE)、またはまったく個別のレベル (FIXED) で計算を行えます。

https://help.tableau.com/current/pro/desktop/ja-jp/calculations_calculatedfields_lod.htm#Types

LOD計算には3種類あります。
【FIXED|INCLUDE|EXCLUDE】の3つです。左から順に読み解きます。

↓共通の計算式の書き方
計算式の書き方は以下の通りで { } で囲うのが特徴です。
{[FIXED|INCLUDE|EXCLUDE]<ディメンション>:<集計式>}

Ti㎰として、詳細レベルに設定したいディメンションと集計項目をctrlキーで複数選択して作成→LOD計算を選択すると
{[FIXED<選択ディメンション>:SUM<選択集計項目>}
を自動で生成してくれます。
INCLUDEでもEXCLUDEでも一旦これで作ってFIXEDのところだけを切り替えるのが楽ですね。

あるいは集計するメジャーをctrlキーを押しながらディメンション項目のところにドラッグアンドドロップします。すると、同じように
{[FIXED<選択ディメンション>:SUM(<選択集計項目>)}
が自動で作成されます。修正したい場合は作成された計算フィールドを編集すればOKです。

では本題に移りましょう。まずはFIXEDから。

FIXED

FIXED 詳細レベル表現は、ビューの詳細レベルに関係なく (つまり、ビューの中の他のいずれのディメンションにも関係なく)、指定されたディメンションを使用して値を計算します。
FIXED 詳細レベル表現は、コンテキスト フィルター、データ ソース フィルター、および抽出フィルター以外のビュー内のすべてのフィルターを無視します。

https://help.tableau.com/current/pro/desktop/ja-jp/calculations_calculatedfields_lod.htm#Types

「売上FIXED(地域)」という名称で計算式を作成します。

{ FIXED [地域]: SUM([売上]) }

これを使えば以下のようなビューの詳細レベルが「地域」よりも細かい「都道府県」であっても、「地域」ごとに売上を集計した値を表示させることができます。

同じ値がずらーっと並んでいます

このビューから都道府県という粒度を除いてしまえば、結果としては以下の通り売上には「地域」の集計結果が「売上FIXED(地域)」と同じように表示されています。

粒度は「地域」だけ。

FIXEDはどのようなときに使用するかというと、画像の右列に示しているような、例えば地域内での都道府県の売上割合が知りたいときなどに使用できます。
LOD計算はLOD計算同士でないと四則演算ができません。
「都道府県売上割合」など適当な名称で以下の計算式を作成します。

{ FIXED [都道府県]: SUM([売上]) }/{ FIXED [地域]: SUM([売上]) }

それをメジャーに入れると、地域の中で、各都道府県の売上割合がどのくらいかを見ることができるようになりました。
ただこれは、LODを使わなくても求めることができます。
ビューにある売上を右クリック→簡易表計算から、「合計に対する割合」を選択します。そのあと、「次を使用して計算:」から「ペイン」を選びます。
先ほど作成した「都道府県売上割合」の値(一番右のところ)と全く同じ値が表示されていることを確認します。

簡易表計算でもできたりします。

ビューの粒度に左右されずに固定したディメンションで集計するといっても、上記のようにビューの中のディメンション項目の一つを固定する場合は良いですが、例えば上の表で{FIXED[カテゴリ]:
SUM(売上)}という項目が追加されたとしても、それが何を意味するのか分かりません。(結果としては[売上](売上の列の合計)が表示されます。)
なのでこのようにビュー内に複数粒度がある場合に、その中の一つに固定して集計したいときなんかに使えると思います。

FIXEDは以上です。

INCLUDE

INCLUDE 詳細レベル表現は、ビューに含まれるディメンションに加えて、指定されたディメンションを使用して値を計算します。
INCLUDE 詳細レベル表現は、データベース内では細かな詳細レベルで計算し、ビュー内では大まかな詳細レベルで再集計して表示するのに便利です。INCLUDE 詳細レベル表現に基づくフィールドは、ビューからディメンションを追加または削除すると変化します。

https://help.tableau.com/current/pro/desktop/ja-jp/calculations_calculatedfields_lod.htm#Types

次にINCLUDEです。
例1
「売上INCLUDE (顧客名)」という名称で計算式を作成します。

{INCLUDE[顧客名]:SUM([売上])}

カテゴリ、顧客区分ごとの売上と平均を見るとき、SUM[売上]の集計をAVG[売上]にすると、売上金額がオーダーidのカウントで割って平均されます。
下の家具、小規模事業者を例に確認すると
15,480,671(売上)÷402(オーダーidのカウント)=38,509(平均売上)です。

これをオーダーidごとではなく、顧客名ごとの平均が見たいときに、「売上INCLUDE (顧客名)」が使えます。
このビューでは顧客名という粒度がありませんが、{INCLUDE[顧客名]:SUM([売上])}したことによって、売上の中に顧客名の粒度が含まれました。ビューにもっていった「売上INCLUDE (顧客名)」を合計から平均に変更します。すると124,844と先ほどとは違う平均値が示されました。
計算の中身は
15,480,671(売上)÷124(顧客名の個別カウント)=124,844(平均売上)です。

例2
「売上INCLUDE (地域)」という名称で計算式を作成します。

{ INCLUDE [地域]: SUM([売上]) }

地域ごとの売上の平均合計が、カテゴリや顧客区分を横断するとどのように変化するかを確認できます。

こちらも先ほどと同じく、売上の中に「地域」という粒度を含め、
{ INCLUDE [地域]: SUM([売上]) }を「地域」の数で平均します。
(なんか使い方難しい・・・)

あまり煮え切らないですが、表の中にない粒度を含んだ状態にできるのがINCLUDEです。そして、{INCLUDE<ディメンション>:<集計式>}はこのままで使うことはまずないと思います。このままでは<集計式>に<ディメンション>の粒度を含んだ状態になったよーというだけなので、見た目的には<集計式>と何ら変わりがありません。
ここから平均にしたりして、含んだ粒度を生かす必要があります。

次にEXCLUDEです。

EXCLUDE

EXCLUDE 詳細レベル表現は、詳細レベルのビューから省略するディメンションを宣言します。
EXCLUDE は、「合計に対する割合」や「全体的な平均との差異」のシナリオで役立ちます。これらは、「合計」や「リファレンス ライン」の機能に相当します。
EXCLUDE は、省略できるディメンションがない、行レベルの式では使用できません。ビューレベルの計算やその他の LOD を変更できます。

https://help.tableau.com/current/pro/desktop/ja-jp/calculations_calculatedfields_lod.htm#Types

EXCLUDEを用いて、スーパーストアの全期間平均の売上高と、年月の売上高の差がどのくらいかを見ていきます。
データペイン「オーダー日」から作成→カスタムの日付で、「年/月」を選択します。不連続のままにします。
次に「月別の平均売上」という名前のLOD計算を作成します。

{EXCLUDE [オーダー日 (年/月)] : AVG({FIXED [オーダー日 (年/月)] : SUM([売上])})}

そしてこの計算を使って、行シェルフのアドホック計算で

SUM([売上])-SUM([月別の売上平均])

と入力して、列に先ほど作成したオーダー日(年/月)を入れると

スーパーストアの全期間平均売上高と、年月の売上高の差

このようなビューが完成します。このビューの0Mのところが平均線です。
詳細を確認するためにクロス集計表で見てみます。

細かく説明しようとしたらこんなことになりました

一つ一つひも解くと、
  ①    年月ごとの売上
  ③   「オーダーidのカウント」
①÷③平均売上
INCLUDEでも登場しましたが、集計の切り替えから「平均」を選択した場合、その平均は「オーダーidのカウント」を用いて計算されます。
1行目を例にすると
①2,042,420÷③109=18,738 という計算になります。

今回は平均を年月ごとではなく全期間で平均していきます。
そのために、まず⑥{FIXED [オーダー日 (年/月)] : SUM([売上])}で粒度を固定します。
画像の①と全く同じ値になっているのが分かります。

⑦AVG({FIXED [オーダー日 (年/月)] : SUM([売上])})の部分は、オーダー日(年/月)で固定したものの平均を出していますが、この場合、割るものは1(固定されているのは年月の不連続の値)なので⑥と全く同じ値になっているのが分かります。

そしてこれを
②{EXCLUDE [オーダー日 (年/月)] : AVG({FIXED [オーダー日 (年/月)] : SUM([売上])})}
この計算式に当てはめるとどうなるかというと、先ほどまで固定していたオーダー日(年/月)のディメンションを取り除くということになります。
つまり「全体のデータにおける月平均」を表すことになります。
イメージとしてはこうです。

オーダー日は2021年1月から2024年の12月まであるため48か月です。
そのカウントもEXCLUDEを使えば求めることができます。

④{EXCLUDE [オーダー日 (年/月)]:SUM([売上])}はビューから [オーダー日 (年/月)]の粒度を取り除いたもの=粒度がない状態の集計されていない[売上]となりますが、これを、⑤の年月ごとの売上から年月の粒度を取り除いた個別のカウント(=48)で割ると、全期間のオーダー日 (年/月)の売上平均を求めることができます(=②)。

そして求めた②を①の年月ごと売上から引き算すると、月あたりの売上実績と、4 年間の月平均売上との差を示すビューが表示されるということです・・やばい、EXCLUDE面白すぎる。
数時間前まで、公式のヘルプを見て頭が良すぎてついていけない泣と思っていましたが私もそのレベルに達することができたようです☆

公式のヘルプには例2があります。そちらも見ていきます。
「売上EXCLUDE(地域)」という計算式を作ります。

{ EXCLUDE [地域]: SUM([売上]) }

これを月、地域ごと売上の色に入れるとどうなるでしょうか。

{ EXCLUDE [地域]: SUM([売上]) }を色に入れると・・・

「月別の売上合計が地域的な要素を含まずに表示されるように網掛けされます。(公式サイト)」←はい?
という感じでしたが行に注目してみると、月ごとで同じ色になってることが分かります。
以下はいつも通り売上を色に入れた場合です。月ごと地域ごとという粒度でそれぞれ色の濃淡が異なっているのが分かります。

SUM([売上])を色に入れると・・・

色のパターンとしてEXCLUDEは月の12色であるのに対してこちらは
月12色×地域8色の96色あるというわけです。
ビューに表示されている項目から特定のディメンションを除きたいときに使えるのがEXCLUDEです。

以上、EXCLUDEの使い方でした。

簡単にそれぞれをまとめると図のようになりますが、LOD計算は説明を聞いたり読んだりするだけでは理解ができないと思います。私も理解できた気になっていました。
実際に自分で使ってみて身に着けていくのが一番はやいです。

私ももっと使いこなして、身に着けていきたいと思います!

今回使用したクロス集計表やビューはこちらにまとめています。


いいなと思ったら応援しよう!