2-4. Динамические модификаторы множеств

Создадим новый лист, а на нем таблицу:

  • С измерением Категория
  • С мерой sum({<[OrderDate.autoCalendar.Year]={2021}>}Sales)

Представим, что нам нужно сделать формулу для подсчета суммы продаж текущего года. И никаких флагов типа YearsAgo в модели нет. Доступ в скрипт загрузки нам заблокировал админ.

Как быть? Мы же явно не хотим каждый новый год заходит в приложение и перебивать годы с 2021 на 2022 и т.д. Давайте разбираться.

Во-первых, мы легко можем написать выражение, которое будет определять текущий год автоматически. Т.е. Year(Today()). Но если мы подставим эту формулу на место 2021, то проверка выражения выдаст нам ошибку:

Даже если бы ошибки не было (например, если бы мы взяли формулу в одинарные кавычки), то нужный результат мы не получили: Qlik искал бы в поле Year текст Year(Today()), и очевидно, его там не находил бы.

Поэтому, мы воспользуемся конструкцией $(=). Она подставляет на место любого выражения, помещенного внутрь нее, результат вычисления этого выражения.

Если вы все напишете правильно, то в предпросмотре на месте формулы будет виден результат ее вычисления, и именно в таком виде Qlik Будет принимать выражение для дальнейшей обработки.

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

Синтаксис поиска в модификаторах множеств

Если в модификаторе множеств взять значения в двойные кавычки, то можно использовать синтаксис поиска, как в фильтрах. А это значит, что можно использовать, например, знаки подмены символов вроде *.

Данное выражение вернет сумму продаж по всем категориям, которые заканчиваются на слово «обувь». Т.к. знак * заменяет произвольное кол-во символов в начале фразы.

Также, по полям с числовыми значениями можно использовать знаки <=>, для поиска по диапазону. Если поле содержит дату, то можно указывать дату в формате, использующемся в поле.

Границы диапазонов можно ограничивать с 2-х сторон, например [Бюджет]={«>=2000<1000»}.

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

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

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

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

Скачать приложение занятия

Заключение

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

Вы изучили основы, и теперь можете скачать учебное приложение с расщиренными примерами анализа множеств.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.