Всем привет! В этой статье мы попробуем построить в 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