TableauLODBIаналитикадашборды

Tableau LOD: FIXED, INCLUDE, EXCLUDE на 6 практических примерах

2026-06-02 12 мин

«Объясни разницу между FIXED, INCLUDE и EXCLUDE» — это вопрос-фильтр на любом собесе Tableau-аналитика. Если путаешь, значит не делал ничего сложнее column chart. Если знаешь — можешь строить нетривиальные visualizations.

LOD (Level of Detail) — это expressions в Tableau, которые позволяют считать агрегаты на другом уровне детализации, чем уровень визуала. Звучит абстрактно — на примерах поймёшь сразу.


Что такое уровень детализации (LOD)

В Tableau любой визуал имеет уровень детализации (Viz LOD) — это набор измерений, которые ты положил в визуал.

Пример:

По умолчанию любая мера (SUM, AVG) считается на Viz LOD. Если ты хочешь посчитать что-то на другом уровне — нужны LOD expressions.


FIXED — фиксированный уровень

{ FIXED [Region] : SUM([Sales]) }

Считает SUM(Sales) для каждого Region — независимо от того, что в визуале.

Когда: % of total, ratio к фиксированной базе, когортный анализ.

Пример 1. % of region total

Хочешь показать долю category от total по region:

SUM([Sales]) / { FIXED [Region] : SUM([Sales]) }

В визуале с Region+Category → каждая bar показывает свою долю от total своего региона.

Пример 2. First Purchase Date per Customer

{ FIXED [Customer ID] : MIN([Order Date]) }

Используется для cohort анализа — определяет в какую когорту попал customer.


INCLUDE — добавить детализацию

{ INCLUDE [Subcategory] : AVG([Profit]) }

Считает AVG(Profit) на уровне Viz LOD плюс Subcategory — даже если Subcategory НЕ в визуале.

Когда: усреднение по более гранулярному уровню, чем визуал.

Пример 3. Average Subcategory Profit per Region

В визуале Region (без Subcategory). Хочешь показать средний profit по Subcategory:

{ INCLUDE [Subcategory] : AVG([Profit]) }

В визуале Region → для каждого региона видишь средний profit по subcategory'ям внутри. Если бы делал просто AVG(Profit), он бы считал на уровне Region (одно среднее), а не on average of subcategories.


EXCLUDE — убрать детализацию

{ EXCLUDE [Category] : SUM([Sales]) }

Считает SUM(Sales) без учёта Category — даже если Category в визуале.

Когда: "Sales вне Category", percent of region total в визуале с Category.

Пример 4. Sales per Region (independent from Category)

В визуале Region+Category. Хочешь показать total по Region (одинаковый для всех category в регионе):

{ EXCLUDE [Category] : SUM([Sales]) }

Получаешь Sum(Sales) на уровне Region — как если бы Category не было в визуале.


Разница FIXED / INCLUDE / EXCLUDE на одном примере

Допустим, визуал — Region+Category, мера Sales. Что считает каждое LOD:

ExpressionЧто считает
SUM(Sales)На уровне Region+Category (default)
{ FIXED [Region] : SUM([Sales]) }Только Region (плевать на Category в визуале)
{ INCLUDE [Customer] : SUM([Sales]) }Region+Category+Customer (более детально, чем визуал)
{ EXCLUDE [Category] : SUM([Sales]) }Только Region (как FIXED [Region], но проще писать)

FIXED vs EXCLUDE: оба дают одинаковый результат, но синтаксически разные. FIXED — указываешь что оставить. EXCLUDE — указываешь что убрать. Используй EXCLUDE когда хочешь убрать одно измерение из визуала, FIXED — когда хочешь зафиксировать на конкретном уровне.


Шаг 1: Определи Viz LOD

Что в Columns / Rows / Detail? Это и есть Viz LOD. Например: Region+Category.

Шаг 2: Определи нужный LOD

Если хочешь Total per Region — нужен LOD = [Region]. Если average по Subcategory — нужен LOD = [Region, Category, Subcategory].

Шаг 3: Выбери FIXED / INCLUDE / EXCLUDE

Шаг 4: Учитывай filter order

В Tableau filters применяются в порядке: Context filters → FIXED → Dimension filters → INCLUDE/EXCLUDE → Measure filters.

FIXED игнорирует обычные фильтры. Если хочешь чтобы FIXED уважал фильтр — сделай его context filter (или используй INCLUDE/EXCLUDE).

Пример 5. Когорт анализ с filter trick

First Order Date = { FIXED [Customer ID] : MIN([Order Date]) }

Если фильтр по Region — FIXED игнорирует, считает First Order для всех заказов. Это обычно правильно для когорт. Если хочешь только Moscow → сделай Region context filter.

Пример 6. Top-N customers per Region

INDEX() <= 5

-- В Table Calculation: Compute Using → Customer
-- Restart by → Region

Или через LOD + RANK:

{ FIXED [Region] : RANK_DENSE(SUM([Sales]), 'desc') }

Что НЕ делать (anti-patterns)

1. Не используй FIXED когда работает INCLUDE/EXCLUDE. FIXED игнорирует фильтры — это часто bug, а не feature. INCLUDE/EXCLUDE уважают фильтры.

2. Не пиши LOD внутри LOD. Tableau поддерживает, но performance падает. Лучше посчитать на уровне SQL/Prep и положить в data.

3. Не зацикливайся на LOD. Если можешь сделать через простую Quick Table Calculation (% of total, running total) — делай. LOD — для нестандартных вычислений.

4. Не комбинируй с table calcs без понимания order. Table calcs работают после LOD. Если результат странный — это часто issue фильтр / LOD / table calc order.


Частые вопросы

FIXED vs Context filter — что выбрать?

Если LOD должен реагировать на конкретные фильтры — сделай эти фильтры context filters (Right-click filter → "Add to Context"). FIXED будет учитывать их. Остальные фильтры игнорируются как обычно.

LOD замедляет дашборд?

Да, FIXED особенно — каждый LOD требует отдельного SQL-запроса. Если дашборд медленный — сделай LOD в data prep слое (Tableau Prep, dbt) и положи как обычные колонки.

Можно ли заменить LOD через Table Calculation?

Иногда да. Например, % of total через LOD vs SUM(Sales) / TOTAL(SUM(Sales)). Но table calcs работают на data в визуале, LOD — на data до фильтрации. Это разное.

Что значит [Region] = ATTR([Region]) в LOD?

Это hack для context-aware LOD. ATTR возвращает значение, если оно уникально в текущем контексте. Использовали раньше до появления INCLUDE/EXCLUDE. Сейчас редко нужно.

Как мигрировать LOD на Power BI DAX?

Принцип похож, синтаксис другой.


Связанные ресурсы

Источники

LOD — это сильный инструмент, но 80% дашбордов можно делать без них через простые agg + filters. Не усложняй ради усложнения. Хочешь практику без Tableau-лицензии? BI-песочница даст похожий опыт.

Тренируйся строить дашборды
В BI-песочнице — 161 задача с реальными датасетами. AI оценивает твой подход по 5 критериям как на собесе.
Открыть BI-песочницу →