※注意)弊社代表の独断と偏見です。
tableau(タブロー)の”LOD(Level of detail)”を検証するPart2
今回のテーマ
前回、tableau (タブロー)のLOD表現:INCLUDEとFIXEDの違いについて試してみた という検証をしながらLOD表現の挙動の確認を行いました。今回は、噛み砕いてさらに直感的に理解できるように検証してみたいと思います。
今回も、tableau(タブロー)付属のサンプルデータソースを使用させていただきます。
◆LODを検証する前に、フィルタの適用順を確認します
①抽出フィルター
②データソースフィルタ
③コンテキストフィルタ
FIXED(LOD) *1
④ディメンションフィルタ
INCLUDE/EXCLUDE(LOD) *2
⑤メジャーフィルタ
⑥表計算フィルタ
*1 FIXEDは、ディメンションフィルタの前に実行されます。したがって、現在のビューのディメンションに何が置かれていようが結果は変わりません(依存しない)。あくまで、FIXEDに指定されたディメンションを基準として集計します。ただし、コンテキストフィルタの適用後に実行されるため、コンテキストフィルタの結果に依存する点に注意が必要です。
*2 INCLUDE/EXCLUDEは、ディメンションフィルタの後に実行されます。したがって、現在のビューのディメンションに何が設置されたかによって結果が異なります。
◆検証の準備
今回の検証にあたって、下記の計算フィールドをそれぞれ用意してください。
{FIXED [顧客区分]:sum([売上])}
→ ビューのディメンションの配置に関係なく、顧客区分での売上を集計します
{INCLUDE [顧客区分]:sum([売上])}
→ ビューのディメンションに従いながら、顧客区分での売上を集計します。
{EXCLUDE[顧客区分]:sum([売上])}
→ ビューのディメンションに従いながら、顧客区分を除外して売上を集計します。
◆ビューの準備
◆検証開始
検証1)FIXED
FIXEDは、顧客区分単位で売上集計され、カテゴリディメンションには依存しません。
つまり、カテゴリ*顧客区分ではなく、顧客区分単位での売上合計に相当します。
検証2)INCLUDE
INCLUDEは、指定されたディメンションに加え、ビューに配置されたディメンションに依存します。
つまり、ビューに配置されたカテゴリ*顧客区分ごとの売上合計に相当します。
検証3)EXCLUDE
EXCLUDEで指定された顧客区分を除いた売上集計になりますが、ビューに配置されたディメンションに依存します。
つまり、ここでは、カテゴリごとの売上集計に相当します。
ちなみに、この状態で、ビューからカテゴリを外した場合は、ディメンションの縛りが一切なくなるため、結果、表全体の売上集計に相当した結果となります。
◆まとめ
今回は、LOD(Level of Detail)をさらに噛み砕いて挙動を確認してみました。
LOD(Level of Detail)を理解する上では、フィルタの適用順序の理解がとても大切です。
このフィルタの適用順序を理解しておけば、ビューのディメンションの影響を受けるか否かを判断できるようになります。
実際の作業では、FIXEDの利用頻度がとても高いと思いますので、ぜひ、FIXEDの特性(ビューのディメンションに依存しない)を理解して使用していただければと思います。