LOD計算とは

If something is wrong, fix it. But train yourself not to worry, worry fixes nothing.
- ヘミングウェイ -

LOD計算とは、Level Of Detail計算の略で、任意の粒度でデータを計算できる手法です。

Tableauでは、FIXED・INCLUDE・EXCLUDEの3種類のLOD計算があります。違いは以下の通り。
  • FIXED:Vizで使用されている粒度と関係なく、指定したディメンション粒度で計算を行う。
  • INCLUDE:Vizで使用されている粒度に、指定したディメンション粒度を加える。
  • EXCLUDE:Vizで使用されている粒度から、指定したディメンション粒度を除く。
今回は、この中のFIXED関数についてご紹介します。


FIXED関数をイメージしてみよう

FIXED関数はVizで使用している粒度を無視して、指定したディメンション粒度で数値の計算を行います。

FIXED関数は以下のようにかきます。
{ FIXED [ディメンション1], [ディメンション2]… : SUM([メジャー]) }
※ディメンションの種類は任意で指定できます。
※メジャーは集計する必要があります。上記はSUMで集計していますが、他の集計方法でも可能です。

FIXED関数で使用しているディメンションとメジャーのみの中間テーブルが作成されるイメージです。

図1

<例①>
通常、[カテゴリ1] [カテゴリ2] [カテゴリ3] 粒度でSUM[メジャー]を表現すると以下のようになります。
図3

ここに以下のFIXED関数を用いて作成した計算フィールドを横に並べてみます。

FIXED
{ FIXED [カテゴリ1], [カテゴリ2] : SUM([メジャー]) }


図4

Viz上は[カテゴリ1] [カテゴリ2] [カテゴリ3] 粒度で表現されていますが、[FIXED]は、FIXED関数で指定したディメンションである[カテゴリ1]と[カテゴリ2]の粒度でしか計算されていません。


<例②>
[カテゴリ2]ごとに合計した[メジャー]の平均値を出したい場合、通常、以下のようにViz内に[カテゴリ2]を入れる必要があります。
図5

ここで以下のFIXED関数を用いて作成した計算フィールドを使用してみます。
AVG({ FIXED [カテゴリ1], [カテゴリ2] : SUM([メジャー]) })

図6

Viz上は[カテゴリ1] 粒度で表現されていますが、[カテゴリ2]ごとに合計した[メジャー]の平均値が出されています。


FIXED関数を集計する

<例②>のところでFIXED関数を用いた計算フィールド自体を集計していましたが、以下のようなイメージになります。

図7

  • FIXED関数内での集計:元のテーブル⇢FIXED関数で使用するテーブルに変換する際の集計
  • FIXED関数自体の集計:FIXED関数で使用するテーブル自体の集計
少しややこしいですが、やりたいことに応じて集計することができます。


まとめ

今回はFIXED関数の理屈を中心にまとめてみました。LOD計算で最も大切なのは、元のテーブルの1行が何を表しているかをしっかり理解することです。使用するデータのことをよく理解した上で、使ってみましょう。

↓このVizでもFIXED関数を使っていました


Tableau Public : https://public.tableau.com/views/M-1_15531522020340/M-1?:display_count=y&:origin=viz_share_link