見出し画像

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

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

はじめに

Tableauの勉強を始めて1ヶ月ちょっとですが、LOD表現が出てきた時に、案の定戸惑いました。
ここを理解しないと、多分今後も辛いんだろうな…と思ったので、勉強しました。

自分なりに理解したことをまとめてみます(大したことは書いていないです。)
ただ、勉強する際に色々なサイトを読ませていただきましたが、読んだだけで、自分の中でスッと腹落ちできるようなものではありませんでした。
自分で調べて、色々試して経験を通じた上で自分の言葉で言語化するのが大事だな…と思ってやってみております。

ちなみに、LOD表現の勉強をする上でのポイントですが、「AVGやMIN/MAXを使ってみる or SUMしたものでもメジャーは平均・最大・最小を使う」方がいいかもしれません。
(個人の体験ですが、SUM・合計で見ていくと変化があまり実感しづらく、「LODって何が美味しいの?」ってなりがちな気がしましたので…)

LODとは

Level of Detailsの略です。
データをどういう単位で集計するのか、集計するデータの粒度」がLODということらしいです。

例えば、みんな大好きTableau付属のスーパーストアのデータで言うと、
「利益」と言うメジャー項目があります。
これをポイっとVizの列に入れると、「利益」の合計が表示されます。
この段階では、集計単位=全体、なので、集計するデータ粒度が指定されていない状態です。
そこに、例えばカテゴリを行に入れると、「利益」をカテゴリ単位で集計してくれます。

なので、この例ではLevel of Detail(s)=カテゴリ。
さらに、サブカテゴリで細分化したりすると、Level of Details=カテゴリ*サブカテゴリと複数になっていくイメージです。

ここまでは、ごくごく普通のことを言ってる感じ。


LOD表現とは?

では、LOD表現とは何か?
説明する前に、先にLOD表現の種類を書き出してみます。

  • FIXED

  • INCLUDE

  • EXCLUDE

この3つで全てです。

この3つに対する自分の理解を、ざっくりまとめてみました。

  • FIXED

    • 指定した条件で集計された値で固定したいよ、っていうときに使う。

      • 指定した条件での集計結果が、別のデータソースとして出来上がるようなイメージで自分は捉えています。

    • 大体のことはFIXEDで出来る気がするので、一番利用頻度が高い。

  • INCLUDE

    • Viz/ビューで指定したディメンションより、もっと細かい条件で計算したものを使いたいときに使う。

    • Viz/ビューで指定したディメンションを活かしたい場合に使う。(そうじゃなければ、FIXEDで細かく条件刻めばいい)

  • EXCLUDE

    • 計算で指定した条件だけは何がなんでも除外して集計したいよ、っていう時に使う。

FIXED

私は以下のように理解しました。

FIXEDで確定させた値を別のデータソースとして持ってくれる感じ…

FIXEDのデータでの実例

例えば、全体の売上金額合計を固定しておきたい場合は、こんな計算式になります。

この計算式で作成したバリューをVizに持っていくと、どんなディメンションで区切ろうとしても、何も変わりません。
これ以上細かくしようとしてもLOD計算された値が何がなんでも維持されます。

何がなんでも変わらないFIXEDで計算した値


「これ以上細かくしようとしても」というのがポイントだと思っています。
逆に、このFIXED指定と関係ない・ゆるい感じでViz/ビューを作ると、FIXEDの項目で画面上は細分化されていないので、丸めた状態で表示されます。

例えば、カテゴリ・顧客区分単位での利益の合計値を基準に、色々みたい場合、計算式は以下。

「利益」を「カテゴリ」「顧客区分」「サブカテゴリ」で区切ったものと、「カテゴリ・顧客区分の利益合計」を並べて表示させてみます。

LOD計算で作成した「カテゴリ・顧客区分の利益合計」の値は、サブカテゴリで分割されずに、そのままの値が残っています。

ただ、ここでVizの「行」から「顧客区分」を外すと….

こんな感じで、LOD計算で { FIXED [カテゴリ],[顧客区分] : sum([利益])}としていたのですが、顧客区分のところが合計されて表示されます。

次に、平均(AVG)の場合を見てみます。
例えば、カテゴリと顧客区分での利益平均は、こんな感じで書きます。

「利益」を「カテゴリ」「顧客区分」で細分化したものと、上記のLOD計算で作成したメジャーをVizに入れると、当然、同じものが表示されます。
(右側がLOD計算で作成したメジャーです)

ここで、「顧客区分」をVizの行から外すと…

前述のように、顧客区分がないのでカテゴリ単位で丸まった「平均値」になるのですが、左右の値が異なる結果になりました。

これは、以下のように、LOD計算の値は、顧客区分で分割したものを足し合わせて、顧客区分の数で平均値を算出しているものになるからです。

通常のVizの方は、"それぞれのカテゴリの行の利益を足して、行数=レコード数で割る"ことで平均を算出してくれています。
FIXEDで計算したものは、もう固定化した値なので、上記のような感じでの再計算はしてくれない、というイメージで理解しました。

FIXEDだけで長くなったので、INCLUDE、EXCLUDEは続編で書きます。
続編:Tableau LOD表現のまとめ(その2)

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