← TOPへ戻る

LOD式(FIXED/INCLUDE/EXCLUDE)完全解説

Tableauで最もつまずきやすいLOD式(Level of Detail)を3種まとめて解説。 使い分けの早見表、よくある失敗パターン、DA試験の出題傾向からTableau実践入門四段との連動まで網羅。

はじめに ― LOD式はなぜ難しいのか

Tableauを学ぶうえで、多くの学習者がつまずくのがLOD式(Level of Detail式)です。 通常の集計計算はビューのディメンション構成に依存しますが、LOD式を使うと ビューの粒度とは独立した粒度で計算を定義できます。 この「ビューに縛られない計算」という概念が、慣れるまで直感的に理解しにくいのです。

LOD式にはFIXED・INCLUDE・EXCLUDEの3種類があり、それぞれ異なる動作をします。 この記事では3種の概念を丁寧に整理し、使い分けの判断基準と よくある失敗パターンまでをセットで解説します。 DA(Data Analyst)試験でも高頻度で出題されるテーマなので、 しっかりマスターしておきましょう。

LOD式とは何か ― ビューの粒度との関係

通常、Tableauのメジャーはビューに配置したディメンションの組み合わせで自動的に集計されます。 たとえば「地域」と「カテゴリ」をビューに追加すれば、売上はその組み合わせごとに合計されます。 この粒度のことを「ビューレベルの詳細」と呼びます。

LOD式(Level of Detail式)は、この「ビューレベル」とは別の粒度で計算を行うための仕組みです。 波括弧 {} を使って計算の粒度を明示的に指定します。 構文の基本形は次のとおりです。

LOD式の基本構文

{ [キーワード] [ディメンション] : 集計関数([メジャー]) }

キーワード部分に FIXEDINCLUDEEXCLUDE のいずれかを指定します。 ディメンションを省略することもでき、その場合はデータ全体が対象になります。

LOD式はTableauのフィルター処理順序とも密接に関係しています。 FIXED式はディメンションフィルターよりも先に評価される一方、 INCLUDE・EXCLUDE式はディメンションフィルターの後に評価されます。 この順序の違いが実務での挙動の差につながります。

FIXED式 ― 粒度を固定して計算する

基本的な考え方

FIXED式は、ビューに何が表示されているかに関係なく、 指定したディメンションの粒度で計算を固定します。 「ビューがどう変わっても、この粒度で必ずこの集計をする」という宣言です。

FIXED式の構文

{ FIXED [ディメンション] : SUM([メジャー]) }

複数のディメンションをカンマで区切って指定できます。

{ FIXED [地域], [カテゴリ] : SUM([売上]) }

具体的な使用例

顧客ごとの初回注文日を全行に付与する場合、 ビューの粒度が注文レベルでも顧客レベルでも関係なく、常に顧客単位の最小日付を返します。

{ FIXED [顧客ID] : MIN([注文日]) }

顧客単価(顧客ごとの平均注文金額)をカテゴリ別に比較したい場合は、 まずFIXED式で顧客単位の平均を計算してから、カテゴリ別に集計します。 これがPassDojo Tableau実践入門 Step34の課題です。

{ FIXED [顧客ID] : AVG([売上]) }

ディメンションを省略すると、データソース全体の集計値を1つ返します。 全体売上に対する構成比を求めるときに使います。

{ FIXED : SUM([売上]) }

INCLUDE式 ― ビューの粒度にさらに追加する

基本的な考え方

INCLUDE式は、ビューの粒度にさらにディメンションを追加して計算します。 「ビューの粒度+指定したディメンション」の組み合わせで集計するイメージです。 ビューよりも細かい粒度で計算したいときに使います。

INCLUDE式の構文

{ INCLUDE [ディメンション] : SUM([メジャー]) }

具体的な使用例

ビューにはカテゴリだけを表示しているが、サブカテゴリ単位の平均売上をカテゴリレベルで見たいとします。 INCLUDEを使うと、ビューの「カテゴリ」の粒度に「サブカテゴリ」を追加し、 サブカテゴリ単位の売上合計を求めてから、それをカテゴリ単位で平均化できます。

{ INCLUDE [サブカテゴリ] : SUM([売上]) }

ビューに「カテゴリ」と「セグメント」があるとき、 さらに「顧客ID」を含めた粒度での集計もINCLUDEで実現できます。 Step35では、カテゴリ×セグメントのクロス集計でセグメント別客単価を比較します。

{ INCLUDE [セグメント] : AVG([売上]) }

INCLUDEは「今のビューよりも細かく見たい」状況で活躍します。 ビューの粒度が変わると計算結果も変わる点がFIXEDとの大きな違いです。

EXCLUDE式 ― ビューの粒度からディメンションを除く

基本的な考え方

EXCLUDE式は、ビューの粒度から特定のディメンションを除外して計算します。 「ビューには細かい粒度が表示されているが、一部をまとめた集計値も同時に見たい」 という場面で使います。INCLUDEとは逆の操作です。

EXCLUDE式の構文

{ EXCLUDE [ディメンション] : SUM([メジャー]) }

具体的な使用例

ビューに「月」が含まれているが、年単位の合計売上を各行に表示したい場合、 「月」をEXCLUDEすることで年単位の集計が得られます。 各月の行に年計が付くので、年内構成比の計算に応用できます。

{ EXCLUDE [月] : SUM([売上]) }

Step36では「サブカテゴリ」をEXCLUDEしてカテゴリ単位の合計を求め、 サブカテゴリごとのカテゴリ内構成比を計算します。 まずカテゴリ合計をEXCLUDE式で求め、次にその値で各サブカテゴリの売上を割ります。

{ EXCLUDE [サブカテゴリ] : SUM([売上]) }

EXCLUDEはビューに存在するディメンションしか除外できません。 ビューにないディメンションをEXCLUDEしようとするとエラーになります。

3種の使い分け早見表

LOD式の3種は「ビューの粒度との関係」で整理すると理解しやすくなります。

種類粒度の操作ビューへの依存典型的なユースケース
FIXED指定した粒度に固定しない(フィルター除く)初回注文日・顧客単価・全体比率
INCLUDEビュー粒度 + 追加する(ビュー粒度に依存)ビューより細かい粒度の平均・小計
EXCLUDEビュー粒度 − 除去する(ビュー粒度に依存)月ビューに年計を付与・構成比分母

判断のコツは「ビューの粒度と独立した計算が必要か」を先に確認することです。 独立が必要ならFIXED、ビューに依存しつつ細かくしたいならINCLUDE、 ビューに依存しつつ荒くしたいならEXCLUDEと覚えると迷いにくくなります。

よくある失敗パターンと対処法

失敗1: FIXEDがフィルターで絞られてしまう

FIXED式はディメンションフィルターより先に評価されます。 しかし「通常フィルター」で絞った後にFIXED式を使うと、 フィルター適用前のデータ全体に対してFIXED計算が走ります。 これは意図した動作のこともありますが、「フィルター後の全体比率」を求めたい場合に問題になります。

解決策はコンテキストフィルターの活用です。 フィルターを右クリックして「コンテキストに追加」すると、 そのフィルターはLOD式よりも先に評価されるようになります。 これにより「フィルター後の集計に対してFIXED」が実現できます。

フィルターとLOD式の処理順序

コンテキストフィルター → FIXED式 → ディメンションフィルター → INCLUDE/EXCLUDE式 → 表計算

失敗2: INCLUDEとEXCLUDEを混同する

「細かくしたいのにEXCLUDE」「荒くしたいのにINCLUDE」という混同がよく起きます。 混乱したときは「ビューに対して追加(Include = 含める)か、除去(Exclude = 除く)か」 を言葉の意味から思い出すと整理できます。

また、INCLUDEとEXCLUDEはビューの粒度に依存するため、 ビューに表示するディメンションが変わると計算結果も変わります。 ダッシュボードでビューが変動する場合は特に注意が必要です。

失敗3: 集計と非集計の混在エラー

LOD式の中で集計関数と非集計フィールドを混在させると、 「Cannot mix aggregate and non-aggregate comparisons or results in 'if' expressions」 というエラーが発生します。

LOD式自体はすでに集計された値を返すため、 外側でさらにSUMなどで囲むと二重集計エラーになることがあります。 ATTR()を使うと集計コンテキストに合わせて値を返せるため、構成比の分母などに役立ちます。 Step36の「構成比 = SUM([売上]) / ATTR([カテゴリ合計])」はこの典型例です。

DA試験でのLOD式出題傾向

Tableau Certified Data Analyst(DA)試験では、LOD式に関する問題が複数出題されます。 出題パターンとしては以下が典型的です。

  • 計算式の読み解き問題:与えられたLOD式が何を計算するかを問う。FIXEDの粒度の特定、 INCLUDEが加えるディメンション、EXCLUDEが除くディメンションを正確に読む力が問われる。
  • ユースケース選択問題:「顧客ごとの初回注文日を求めたい」などのシナリオに対して、 FIXED・INCLUDE・EXCLUDEのどれを使うべきかを選ぶ。
  • フィルター優先順位問題:コンテキストフィルターとFIXED式の処理順序を問うものや、 ビューのフィルターがLOD式の結果に影響するかを問うもの。
  • エラー原因の特定:集計と非集計の混在エラー、EXCLUDEでビューにないディメンションを除外しようとするエラーなど。

DA試験では単に構文を覚えるだけでなく、「どのシナリオでどのLOD式を選ぶか」という 判断力が問われます。Tableau実践入門で実際に手を動かして体験することが、 概念の定着に最も効果的です。

PassDojo Tableau実践入門で実践しよう

LOD式の理解を深めるには、実際にTableauを操作して体験することが不可欠です。 PassDojo Tableau実践入門の四段(Step31〜40)には、LOD式に特化した3つのステップが用意されています。

  • Step34 — LOD FIXED: 顧客単価を全行に付与
    { FIXED [顧客ID]: AVG([売上]) } でカテゴリ別の平均顧客単価を棒グラフで表示。 FIXEDの「ビューに関わらず固定した粒度で計算する」感覚を掴めます。
  • Step35 — LOD INCLUDE: セグメント別客単価
    { INCLUDE [セグメント]: AVG([売上]) } でカテゴリ×セグメントのクロス集計を作成。 INCLUDEがビュー粒度にどう加算されるかを実感できます。
  • Step36 — LOD EXCLUDE: カテゴリ内構成比
    { EXCLUDE [サブカテゴリ]: SUM([売上]) } でカテゴリ合計を求め、構成比を算出。 EXCLUDEで粒度を「粗くする」操作を体で覚えられます。

Tableau実践入門四段でLOD式を実践する

Step34(FIXED)・Step35(INCLUDE)・Step36(EXCLUDE)の3ステップで、 LOD式の3種を体系的に練習できます。採点フィードバックで理解度をすぐに確認。

Step34(FIXED)に挑戦Step35(INCLUDE)に挑戦Step36(EXCLUDE)に挑戦

DA模擬試験でアウトプットを試す

LOD式の理解を確認したら、実際の試験形式でアウトプットを試しましょう。 PassDojoのDA模擬試験ではLOD式に関する問題も出題されます。

DA模擬試験を解く料金プランを見る

Tableau入門学習でビューの粒度を基礎から理解する

LOD式を深く理解するには、ビューの粒度・ディメンション・メジャーの 基礎概念が土台になります。入門学習コンテンツで基礎を固めましょう。

Tableau入門を学ぶTableau実践入門を始める

あわせて読みたい

※ 本記事はTableau Certified Data Analyst試験の学習を支援する目的で作成しています。 LOD式の仕様や試験の最新情報はSalesforce(Tableau)の公式ドキュメントをご確認ください。 Tableau実践入門のStep34〜36はプレミアムプランが必要です。

無料会員登録で学習履歴を保存

模擬試験の結果や入門学習の進捗を保存し、苦手分野を継続して把握できます。

無料会員登録(30秒)ログイン