Создадим новый лист, а на нем таблицу:
- С измерением Категория
- С мерой sum({<[OrderDate.autoCalendar.Year]={2021}>}Sales)
![](https://bi2business.ru/wp-content/uploads/2021/03/image-84.png)
Представим, что нам нужно сделать формулу для подсчета суммы продаж текущего года. И никаких флагов типа YearsAgo в модели нет. Доступ в скрипт загрузки нам заблокировал админ.
Как быть? Мы же явно не хотим каждый новый год заходит в приложение и перебивать годы с 2021 на 2022 и т.д. Давайте разбираться.
Во-первых, мы легко можем написать выражение, которое будет определять текущий год автоматически. Т.е. Year(Today()). Но если мы подставим эту формулу на место 2021, то проверка выражения выдаст нам ошибку:
![](https://bi2business.ru/wp-content/uploads/2021/03/image-85.png)
Даже если бы ошибки не было (например, если бы мы взяли формулу в одинарные кавычки), то нужный результат мы не получили: Qlik искал бы в поле Year текст Year(Today()), и очевидно, его там не находил бы.
Поэтому, мы воспользуемся конструкцией $(=). Она подставляет на место любого выражения, помещенного внутрь нее, результат вычисления этого выражения.
![](https://bi2business.ru/wp-content/uploads/2021/03/image-86.png)
Если вы все напишете правильно, то в предпросмотре на месте формулы будет виден результат ее вычисления, и именно в таком виде Qlik Будет принимать выражение для дальнейшей обработки.
Конечно же, мы легко можем доработать эту формулу, чтобы она показывала прошлый год. За счет вычитания единицы.
![](https://bi2business.ru/wp-content/uploads/2021/03/image-87.png)
Синтаксис поиска в модификаторах множеств
Если в модификаторе множеств взять значения в двойные кавычки, то можно использовать синтаксис поиска, как в фильтрах. А это значит, что можно использовать, например, знаки подмены символов вроде *.
Данное выражение вернет сумму продаж по всем категориям, которые заканчиваются на слово «обувь». Т.к. знак * заменяет произвольное кол-во символов в начале фразы.
![](https://bi2business.ru/wp-content/uploads/2021/03/image-88.png)
Также, по полям с числовыми значениями можно использовать знаки <=>, для поиска по диапазону. Если поле содержит дату, то можно указывать дату в формате, использующемся в поле.
Границы диапазонов можно ограничивать с 2-х сторон, например [Бюджет]={«>=2000<1000»}.
![](https://bi2business.ru/wp-content/uploads/2021/03/image-89.png)
Высший пилотаж — использование других выражений в качестве условия для поиска. Если в двойных кавычках написать знак =, а после него условие с формулой, то это будет работать как фильтр по соответствующему измерению.
Например, вот такая формула будет возвращать сумму продаж только по тем покупателям, для которых сумма продаж в текущей выборке больше или равна 10000.
![](https://bi2business.ru/wp-content/uploads/2021/03/image-90.png)
Не забывайте, чт она месте формул можно использовать метки мер, созраненных как основные элементы. Т.е. формула может выглядеть так.
![](https://bi2business.ru/wp-content/uploads/2021/03/image-92.png)
Учитывая, что формулы внутри модификаторов могут иметь собственный анализ множеств, этот метод полезен, чтобы избегать конфликта синтаксиса с двойными кавычками.
Заключение
Анализ множеств позволяет быстро создавать сложную логику взаимодействия фильтров, и позволить пользователю получать больше информации от аналитики за малое кол-во кликов.
Вы изучили основы, и теперь можете скачать учебное приложение с расщиренными примерами анализа множеств.
Там описано несколько специфических тем. Также в блоге будут публиковаться примеры использования анализа множеств для конкретных кейсов.