Эта функция возвращает значение True, если значение timestamp находится в пределах части квартала, включающей значение, заданное в поле base_date до последней миллисекунды, указанной в поле base_date, включительно.
В Qlik Sense логическое значение «истина» представлено как -1, а «ложь» — как 0.
Функция inquartertodate() делит год на четыре равных квартала между 1 января и 31 декабря (или определяемым пользователем началом года и соответствующей ему датой окончания). Используя base_date, функция затем сегментирует конкретный квартал, а base_date определяет как квартал, так и максимально допустимую дату для этого сегмента квартала. Наконец, функция возвращает булев результат при сравнении предписанных значений даты с этим сегментом.
Аргументы
Аргумент
Описание
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.
Когда это следует использовать
Функция inquartertodate() возвращает результат в виде логического значения. Обычно этот тип функции используется в качестве условия в выражении if. Функция inquartertodate() возвращает агрегирование или расчет в зависимости от того, попадает ли проверяемая дата в квартал до рассматриваемой даты включительно.
Например, функцию inquartertodate() можно использовать для идентификации всего оборудования, изготовленного в указанном квартале до определенной даты.
Примеры функции
Пример
Результат
inquartertodate('01/25/2013', '03/25/2013', 0)
Возвращает TRUE, так как значениеtimestamp, 01/25/2013, попадает в трехмесячный период с 01/01/2013 по 03/25/2013, в который попадает значение base_date, 03/25/2013.
inquartertodate('04/26/2013', '03/25/2013', 0)
Возвращает FALSE, так как 04/26/2013 находится за пределами периода, указанного в предыдущем примере.
inquartertodate('02/25/2013', '06/09/2013', -1)
Возвращает TRUE, так как значение period_no, -1, сдвигает период поиска назад на один трехмесячный период (один квартал года). Таким образом, период поиска длится с 01/01/2013 по 03/09/2013.
inquartertodate('03/25/2006', '04/15/2006', 0, 2)
Возвращает TRUE, так как значение first_month_of_yearравно 2, в результате чего период поиска длится с 02/01/2006 по 04/15/2006, а не с 04/01/2006 по 04/15/2006.
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами. Для получения дополнительной информации см. Изменение региональных настроек для создания приложений и скриптов.
Региональные настройки по умолчанию в приложениях основаны на профиле пользователя. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Cloud. Qlik Cloud будет отображаться на языке, который используется в браузере.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
in_quarter_to_date
Результирующая таблица
date
in_quarter_to_date
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
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
Поле in_quarter_to_date создано в предшествующем операторе load с помощью функции inquartertodate(). Первый предоставленный аргумент определяет, какое поле оценивается. Второй аргумент — это жестко закодированная дата «15 мая», которая представляет собой base_date, определяющий, какой квартал сегментировать, и определяющий конечную границу этого сегмента. period_no = 0 — это последний аргумент, означающий, что функция не сравнивает кварталы, предшествующие или следующие за сегментированным кварталом.
Любая транзакция, совершенная в период с 1 апреля по 15 мая, возвращает булев результат TRUE. Для транзакций с датами от 16 мая и позже возвращается FALSE, как и для транзакций до 1 апреля.
Пример 2. Скрипт period_no
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Используется тот же набор данных и сценарий, что в первом примере.
Создание поля previous_qtr_to_date, которое определяет, какие транзакции совершены в течение полного квартала до 15 мая 2022 года.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
previous_qtr_to_date
Результирующая таблица
date
previous_qtr_to_date
1/7/2022
-1
1/19/2022
-1
2/5/2022
-1
2/28/2022
0
3/16/2022
0
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
Значение period_no равное -1 указывает, что функция inquartertodate () сравнивает сегмент входного квартала с предыдущим кварталом. 15 мая приходится на второй квартал года, поэтому этот сегмент изначально соответствует периоду с 1 апреля по 15 мая. Затем period_no смещает этот сегмент на три месяца назад, в результате чего границы диапазона дат переносятся на 1 января и 15 февраля.
Таким образом, любая транзакция, совершенная в период с 1 января по 15 февраля, возвращает булев результат TRUE.
Пример 3. Аргумент first_month_of_year
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Используется тот же набор данных и сценарий, что в первом примере.
Создание поля in_quarter_to_date, которое определяет, какие транзакции совершены в том же квартале до 15 мая 2022 года.
В этом примере мы устанавливаем март в качестве первого месяца финансового года.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
in_quarter_to_date
Результирующая таблица
date
in_quarter_to_date
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
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
Так как используется 3 в качестве аргумента [first_month_of_year в функции inquartertodate(), функция начинает год 1 марта, а затем делит год на кварталы. Следовательно, имеются следующие квартальные сегменты:
с марта по май
с июня по август
с сентября по ноябрь
с декабря по февраль
base_date от 15 мая затем сегментирует квартал с марта по май, устанавливая для него конечную границу 15 мая.
Таким образом, для любой транзакции, совершенной между 1 марта и 15 мая, возвращается булев результат TRUE, а для транзакций с датами вне этих границ — значение FALSE.
Пример 4. Пример объекта диаграммы
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит тот же набор данных и сценарий, что в первом примере. Однако в этом примере в приложение загружается неизмененный набор данных. Расчет, который определяет, совершены ли транзакции в том квартале, в который попадает 15 мая, создается как мера в объекте диаграммы в приложении.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение:date.
Создайте следующую меру:
=inquartertodate(date,'05/15/2022', 0)
Результирующая таблица
date
=inquartertodate(date,'05/15/2022', 0)
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
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
Мера in_quarter_to_date создается в объекте диаграммы с помощью функции inquartertodate(). Первый аргумент — это оцениваемое поле даты. Второй аргумент — это жестко закодированная дата «15 мая», которая представляет собой base_date, определяющий, какой квартал сегментировать, и определяющий конечную границу этого сегмента. period_no = 0 — это последний аргумент, означающий, что функция не сравнивает кварталы, предшествующие или следующие за сегментированным кварталом.
Любая транзакция, совершенная в период с 1 апреля по 15 мая, возвращает булев результат TRUE. Для транзакций с датами от 16 мая и позже возвращается FALSE, как и для транзакций до 1 апреля.
Пример 5. Сценарий
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, который загружается в таблицу под именем Products
Информация об идентификаторе продукта, дате изготовления и себестоимости.
15 мая 2022 г. в производственном процессе была обнаружена и устранена ошибка оборудования. Продукты, изготовленные в этом квартале до этой даты, будут дефектными. Конечному пользователю требуется объект диаграммы, который отображает по названию квартала, какие изготовленные продукты были дефектными, а какие бездефектными, а также стоимость продуктов, изготовленных в этом квартале до указанной даты.
Функция inquartertodate() возвращает логическое значение при проверки дат производства каждого продукта. Продукты, для которых возвращается булево значение TRUE, помечаются как ‘Defective’. Продукты, для которых возвращается значение FALSE и которые, следовательно, не произведены в квартале до 15 мая включительно, помечаются как ‘Faultless’.
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!