Вычисляемые поля в Tableau: четыре типа и как их отличить
Редактор вычислений для всех выглядит одинаково, и в этом проблема. Четыре вида вычислений, один диалог, и единственный способ определить, какой из них вы написали, — это знать, что делают его части.
Что вы делаете: определите уровень детализации, прежде чем печатать. По строке, по метке, по названному зерну или по всей готовой таблице.
Краткая версия. Вопрос всегда в том, на каком уровне это происходит.
1. Уровень строки
Выполняется один раз для каждой строки базовых данных перед любой группировкой.
[Profit] / [Sales]
IF [Status] = "Cancelled" THEN 0 ELSE [Amount] END
DATEDIFF('day', [Ordered], [Shipped])
Используйте их для классификации и очистки: столбец флажков, полоса, разница между двумя датами в одной строке. Они ведут себя как новый столбец в источнике, и Tableau соберет их для вас, когда они окажутся на полке.
Ловушка: AVG([Profit]/[Sales]) усредняет соотношения по строкам. В строках очень разных размеров это не размер прибыли, а среднее значение прибыли, и оно может отличаться на несколько пунктов от реального ответа.
2. Агрегат
Запускается один раз для каждой метки, после того как Tableau сгруппировала все, что находится в представлении.
SUM([Profit]) / SUM([Sales])
COUNTD([Customer])
MIN([Order Date])
Здесь самое главное соотношение. SUM([Profit])/SUM([Sales]) — это истинная маржа на каждом уровне агрегации, и она корректно пересчитывается при изменении содержимого представления.
SUM, MIN или ATTR. ATTR является честным для текста: он возвращает значение, если оно одинаковое для каждой строки метки, и звездочку, если это не так, что является информацией, а не предположением.3. Уровень детализации выражений
Вычисляется с указанной вами степенью дробности, в фигурных скобках, независимо от представления.
| Ключевое слово | Означает | Типичное использование |
|---|---|---|
FIXED | Это уровень детализации, игнорируя взгляд | Общее количество клиентов показано на диаграмме регионов |
INCLUDE | Зернистость вида плюс эти размеры | Средняя сумма по каждому клиенту |
EXCLUDE | Зернистость вида минус эти размеры | Процент от общего числа, игнорирующий одно измерение |
{FIXED [Customer]: SUM([Sales])}
{INCLUDE [Customer]: SUM([Sales])}
{EXCLUDE [Region]: SUM([Sales])}
Классическое использование — это когорта или дата первого заказа: {FIXED [Customer]: MIN([Order Date])} дает каждой строке дату первого заказа клиента, что является основой любого представления об удержании.
FIXED выполняется перед фильтрами измерений, что является наиболее распространенным сюрпризом в Таблица. Если отфильтрованное представление показывает нефильтрованный знаменатель, поместите фильтр в контекст. Эта последовательность изложена в Порядок операций.
4. Табличные расчеты
Запускаем последним, на таблицу результатов представление уже выдало.
RUNNING_SUM(SUM([Sales]))
INDEX()
SUM([Sales]) / TOTAL(SUM([Sales]))
LOOKUP(SUM([Sales]), -1)
Поскольку они работают с таблицей результатов, они зависят от того, как она расположена, что и контролирует использование вычислений. Измените представление, и расчет таблицы может изменить значение без вашего редактирования. Это имущество покрыто таблица расчетов.
Выбор между ними
| Ты хочешь | добрый | Пример |
|---|---|---|
| Флаг или полоса в каждом ряду | Уровень строки | IF [Days] > 30 THEN "Late" ELSE "On time" END |
| Соотношение на любом уровне | совокупность | SUM([Profit])/SUM([Sales]) |
| Дата первого заказа каждого клиента | FIXED | {FIXED [Customer]: MIN([Order Date])} |
| Рейтинг в представлении | Табличный расчет | RANK(SUM([Sales])) |
| Отличие от прошлого месяца | Табличный расчет | ZN(SUM([Sales]) - LOOKUP(SUM([Sales]), -1)) |
| Средний размер заказа на одного клиента | INCLUDE | AVG({INCLUDE [Customer]: SUM([Sales])}) |
Привычки, которые делают вычисления удобными
- Назовите их по тому, что они означают, не за то, что они делают.
Margin, нетCalc1и неSUM Profit over SUM Sales. - Оставьте комментарий вверху с
//. Две строчки о том, на каком зерне он работает и почему следующему человеку экономится час. - Стройте поэтапно. Три небольших вычисления с именами превосходят одно длинное вложенное, и каждое из них можно перенести на лист и проверить.
- Сверяйте каждый расчет с известным вам числом, на двух разных уровнях агрегации. Многие ошибки в расчетах верны на одном уровне и ошибочны на другом.
- Использовать
ZNвокруг всего, что может быть нулевым в арифметической цепочке, или один пропущенный месяц незаметно опустошает текущий итог.
Как применить это в своей работе
- Откройте книгу, которую вы унаследовали, и отнесите каждое вычисляемое поле к одному из четырех типов.
- Найдите любой
AVGотношения на уровне строки и сравнить его сSUMнадSUMверсия. Обратите внимание на пробел. - Проверяйте каждый
FIXEDпротив фильтров, которые должны на него повлиять. - Добавьте комментарий в две строки к пяти наиболее часто используемым вычислениям.
- Проверьте одно вычисление на уровне строки и еще раз на уровне итога. Согласие в обоих случаях является проверкой.
Единственная привычка, которую нужно сохранить
Прежде чем печатать, произнесите вслух зернистость: для каждой строки, для каждой марки, для каждого клиента или по всей таблице. Каждый вопрос расчета Tableau — это вопрос в разной одежде.
На какие вычисления вы больше всего полагаетесь и учитывают ли они ваши фильтры?
Таблица для аналитиков это 110 страниц о том, как на самом деле думает Tableau: измерения против мер, отношения против объединений, наборы и уровень детализации. Достаточно того, что вы перестанете перетаскивать поля, пока все не станет выглядеть правильно.
Таблица для аналитиков, $19 →таблица расчетов подробно охватывает четвертый вид, и Порядок операций объясняет, когда каждый из них работает.
Читать Табличные расчеты →