Tableau LOD表現について
BI技術者の雑記
BIツール、Tableauにおいてデータをどのような単位で集計するのか、意識したことはあるでしょうか?
集計・分析する際にデータの粒度を意識すると、適切なディメンション(指標、分析軸)をスムーズに決定することができます。
今回はその考え方(LOD)について解説します。
1.はじめに
「LOD」という言葉を聞いたことがあるでしょうか?
LODとは「Level Of Data」の略で、Tableauにおいて、データをどういう単位で集計するのか、集計するデータの粒度のことを指します。
日本語では「詳細レベル」と呼ばれています。
また、「LOD表現」とは、ある特定の単位(ディメンション)でデータを集計する際に、その単位を軸にして集計式を記載する表現記法のことです。
Tableau Desktopの標準では、表の軸とは異なる軸で集計を行う場合など、用意されている関数では対応できない場合が度々あります。
そこで、LOD表現を用いて計算式を構築することで、数式をより精密にコントロールできます。
下図は、LOD表現の実装イメージです。
言葉だけでは意味が掴みづらいため、本記事ではLODおよびLOD表現について実際にTableauの画面を用いて解説します。
※LOD表現の構文、意味だけを手早く知りたい方は、「3.LOD表現の種類」に進んでください。
2.ビューのLODとは
まず、ビューのLODについて、解説します。
ビューのLODとは、Tableauのビジュアライゼーション(ワークシート)上の詳細レベルを指します。
ビューのLODは行シェルフや列シェルフ、各種カードにドロップしたディメンション(カラム)でまとめられた、データの粒度の単位のことを指します。
例えば、下図において、ビューのLODは「カテゴリ」です。
ここに、「顧客区分」を追加するとどうなるでしょうか?
「カテゴリ」だけではユニークなデータが絞れなくなりました。
つまり、この場合のビューのLODは「カテゴリ、顧客区分」ということになります。
この例では、行シェルフにカラムを追加したことで、ビューのLODが変化しました。
Tableauでは、下記赤枠の箇所に変更を加えると、ビューのLODに影響を与えます。
フィルタとツールヒント以外の箇所は、LODに影響を及ぼす可能性があります。
既存のワークブックに手を加える際、LODが変化したことで、計算結果が誤った状態になっていないか、確認を怠らないようにしましょう。
3.LOD表現の種類
前述のように、LOD表現(計算)とは、計算したいデータ集計の粒度(細かさ)を指定して集計数式をコントロールできる、Tableau特有の関数群のことを指します。
LOD表現の構文は、
「{ LOD表現の種類(FIXED | INCLUDE | EXCLUDE) [指定するディメンション}} : 集計式 }」
と記載します。
ディメンションを指定しない場合、データソース全体からの集計結果を返します。
サンプルのスーパーストアのデータを用いて、LOD表現の実用例を挙げてみます。
例えば、「都道府県ごとの平均売上と、全国の平均売上との差を表示したい」という場合を考えます。
「都道府県ごとの平均売上」は、「{ FIXED [都道府県] : AVG([売上]) }」で、「全国の平均売上」は、「AVG([売上])」で算出できます。
あとは、これら2つの値の差分を求めるだけです。
この例で算出した値をビューに表示すると、下図のようになります。
本章では、下記3つの関数について説明します。
FIXED関数
FIXED関数は、指定したディメンションをLOD(詳細レベル)として固定します。
FIXEDを日本語に訳すと「固定する」という意味なので、直感的にわかりやすいでしょう。
FIXED関数は粒度の大小ともに制御できるため、INCLUDE関数よりも使用する機会が多いかもしれません。
例えば、ビューのLODが「都道府県」の場合でも、「都道府県」より大きい粒度の「地域」、「都道府県」より小さい粒度の「市区町村」も、FIXEDのディメンションとして指定することができます。
INCLUDE関数
INCLUDE関数は、ビューのLODに、INCLUDE関数で指定したディメンションを加えて、ビューのLODよりも詳細な粒度で集計をするために使用します。
INCLUDEは日本語に訳すと、「含める」という意味です。
ビューのLODに、INCLUDEで指定したディメンションを「含める」と考えると分かりやすいかもしれません。
下図の例では、ビューのLODは都道府県ですが、「平均 INCLUDE_オーダー別売上」の列では、ビューに含まれていないオーダーIDをLODに含めて集計をしています。
また、このINCLUDEの計算式は、FIXEDでも記載することができます。
下図のとおり、INCLUDEと同じ値になります。
ただし、ビューのLODが変わると、INCLUDEとFIXEDの値に違いが生じます。
例えば、ディメンション「都道府県」を削除してみます。
すると、INCLUDEの値は変わったのに対し、FIXEDの値は変わりません。
INCLUDEとFIXEDの使い分けは、「ビューのディメンションの影響有無」と考えることができます。
INCLUDEでは、ビューのLODの影響を受けた上で、LODを追加します。
一方、FIXEDは、ビューのLODの影響を受けず、計算式に記載したとおりにLODを完全に固定します。
EXCLUDE関数
EXCLUDE関数はINCLUDE関数の逆で、指定したディメンションを集計粒度から除外します。
EXCLUDEを日本語に訳すと「除外する」なので、こちらもイメージしやすいですね。
INCLUDEと同様ですが、指定したディメンションとビューのLODに親子関係が成立する場合、FIXEDでも記載できるため、あえてEXCLUDEを使用する機会は少ないかもしれません。
ただし、異なる点が1つあります。
FIXEDはディメンションフィルターが働く前に計算されますが、EXCLUDEはディメンションフィルターが働いた後に計算されます。
下図の例では、EXCLUDE関数に「都道府県」を指定しています。
そのため、「都道府県」のディメンションが集計軸から除外されて、「地域別」の値で集計されています。
4.おわりに
Tableauは、「どのカラムを、どこのフィールドに配置するか」によって、データの粒度が決定されます。
LOD表現を使うと、カラムをフィールドに配置していなくても集計の粒度を指定できます。
より直感的なビジュアライゼーションが可能になるため、ぜひ活用してみてください。
システムエグゼはTableauなどBI技術を活用したソリューションで、数多くの実績があります。
ご検討の際はお気軽にご相談ください。
5.参考サイト
“Tableau での詳細レベル表現の作成”.Tableau のヘルプ.https://help.tableau.com/current/pro/desktop/ja-jp/calculations_calculatedfields_lod.htm,(参照2024-8-6)
※ Tableauは、Salesforce, Inc.の米国およびその他の国における商標または登録商標です。