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

Рабочая ситуация

Задача стояла такая - вывести количество запросов от пользователей в поддержку с разбивкой по версии приложения.

Легко! Но оказалось, что количество версий приложений около 56 и на графике это может выглядеть ужасно.

Поэтому появилась мысль, а можно ли выводить, например 10 версий с самым большим количеством запросов, а при необходимости «развернуть» график.

К сожалению, данный фунционал не представлен явным образом в Tableau.

пример плохо читаемого графика
пример плохо читаемого графика

Ликбез

Для создания желаемого фильтра нам потребуются такие сущности как: параметры и множества

Параметры (Parameter) это динамические значения, которые вводит сам пользователь и которые могут затем использоваться в расчетах, фильтрах и элементах контекста. 

Множества (Set) это настраиваемые поля с подмножеством данных. Какие значения полей попадают в сет, а какие исключаются из него определяется логическими условиями или просто ручным выбором.

Инструкция. Step by step

1) Создаем параметр. Я его назвал "Choose top N".

2) Создаем множество, которое зависит от параметра.

Выбираем поле по которому нужна агрегация, в моем случае это appversion. При создании множества выбираем вкладку Top и ставим в ячейке by fied выбираем ранее созданный параметр. Это множество назвал "Top N".

3) Создаем множество, состоящее из всех элементов.

Аналогично 2-му пункту создаем множество, но которое будет состоять из всех элементов. Так его и назовем "ALL".

4) Создаем параметр, который позволяет выбирать TOP N or select ALL.

Аналогично 1-му пункту начинаем создавать параметр. Однако в пункте Allowable values выбираем list, где прописываем значения "top" и "select all". Значения этого параметра будут выводиться в нашем фильтре.

5) Пишем формулу.

Нам нужна формула, которая позволяет выбирать используя значения фильтра нужное ранее созданное множество. Оставляю ее дефолтное название Calculation

Логика такая - Если параметр top n or select all принимает значение top, то используем множество Top N, иначе ALL.

Hidden text
IF [top n or select all] = 'top' then [Top N]
ELSE [ALL]
END

6) Последние шаги.

Теперь осталось все выше созданные сущности вывести на экран, чтобы они работали по задуманной нами логике.

Добавляем формулу Calculation в раздел фильтр с флагом "TRUE".

Для параметров "Choose top N" и "top n or select all" ставим флаг Show parameters. Как итог наши параметры появятся в правой части экрана.

Теперь можно динамическим образом выбирать количество элементов в топе и при необходимости можно выбрать все элементы сразу.

Пример фильтра
Пример фильтра

Поздравляю, фильтр готов!

Если есть вопросы, то пишите в комментариях.

Также Вам возможно будет интересна статья Как подружить ClickHouse и Power Bi
Связаться со мной @polozovs

Комментарии (0)