В Qlik Sense логическое значение «истина» представлено как -1, а «ложь» — как 0.
Другими словами, функция inquarter() делит год на четыре одинаковых квартала с 1 января по 31 декабря. С помощью аргумента first_month_of_year можно изменить месяц, который приложение считает первым, и сегментирование на кварталы изменится с учетом этого аргумента. Функция base_date определяет, какой квартал необходимо использовать для сравнения. Наконец, функция возвращает булев результат при сравнении значений даты с этим квартальным сегментом.
Когда это следует использовать
Функция inquarter() возвращает результат в виде булева значения. Обычно этот тип функции используется в качестве условия в if expression. Она возвращает агрегирование или вычисление в зависимости от того, попадает ли дата в указанный квартал.
Например, с помощью функции inquarter() можно идентифицировать все оборудование, изготовленное в квартальном сегменте, на основании даты производства оборудования.
Аргументы
Аргумент
Описание
timestamp
Дата, которую необходимо сравнить со значением, указанным в поле base_date.
base_date
Дата, использующаяся для оценки квартала.
period_no
Квартал можно сместить, задав значение в поле period_no. period_no — целое число, где 0 обозначает квартал, включающий значение, указанное в поле base_date. Отрицательные значения, заданные в поле period_no, означают предшествующие кварталы, положительные — последующие.
first_month_of_year
Если необходимо работать с годами (финансовыми), которые начинаются не в январе, задайте значение от 2 до 12 в поле first_month_of_year.
Можно использовать следующие значения, чтобы задать первый месяц года в аргументе first_month_of_year:
значения first_month_of_year
Месяц
Значение
Февраль
2
Март
3
Апрель
4
May
5
Июнь
6
Июль
7
Август
8
Сентябрь
9
Октябрь
10
Ноябрь
11
Декабрь
12
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.
Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому обращается пользователь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Sense. Qlik Sense будет отображаться на языке, который используется в браузере.
Примеры функции
Пример
Результат
inquarter ('01/25/2013', '01/01/2013', 0)
Возвращает TRUE
inquarter ('01/25/2013', '04/01/2013', 0)
Возвращает FALSE
inquarter ('01/25/2013', '01/01/2013', -1)
Возвращает FALSE
inquarter ('12/25/2012', '01/01/2013', -1)
Возвращает TRUE
inquarter ('01/25/2013', '03/01/2013', 0, 3)
Возвращает FALSE
inquarter ('03/25/2013', '03/01/2013', 0, 3)
Возвращает TRUE
Пример 1. Без дополнительных аргументов
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций за 2022 год, загруженный в таблицу под именем Transactions.
Предыдущая загрузка с функцией inquarter(), которая задана в качестве поля in_quarter и определяет, какие транзакции совершены в том же квартале, к которому относится 15 мая 2022 года.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
in_quarter
Результирующая таблица
date
in_quarter
1/7/2022
0
1/19/2022
0
2/5/2022
0
2/28/2022
0
3/16/2022
0
4/1/2022
-1
5/7/2022
-1
5/16/2022
-1
6/15/2022
-1
6/26/2022
-1
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Поле in_quarter создано в предыдущем операторе load с помощью функции inquarter(). Первый аргумент определяет, какое поле оценивается. Второй аргумент — это жестко закодированная дата, 15 мая, которая определяет, какой квартал необходимо использовать для сравнения. period_no = 0 — это последний аргумент, означающий, что функция inquarter() не сравнивает кварталы, которые следуют до или после сегментированного квартала.
Любая транзакция, совершенная в период с 1 апреля по 30 июня, возвращает булев результат TRUE.
Пример 2. Скрипт period_no
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций за 2022 год, загруженный в таблицу под именем Transactions.
Предыдущая загрузка с функцией inquarter(), которая задана в качестве поля previous_quarter и определяет, какие транзакции совершены в квартале, предшествующем кварталу, к которому относится 15 мая 2022 года.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
previous_qtr
Результирующая таблица
date
previous_qtr
1/7/2022
-1
1/19/2022
-1
2/5/2022
-1
2/28/2022
-1
3/16/2022
-1
4/1/2022
0
5/7/2022
0
5/16/2022
0
6/15/2022
0
6/26/2022
0
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Используя -1 в качестве аргумента period_no, функция inquarter() сдвигает границы сравниваемого квартала на один полный квартал назад. 15 мая приходится на второй квартал года, поэтому этот сегмент изначально соответствует периоду с 1 апреля по 30 июня. period_no сдвигает этот сегмент на три месяца назад, в результате чего границы диапазона дат переносятся на 1 января и 30 марта.
Таким образом, любая транзакция, совершенная в период с 1 января по 30 марта, возвращает булев результат TRUE.
Пример 3. Аргумент first_month_of_year
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций за 2022 год, загруженный в таблицу под именем Transactions.
Предыдущая загрузка с функцией inquarter(), которая задана в качестве поля in_quarter и определяет, какие транзакции совершены в том же квартале, к которому относится 15 мая 2022 года.
Однако в этом примере политика организации устанавливает март в качестве первого месяца финансового года.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
previous_qtr
Результирующая таблица
date
previous_qtr
1/7/2022
0
1/19/2022
0
2/5/2022
0
2/28/2022
0
3/16/2022
-1
4/1/2022
-1
5/7/2022
-1
5/16/2022
-1
6/15/2022
0
6/26/2022
0
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Так как используется 3 в качестве аргумента first_month_of_year, функция inquarter() начинает год 1 марта, а затем делит год на кварталы. Таким образом, рассматриваются кварталы Mar-May (март-май), Jun-Aug (июнь-август), Sep-Nov (сентябрь-ноябрь), Dec-Feb (декабрь-февраль). Аргумент base_date = 15 мая задает квартал Mar-May в качестве квартала сравнения для функции.
Таким образом, любая транзакция, совершенная в период с 1 марта по 31 мая, возвращает булев результат TRUE.
Пример 4. Пример объекта диаграммы
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций за 2022 год, загруженный в таблицу под именем Transactions.
Предыдущая загрузка с функцией inquarter(), которая задана в качестве поля in_quarter и определяет, какие транзакции совершены в том же квартале, к которому относится 15 мая 2022 года.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение:
date
Создайте следующую меру, чтобы рассчитать, совершены ли транзакции в том же квартале, к которому относится 15 мая:
=inquarter(date,'05/15/2022', 0)
Результирующая таблица
date
in_quarter
1/7/2022
0
1/19/2022
0
2/5/2022
0
2/28/2022
0
3/16/2022
0
4/1/2022
-1
5/7/2022
-1
5/16/2022
-1
6/15/2022
-1
6/26/2022
-1
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Мера in_quarter создается в диаграмме с помощью функции inquarter(). Первый аргумент определяет, какое поле оценивается. Второй аргумент — это жестко закодированная дата, 15 мая, которая определяет, какой квартал необходимо использовать для сравнения. period_no = 0 — это последний аргумент, означающий, что функция inquarter() не сравнивает кварталы, которые следуют до или после сегментированного квартала.
Любая транзакция, совершенная в период с 1 апреля по 30 июня, возвращает булев результат TRUE.
Пример 5. Сценарий
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, загруженный в таблицу под именем Products.
Данная таблица содержит следующие поля:
product ID (ИД продукта)
product type (тип продукта)
manufacture date (дата изготовления)
cost price (себестоимость)
Установлено, что вследствие ошибки оборудования продукты, изготовленные в течение недели, на которую выпадает 15 мая 2022 года, являются дефектными. Конечному пользователю требуется диаграмма, которая отображает по имени квартала, какие изготовленные продукты были дефектными, а какие бездефектными, а также стоимость продуктов, изготовленных в этом квартале.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение:
=quartername(manufacture_date)
Создайте следующие меры:
=if(only(InQuarter(manufacture_date,makedate(2022,05,15),0)),'Defective','Faultless'), чтобы определить, какие из продуктов дефектные, а какие нет, с использованием функции inquarter():
=sum(cost_price), чтобы показать суммарную стоимость всех продуктов.
Выполните следующие действия.
Задайте параметру Формат чисел меры значение Денежный.
Функция inquarter() возвращает булево значение при проверке дат производства каждого продукта. Для любого продукта, изготовленного в течение квартала, к которому относится 15 мая, функция inquarter() возвращает булево значение TRUE и ставит отметку «Дефектный». Любой продукт, который возвращает значение FALSE, то есть изготовлен в другом квартале, отмечается как «Бездефектный».
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!