ДЕНЬ 05

Про пользовательские вычисления
Вчера мы познакомились с фильтрацией — для быстрой и легкой работы с данными и их подмножествами.

СЕГОДНЯ

Вот тема, в которую можно погружаться не один десяток дней. Она будет отзываться эхом все остальные дни марафона. Так что начинаем учить функции, смотреть описания их использования и делать закладки. Некоторые функции нужны чаще, другие реже. Выбирайте и пользуйтесь с удовольствием!

На нашем маршруте — пользовательские вычисления, функции, вычисляемые поля и другие вкусности датасаентистов. Ныряем!
функции Tableau
Про цели: Вы тут, товарищ сержант, не для того, чтобы складывать и умножать, а чтобы отнимать и делить...

РАЗБИРАЕМСЯ

В том, как создавать свои вычисления и разбираться в чужих

Зачем вычислять

Если ваши исходные данные не включают в себя все поля, которые вам необходимы для визуального анализа, вы можете создать новые поля самостоятельно. Новые вычисления создаются на основе имеющихся полей, а затем сохраняются как часть источника данных.

Например, если у вас в источнике есть поля Продажа и Себестоимость, то вы можете создать новое вычисляемое поле под названием Прибыль, которая вычисляет разницу между ними. Вы создаете вычисляемые поля в Tableau, определив формулу, используя стандартные функции, параметры, арифметические действия и операторы.

Функции

В Tableau встроено большое количество функций и операторов на все случаи жизни. Чтобы было проще ориентироваться, их удобно разбить на группы по задачам, которые они решают:

  • числовые функции;
  • строковые функции;
  • функции даты;
  • функции изменения типа данных;
  • логические функции;
  • функции агрегации;
  • функции RAWSQL.
функции Tableau
функции Tableau
Есть несколько способов начать использовать функции.

Один из них — это выбрать Создать вычисляемое поле (Create calculated field) в области настройки панели данных.

Другой — это выбрать поле, на основе которого вы хотите создать вычисляемое поле, выделить его в панели данных, нажать правой кнопкой мыши и выбрать Создать вычисляемое поле (Create calculated field).

Третий — это выбрать Анализ (Analysis) в верхнем меню, а затем Создать вычисляемое поле (Create Calculated Field…) в предложенном списке. Или просто кликните правой кнопкой мыши на поле источника данных и выберите Создать вычисляемое поле (Create Calculated Field…).

Кстати, в окне с вычисляемым полем есть справка обо всех функциях — с синтаксисом, описанием и примером.

Числовые функции

Числовые функции позволяют выполнять операции с числовыми данными. Они похожи на функции калькулятора, но иногда требуют другого синтаксиса. В Tableau точно так же можно складывать, отнимать, умножать и делить числа с помощью операторов:

+ 
- 
* 
/. 
Записываются операторы как на калькуляторе. Например: 12*5+2.  
Здесь действуют все те же правила приоритета операций: сначала будет выполнено умножение, а затем сложение. Чтобы это изменить, нужны скобки. Например: 15*(5+2).
Tableau может работать с обычными числами, как в рассмотренном примере. Но чаще всего данные представлены в виде таблицы, и операции нужно выполнять построчно: из каждого значения поля Продажа вычесть значение поля Себестоимость. Тогда вместо конкретного числа записывается название поля:

[Продажа] — [Себестоимость] 
Результатом станет еще одно поле, в котором в каждой строке будут результаты вычисления.
Кроме простых арифметических операторов в Tableau встроены и более сложные числовые функции. Синтаксис вычислений с использованием функций немного отличается от арифметических операций. Сначала записывается название функции, для округления чисел, например, используется ROUND. Затем в скобках записываются числа или поля, над которыми производятся операции (их называют аргументы) и необходимые для этого параметры. В нашем случае будем округлять поле [Продажа].


Составим функцию:

ROUND([Продажа], 2). 
Здесь мы в скобках записали два аргумента: поле, над которым производится вычисление и через запятую параметр, показывающий до какого количества знаков после запятой необходимо округлять.

Функции логики

Логические вычисления позволяют определить, является условие истинным (True) или ложным (False). Результат логического вычисления ограничен этими двумя значениями (True/False).
Например, вы можете быстро узнать, кто из клиентов совершал покупки на сумму выше определенного значения при помощи операторов сравнения:

= 
равенство 

!= 
неравенство 

>, >= 
больше, больше или равно 

<, <= 
меньше, меньше или равно
Функция [Прибыль] > 5 примет значение True для строк, удовлетворяющих данному условию, для остальных строк значение будет False.

Комбинировать логические функции можно при помощи логических операторов:

AND	
и 
OR	
	
или 
NOT
Например, чтобы выбрать значения поля от 10 до 20 можно использовать сравнения, объединенные оператором AND:

[Прибыль] > 10 AND [Прибыль] < 20
При этом значения True примут те строки, в которых будут одновременно выполняться оба условия.
В Tableau встроены и более сложные логические функции
и операторы. Особенно часто используются операторы ветвления, поэтому рассмотрим их подробно.

CASE … WHEN … THEN … END
и
IF … THEN … ELSE(ELSEIF … THEN) … END.
С помощью оператора ветвления CASE можно проверять значение какого-либо поля или функции. При его соответствии определяемым критериям — выполнять необходимые операции.

Например, будем проверять значения поля [Регион]:

CASE [Регион]
Теперь запишем критерии для присвоения регионам цветов:

WHEN «Европа» THEN «Красный» 
WHEN «Америка» THEN «Зеленый» 
WHEN «Азия» THEN «Синий» 

Каждое ветвление обязательно заканчивается словом end 
END 

Более сложную структуру можно построить с использованием оператора IF. Для примера построим ветвление, базируясь на поле [Прибыль].

IF [Прибыль] > 100 THEN «Очень хорошо» 
Здесь мы можем не продолжать, а завершить ветвление с помощью END. Тогда во всех случаях, удовлетворяющих условию, в строках появится значение «Очень хорошо», а в остальных случаях никакого значения не будет, то есть мы увидим Null. Но если мы хотим обработать еще часть значений поля [Прибыль], это можно сделать при помощи ELSEIF.

ELSEIF [Прибыль] > 0 THEN «Хорошо» 

Выполняется наша функция последовательно, поэтому вначале будут выделены значения больше 100, которым соответствует первая ветвь, потом оставшиеся значения будут проверяться по следующим ветвям, которых может быть достаточно много. И если значение строки не удовлетворяет ни одному условию, то результатом будет Null.

Но если мы предполагаем, что все оставшиеся строки, не удовлетворяющие ни одному условию, должны принять определенное значение, можно использовать ELSE и закрыть ветвление с помощью END.

ELSE «Плохо» END 
Таким образом, всем значениям более 100 будет приписана категория Очень хорошо, всем оставшимся более 0 — категория Хорошо, и всем остальным (остаются только отрицательные) — категория Плохо.

Коротким вариантом цикла c помощью IF является функция IIF(), которая проверяет только одно условие и может обрабатывать значения Null.
Например:

IIF([Прибыль] > 0, «Хорошо», «Плохо», «Неизвестно») 

Другие логические функции

Функции для работы с текстом

Функции для работы с текстом могут быть полезны для выделения нужной части текста, унифицирования, группировки значений, исправления опечаток, сцепки нескольких категорий.

Функции для работы с датами

Date Part
В большинстве функций для работы с датами нужно прописывать необходимый уровень иерархии времени — date part. Ниже приведено описание всех возможных значений date part с примерами.

Агрегирующие функции

СОВЕТ

Добавляйте комментарии в сложных вычислениях, используя двойной слеш //. Это поможет и вам, и вашим коллегам, если они будут разбираться в ваших вычислениях позже.

Например: SUM([Profit]) // Здесь рассчитана сумма прибыли

Больше о функциях
Онлайн справочник Tableau

ПРАКТИКУЕМСЯ

В Tableau больше 140 различных функций, способных превратить ординарный датасет в интересный источник данных с вычислениями и агрегациями.

Часто вопрос, где делать агрегацию — в базе данных или в Tableau — заставляет Data Base Architect и Tableau дизайнера вести жаркие споры. Практика показывает: часто побеждает performance!
функции Tableau

Функции...

это надо принять!

Итак, к практике

Вынырнем из теории функций и займемся практикой. Изучаем кино. В датасете представлена информация об актерах и фильмах, в которых они снимались.
Задание
  1. Сколько актеров с фамилией Travolta есть в списке? Назовите их.
  2. Наименование кого из актеров содержит наибольшее количество символов?
  3. Выведите значение, показывающее разность среднего рейтинга фильмов, в которых снималась актриса Audrey Hepburn и среднего рейтинга фильмов, в которых снималась Nicole Kidman.
  4. Рассчитайте, сколько лет прошло между первым и последним фильмами, в которых снимался Leonardo DiCaprio.
  5. Постройте бар-чарт, разделенный на три категории: фильмы с рейтингом более 8, рейтингом от 6 до 8 и с рейтингом менее 6. Столбцы бар-чарта должны отражать количество фильмов.

Скачать задание в виде книжки Tableau
Решение задания предыдущего дня

ВДОХНОВЕНИЕ

Полезные ссылки по теме

Продолжаем знакомить с лучшими ресурсами по изучению Tableau. А также собираем материалы, которые помогают взглянуть на визуализацию данных с разных сторон.

Блог Ken Flerlage

Немного серьезности про аналитическую архитектуру

Data-Saurus-Rex от David Murphy

Бомбический ресурс с примерами визов и объяснением многих проблемных концепций

Sir Viz-a-Lot от Matt Chambers

Не густо, но и не пусто

Видео

Сегодня вместе с Аароном мы посмотрим на разные аспекты визуализации жизни человека. Выходя за рамки привычных графиков и диаграмм мы можем находить множество идей для решения собственных задач. Вдохновляемся.
Визуализируем себя
Visualizaing ourselves by Aaron Koblin

Итоги этапа

Мы познакомились с бесконечно обсуждаемой среди пользователей Tableau темой, и каждый сделал для себя выводы. Как бы сложно ни было, освоить вычисления обязательно для любого аналитика. Так что хватит плакать — в помощь вам большая база знаний Tableau. При определенной сноровке отсюда можно быстро вытаскивать практически любые решения, уже разобранные и описанные, и подходящие под ваш кейс. До встречи на следующем дне, где вас ждет еще один must have — табличные вычисления. Виз-виз урра!

Бежим Марафон в команде!

С менторством и в компании единомышленников.
Нажимая кнопку, вы соглашаетесь на обработку персональных данных. Мы используем их, чтобы оставаться на связи. Подробнее здесь.