Эта функция возвращает значение, отображающее месяцы квартала (в формате переменной MonthNames скрипта) и год с базовым числовым значением, соответствующим метке времени, включающей первую миллисекунду первого дня квартала.
Функция quartername() определяет, на какой квартал приходится дата. Затем она возвращает начальный и конечный месяцы этого квартала, а также указывает год. Базовым числовым значением в этом результате является первая миллисекунда квартала.
Аргументы
Аргумент
Описание
date
Дата или метка времени для вычисления.
period_no
period_no — целое число, где 0 обозначает квартал, включающий значение, указанное в поле date. Отрицательные значения, заданные в поле period_no, означают предшествующие кварталы, положительные — последующие.
first_month_of_year
Если необходимо работать с годами (финансовыми), которые начинаются не в январе, задайте значение от 2 до 12 в поле first_month_of_year.
Когда это следует использовать
Функция quartername() полезна, когда требуется сравнить агрегации по кварталам, например, если требуется увидеть общий объем продаж продуктов по кварталам.
С помощью этой функции в скрипте загрузки можно создать поле в таблице основного календаря. Ее также можно использовать непосредственно в диаграмме в качестве вычисляемого измерения.
В этих примерах используется формат даты MM/DD/YYYY. Формат даты указан в операторе SET DateFormat в верхней части скрипта загрузки данных. Измените формат в примерах согласно своим пожеланиям.
Примеры функции
Пример
Результат
quartername('10/29/2013')
Возвращает Oct-Dec 2013.
quartername('10/29/2013', -1)
Возвращает Jul-Sep 2013.
quartername('10/29/2013', 0, 3)
Возвращает Sep-Nov 2013.
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.
Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому обращается пользователь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Sense. Qlik Sense будет отображаться на языке, который используется в браузере.
Пример 1. Дата без дополнительных аргументов
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций за 2022 год, загружается в таблицу под именем Transactions.
Поле даты было предоставлено в формате системной переменной DateFormat (MM/DD/YYYY).
Создание поля transaction_quarter, возвращающего квартал, в котором совершены транзакции.
Добавьте сюда другой текст, если необходимо, со списками и т. д.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
transaction_quarter
Результирующая таблица
date
transaction_quarter
1/7/2022
Jan-Mar 2022
1/19/2022
Jan-Mar 2022
2/5/2022
Jan-Mar 2022
2/28/2022
Jan-Mar 2022
3/16/2022
Jan-Mar 2022
4/1/2022
Apr-Jun 2022
5/7/2022
Apr-Jun 2022
5/16/2022
Apr-Jun 2022
6/15/2022
Apr-Jun 2022
6/26/2022
Apr-Jun 2022
7/9/2022
Jul-Sep 2022
7/22/2022
Jul-Sep 2022
7/23/2022
Jul-Sep 2022
7/27/2022
Jul-Sep 2022
8/2/2022
Jul-Sep 2022
8/8/2022
Jul-Sep 2022
8/19/2022
Jul-Sep 2022
9/26/2022
Jul-Sep 2022
10/14/2022
Oct-Dec 2022
10/29/2022
Oct-Dec 2022
Поле transaction_quarter создано предшествующим оператором load с использованием функции quartername(), в качестве аргумента которой передано поле даты.
Функция quartername() сначала определяет квартал, к которому относится значение даты. Затем она возвращает начальный и конечный месяцы этого квартала, а также указывает год.
Транзакция 8203 совершена 8 августа 2022 года. Функция quartername() определяет, что транзакция совершена в третьем квартале, и поэтому возвращает значение Jul-Sep 2022 (июль-сентябрь 2022 года). Месяцы отображаются в том же формате, который задан для системной переменной MonthNames.
Пример 2. Дата с аргументом period_no
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Используется тот же набор данных и сценарий, что в первом примере.
Создание поля previous_quarter, возвращающего квартал, который предшествует кварталу, когда совершены транзакции.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
previous_quarter
Результирующая таблица
date
previous_quarter
1/7/2022
Oct-Dec 2021
1/19/2022
Oct-Dec 2021
2/5/2022
Oct-Dec 2021
2/28/2022
Oct-Dec 2021
3/16/2022
Oct-Dec 2021
4/1/2022
Jan-Mar 2022
5/7/2022
Jan-Mar 2022
5/16/2022
Jan-Mar 2022
6/15/2022
Jan-Mar 2022
6/26/2022
Jan-Mar 2022
7/9/2022
Apr-Jun 2022
7/22/2022
Apr-Jun 2022
7/23/2022
Apr-Jun 2022
7/27/2022
Apr-Jun 2022
8/2/2022
Apr-Jun 2022
8/8/2022
Apr-Jun 2022
8/19/2022
Apr-Jun 2022
9/26/2022
Apr-Jun 2022
10/14/2022
Jul-Sep 2022
10/29/2022
Jul-Sep 2022
В этом случае, так как в качестве аргумента смещения использовалось period_no = -1, функция quartername() сначала определяет, что транзакции совершены в третьем квартале. Затем она переходит к предыдущему кварталу и возвращает значение, отображающее начальный и конечный месяцы этого квартала, а также год.
Транзакция 8203 совершена 8 августа. Функция quartername() определяет, что квартал, предшествующий совершению транзакции, начинается 1 апреля и заканчивается 30 июня. Таким образом, функция возвращает значение Apr-Jun 2022 (апрель-июнь 2022).
Пример 3. Дата с аргументом first_week_day
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит тот же набор данных и сценарий, что в первом примере. Однако в этом примере нам также нужно задать 1 марта в качестве начала финансового года.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
transaction_quarter
Результирующая таблица
date
transaction_quarter
1/7/2022
Dec-Feb 2021
1/19/2022
Dec-Feb 2021
2/5/2022
Dec-Feb 2021
2/28/2022
Dec-Feb 2021
3/16/2022
Mar-May 2022
4/1/2022
Mar-May 2022
5/7/2022
Mar-May 2022
5/16/2022
Mar-May 2022
6/15/2022
Jun-Aug 2022
6/26/2022
Jun-Aug 2022
7/9/2022
Jun-Aug 2022
7/22/2022
Jun-Aug 2022
7/23/2022
Jun-Aug 2022
7/27/2022
Jun-Aug 2022
8/2/2022
Jun-Aug 2022
8/8/2022
Jun-Aug 2022
8/19/2022
Jun-Aug 2022
9/26/2022
Sep-Nov 2022
10/14/2022
Sep-Nov 2022
10/29/2022
Sep-Nov 2022
В данном случае, так как используется аргумент first_month_of_year = 3 в функции quartername(), начало года переносится с 1 января на 1 марта. Таким образом, год делится на следующие кварталы: март-май, июнь-август, сентябрь-ноябрь и декабрь-февраль.
Транзакция 8203 совершена 8 августа. Функция quartername() определяет, что транзакция совершена во втором квартале, который начинается 1 июня и заканчивается 31 августа. Таким образом, функция возвращает значение Jun-Aug 2022 (июнь-август 2022).
Пример 4. Пример объекта диаграммы
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит тот же набор данных и сценарий, что в первом примере.
Однако в этом примере в приложение загружается неизмененный набор данных. Расчет, возвращающий метку времени окончания квартала, в котором совершены транзакции, создается как мера в объекте диаграммы в приложении.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение: date.
Создайте следующую меру:
=quartername(date)
Результирующая таблица
date
=quartername(date)
1/7/2022
Jan-Mar 2022
1/19/2022
Jan-Mar 2022
2/5/2022
Jan-Mar 2022
2/28/2022
Jan-Mar 2022
3/16/2022
Jan-Mar 2022
4/1/2022
Apr-Jun 2022
5/7/2022
Apr-Jun 2022
5/16/2022
Apr-Jun 2022
6/15/2022
Apr-Jun 2022
6/26/2022
Apr-Jun 2022
7/9/2022
Jul-Sep 2022
7/22/2022
Jul-Sep 2022
7/23/2022
Jul-Sep 2022
7/27/2022
Jul-Sep 2022
8/2/2022
Jul-Sep 2022
8/8/2022
Jul-Sep 2022
8/19/2022
Jul-Sep 2022
9/26/2022
Jul-Sep 2022
10/14/2022
Oct-Dec 2022
10/29/2022
Oct-Dec 2022
Мера transaction_quarter создана в объекте диаграммы с использованием функции quartername(), где в качестве аргумента функции передано поле date.
Функция quartername() сначала определяет квартал, к которому относится значение даты. Затем она возвращает начальный и конечный месяцы этого квартала, а также указывает год.
Транзакция 8203 совершена 8 августа 2022 года. Функция quartername() определяет, что транзакция совершена в третьем квартале, и поэтому возвращает значение Jul-Sep 2022 (июль-сентябрь 2022 года). Месяцы отображаются в том же формате, который задан для системной переменной MonthNames.
Пример 5. Сценарий
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций за 2022 год, загружается в таблицу под именем Transactions.
Поле даты было предоставлено в формате системной переменной DateFormat (MM/DD/YYYY).
Конечному пользователю нужен объект диаграммы, на котором представлены общие продажи для транзакций по кварталам. Этого можно добиться, даже если это измерение недоступно в модели данных, используя в диаграмме функцию quartername() в качестве вычисляемого измерения.
Загрузите данные и откройте лист. Создайте новую таблицу.
Создайте вычисляемое измерение, используя следующее выражение:
=quartername(date)
Затем вычислите общий объем продаж, используя следующую меру агрегирования:
=sum(amount)
Задайте параметру меры Формат чисел значение Денежный.
Результирующая таблица
=quartername(date)
=sum(amount)
Jul-Sep 2022
$446.31
Apr-Jun 2022
$351.48
Jan-Mar 2022
$253.89
Oct-Dec 2022
$163.91
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!