
Tableauを学んでいると、「LOD表現」という言葉を目にします。そして、多くの方が一度はつまずくテーマだと思います。
正直に言うと、私も最初はFIXED / INCLUDE / EXCLUDEの使い分けがよく分からず、「とりあえずFIXEDを書いてみる」という状態が続いていました。式の見た目は分かっていても、使い分けのイメージがなかなかつかめていなかったのです。
LOD表現を理解するうえで本当に大事なのは、「どの粒度で集計したいのか」を言葉にすることです。
この記事では、式の構造よりも、「粒度という考え方」でLOD表現を整理することを目的としています。FIXED / INCLUDE / EXCLUDEを「こういう視点で見ると整理しやすい」という考え方を書いていきます。
そもそもLOD表現とは
LODとは、Level of Detail の略で、日本語にすると「詳細レベル」や「粒度」を意味します。
種類として、FIXED・INCLUDE・EXCLUDEの3つがあります。違いは後述します。
Tableauでは、ビュー(画面)にどのディメンションを置くかによって、集計の粒度が変わります。たとえば、「地域」を置けば地域単位、「顧客名」を置けば顧客単位でそれぞれ集計が行われます。
LOD表現は、このビューの見た目とは別に、「計算したい粒度」を自分で指定できる表現です。
たとえば、次のような式があります。
{ FIXED [顧客名] : SUM([売上]) }これは、「顧客名という単位で、売上を合計して計算して」という意味です。ビューに何を置いているかに関係なく、顧客単位の売上を計算できます。
ここで押さえておきたいのは「LOD表現とは、Tableauに計算する粒度を伝えるためのもの」という点です。
「ビューの粒度」と「計算したい粒度」を分けて考える
LOD表現を考えるときは、次の2つを分けて整理することから始めると、どのLOD表現を使うべきかが判断しやすくなります。
ビューの粒度:画面上で、今どの単位で表示されているか
計算したい粒度:本当はどの単位で集計・比較したいか
この2つが同じであれば、LOD表現を使わなくてもよい場合があります。ビューの粒度のままで必要な計算ができるからです。
LOD表現が必要になりやすいのは、この2つがズレているときです。具体的には、次のような状況が当てはまります。
画面に何を置いていても、常に顧客単位の値を固定して使いたい
→FIXEDを使う必要あり画面では地域別に見ているが、計算は顧客単位でしたい
→INCLUDEを使う必要あり画面ではカテゴリ別に見ているが、計算ではカテゴリを外した全体の売上を使いたい
→EXCLUDEを使う必要あり
このように、ビューの粒度と計算したい粒度の関係を整理すると、FIXED / INCLUDE / EXCLUDEの使い分けが考えやすくなります。
「粒度」と「フィルターの効き方」で見分ける
LOD表現であるFIXED・INCLUDE・EXCLUDEの違いは、次のような「ビューの粒度とどのような関係にあるか」の違いです。
FIXED:ビューとは関係なく、指定した粒度で固定して計算する
INCLUDE:ビューの粒度に、指定した粒度を加えて、より細かく計算する
EXCLUDE:ビューにある粒度の一部を外して、より粗く計算する
もうひとつ、知っておきたい違いとして「ディメンションフィルターとの関係」があります。FIXEDはディメンションフィルターよりも前に計算が行われるため、フィルターをかけても結果に反映されません。一方、INCLUDEとEXCLUDEはディメンションフィルターの後に考慮されるため、フィルターの影響を受けるという違いがあります。

フィルターの順序についてはこの記事では深掘りしないので、「FIXEDはフィルターとの相性に注意が必要」という点を頭の片隅に置いておいてください。
この後から、Tableauから出ているサンプルスーパーストアのデータを使って、実際に式を作ってみます。理解を深めるために、自分で実際に操作するのがおすすめなので、ぜひダウンロードしてみてください。
FIXEDは「この単位で固定して計算したい」ときに使う
FIXEDは、ビューに何を置いていても、指定したディメンションの単位で計算するLOD表現です。「画面上の表示とは別に、この単位で固定して計算したい」ときに使います。
たとえば、注文一覧を見ながら、その注文をした顧客の初回購入日も確認したい場合を考えます。
このとき、画面にはあくまで注文ごとの結果を表示したいです。注文ID・注文日・売上を置いているため、ビューの粒度は「注文単位」です。
ただし、その注文をした顧客が「新規顧客」なのか、「既存顧客」なのかを知るには、注文単位ではなく、顧客単位で最も古い注文日(=初回購入日)を出す必要があります。そこで、次のような式を作ります。
{ FIXED [顧客ID] : MIN([注文日]) }これは、「顧客IDごとに、最も古い注文日を出す」という意味です。
注文IDを表示しているビューであれば、画面上は注文単位のままでも、計算の中では「顧客IDごと」の粒度で初回購入日を出しているイメージです。

たとえば、注文日と顧客の初回購入日が同じであれば、新規顧客だと分かります。一方で、注文日よりも顧客の初回購入日が前であれば、既存顧客の追加注文だと分かります。
つまりFIXEDは、ビューの見た目に関係なく、指定した単位で計算を固定したいときに使う表現です。
FIXEDには注意点があります。FIXEDはディメンションフィルターより前に計算されるため、フィルターで年を絞っても、顧客の初回購入日にはその絞り込みが反映されません。上の例で2026年フィルターをかけても、それより前の初回購入日がそのまま表示されるのはこのためです。
INCLUDEは「表示にはない細かい単位も、計算には含めたい」ときに使う
INCLUDEは、ビューに出している粒度に、指定したディメンションを加えて計算するLOD表現です。「画面には表示していない細かい単位も、計算の中では使いたい」ときに使います。
たとえば、地域別のビューで「地域ごとの顧客1人あたりの平均売上」を見たい場合を考えます。
このとき、画面にはあくまで地域別の結果を表示したいです。
ただし、顧客1人あたりの平均売上を出すには、計算の中では一度、顧客ごとの売上を出す必要があります。そこで、次のような式を作ります。
{ INCLUDE [顧客名] : SUM([売上]) }![地域別のビューに { INCLUDE [顧客名] : SUM([売上]) } の式を入れた画面](https://storage.googleapis.com/studio-design-asset-files/projects/d7Wlx1lnWV/s-1706x861_v-fms_webp_9cd53667-1d48-4d41-9254-0788baccea22.png)
これは、「今のビューの粒度に顧客名を加えて、顧客ごとの売上を計算する」という意味です。
地域別のビューであれば、画面上は地域別のままでも、計算の中では一度「地域 × 顧客名」の粒度まで細かく見ているイメージです。
ただし、この式をそのまま地域別のビューに置くと、地域ごとの売上合計と同じ値が表示されます。そのため、この時点では通常の売上との違いが分かりにくいかもしれません。これは、INCLUDEが不要という意味ではありません。
この式で作っているのは、「地域ごとの顧客1人あたりの平均売上」を出す前段階として必要な「顧客ごとの売上」です。これをAVG()で括ると、地域内の顧客1人あたりの平均売上が計算できます。
AVG({ INCLUDE [顧客名] : SUM([売上]) })
つまりINCLUDEは、ビューには出していない細かい粒度を、計算の中だけで加えたいときに使う表現です。
EXCLUDEは「表示にある切り口を、計算では外したい」ときに使う
EXCLUDEは、ビューに置いているディメンションの一部を、計算上だけ取り除くLOD表現です。「画面ではその切り口を見せたいが、計算ではその切り口を外した値も使いたい」ときに使います。
たとえば、カテゴリ別の売上を見ているビューで、「各カテゴリの売上が、全体売上の何%を占めているか」を見たい場合を考えます。
このとき、画面にはカテゴリを表示したいです。見たいのは、家具・事務用品・テクノロジーなど、カテゴリごとの結果です。
ただし、構成比を出すには、カテゴリごとの売上だけでは足りません。分母として、カテゴリを外した全体売上が必要になります。そこで、次のような式を使います。
{ EXCLUDE [カテゴリ] : SUM([売上]) }![カテゴリ別のビューに { EXCLUDE [カテゴリ] : SUM([売上]) } を入れた画面](https://storage.googleapis.com/studio-design-asset-files/projects/d7Wlx1lnWV/s-1706x863_v-fms_webp_6a0afbc2-45d5-4cd9-919b-6cb4003502f1.png)
これは、「ビューではカテゴリ別に見ているが、計算ではカテゴリを外して売上を集計する」という意味です。
カテゴリ別のビューであれば、画面上はカテゴリ別のままでも、計算の中では一度カテゴリを外し、全体売上を見ているイメージです。
ただし、この式をカテゴリ別のビューに置くと、全体売上が各カテゴリの行に表示されます。そのため、この時点では何に役立つのか分かりにくいかもしれません。これは、EXCLUDEが不要という意味ではありません。
この式で作っているのは、「カテゴリごとの売上構成比」の前段階として必要な「カテゴリを外した全体売上」です。
今回の例では、カテゴリ別売上を、カテゴリを外した全体売上で割ると、カテゴリごとの売上構成比を出すことができます。
SUM([売上]) / ATTR({ EXCLUDE [カテゴリ] : SUM([売上]) })※ATTR関数は、対象となる各行に対して、1個の値を持つ場合はその値を返し、それ以外の場合はアスタリスク(*)を返す関数です。

つまりEXCLUDEは、ビューには出している切り口を、計算の中だけで外したいときに使う表現です。
FIXED / INCLUDE / EXCLUDEを判断するための問い
LOD表現を選ぶときは、最初から名前で選ぼうとせず、「ビューの粒度」と「計算したい粒度」の関係を先に確認することが大切です。
その判断の入り口として、次の問いを使ってみてください。
問い | 使うLOD |
|---|---|
ビューの見た目に関係なく、特定の単位で固定して計算したい | FIXED |
ビューには出していない、より細かい単位を計算に含めたい | INCLUDE |
ビューに出している切り口を、計算では外したい | EXCLUDE |
通常のディメンションフィルターの影響を受けるかどうかが重要 | FIXEDは特に注意 |
実務ではデータ構造によって結果が変わることもあるので、粒度の問いを出発点に、実際のビューで確認しながら使ってみてください。
試験勉強でも実務でも「粒度の言語化」が大事
Tableau Certified Data Analystなどの試験勉強では、LOD表現の構文や種類を一通り押さえる必要があります。ただ、実務で使うときに感じるのは、構文を知っているだけでは判断しきれない場面があるということです。
「何を、どの粒度で集計したいのか」を言葉にできないと、どのLOD表現を選ぶべきかが見えてきません。試験勉強や実務の中でTableauに触れてきて、LOD表現は式よりも先に粒度を考えることが大事だと感じました。
もしLOD表現を苦手に感じている場合は、式を書く前に、「何を、どの単位で計算したいのか」を整理することをおすすめします。それができると、FIXED / INCLUDE / EXCLUDEのどれが適切かが見えてきます。
まとめ:LODは「粒度の問い」から考える
LOD表現は、FIXED / INCLUDE / EXCLUDEという名前だけを見ると難しく感じます。でも、考える順番はシンプルです。
今のビューはどの粒度かを確認する
本当に計算したい粒度はどこかを考える
その粒度を固定したいなら → FIXED
ビューより細かい粒度を含めたいなら → INCLUDE
ビューにある切り口を外したいなら → EXCLUDE
LOD表現は、「どの粒度で集計したいか」を言葉にすることが大切です。式を書く前に粒度を整理できれば、LOD表現を使い分けられる状態になると感じています。
著者
名前:minoRi
Tableau Certified Data Analyst(2025年4月取得)。社内にサポートのない環境でTableauを独学で使い、実務でダッシュボード構築を経験。エンジニアではない立場から、実務で使えるデータ活用などの話を書いています。