Эта функция возвращает значение года и номер лунной недели, соответствующие метке времени первой миллисекунды первого дня лунной недели, содержащего значение, указанное в поле date. При определении лунных недель в Qlik Sense первым днем первой недели считается 1 января. Все недели, кроме последней, будут содержать ровно 7 дней.
Функция lunarweekname() определяет, к какой лунной неделе относится дата, начиная отсчет недель с 1 января. Затем она возвращает значение, которое включает year/weekcount.
Аргументы
Аргумент
Описание
date
Дата или метка времени для вычисления.
period_no
period_no является целым числом или выражением, определяемым по целому числу, где значение 0 означает лунную неделю, содержащую значение, указанное в поле date. Отрицательные значения, заданные в поле period_no, означают предшествующие лунные недели, положительные — последующие.
first_week_day
Смещение, которое может быть больше или меньше нуля. Оно изменяет начало года указанным количеством дней и/или десятичных значений.
Когда это следует использовать
Функция lunarweekname() полезна, когда требуется сравнить агрегации по лунным неделям. Например, с помощью функции можно определить общий объем продаж продуктов по лунной неделе. Лунные недели полезны, когда требуется обеспечить, чтобы все значения в первой неделе года содержали только значения начиная с 1 января.
Эти измерения можно создать в скрипте загрузки с помощью функции создания поля в таблице основного календаря. Эту функцию также можно использовать непосредственно в диаграмме в качестве вычисляемого измерения.
Примеры функции
Пример
Результат
lunarweekname('01/12/2013')
Возвращает 2006/02.
lunarweekname('01/12/2013', -1)
Возвращает 2006/01.
lunarweekname('01/12/2013', 0, 1)
Возвращает 2006/02.
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.
Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому обращается пользователь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Sense. Qlik Sense будет отображаться на языке, который используется в браузере.
Пример 1. Дата без дополнительных аргументов
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций за 2022 год, который загружается в таблицу под именем Transactions.
Поле даты было предоставлено в формате системной переменной DateFormat (MM/DD/YYYY).
Создание поля lunar_week_name, возвращающего год и номер лунной недели, в течение которой совершены транзакции.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
lunar_week_name
Результирующая таблица
date
lunar_week_name
1/7/2022
2022/01
1/19/2022
2022/03
2/5/2022
2022/06
2/28/2022
2022/09
3/16/2022
2022/11
4/1/2022
2022/13
5/7/2022
2022/19
5/16/2022
2022/20
6/15/2022
2022/24
6/26/2022
2022/26
7/9/2022
2022/28
7/22/2022
2022/29
7/23/2022
2022/30
7/27/2022
2022/30
8/2/2022
2022/31
8/8/2022
2022/32
8/19/2022
2022/33
9/26/2022
2022/39
10/14/2022
2022/41
10/29/2022
2022/44
Поле lunar_week_name создано предшествующим оператором load с использованием функции lunarweekname(), где в качестве аргумента передано поле date.
Функция lunarweekname() определяет, к какой лунной неделе относится значение даты, и возвращает год и номер луной недели для этой даты.
Транзакция 8189 совершена 19 января. Функция lunarweekname() определяет, что эта дата попадает в лунную неделю, которая начинается 15 января; это третья лунная неделя года. Поэтому для этой транзакции возвращается значение lunar_week_name = 2022/03.
Пример 2. Дата с аргументом period_no
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Используется тот же набор данных и сценарий, что в первом примере.
Создание поля previous_lunar_week_name, возвращающего год и номер лунной недели, которая предшествует совершению транзакций.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
previous_lunar_week_name
Результирующая таблица
date
previous_lunar_week_name
1/7/2022
2021/52
1/19/2022
2022/02
2/5/2022
2022/05
2/28/2022
2022/08
3/16/2022
2022/10
4/1/2022
2022/12
5/7/2022
2022/18
5/16/2022
2022/19
6/15/2022
2022/23
6/26/2022
2022/25
7/9/2022
2022/27
7/22/2022
2022/28
7/23/2022
2022/29
7/27/2022
2022/29
8/2/2022
2022/30
8/8/2022
2022/31
8/19/2022
2022/32
9/26/2022
2022/38
10/14/2022
2022/40
10/29/2022
2022/43
В этом случае, так как в качестве аргумента смещения в функции lunarweekname() использовалось period_no = -1, функция сначала определяет лунную неделю, в течение которой совершены транзакции. Затем она возвращает год и номер предыдущей недели.
Транзакция 8189 совершена 19 января. Функция lunarweekname() определяет, что эта транзакция совершена на третьей неделе года, поэтому возвращается год и номер предыдущей недели, 2022/02, для поля previous_lunar_week_name.
Пример 3. Дата с аргументом first_week_day
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит тот же набор данных и сценарий, что в первом примере. В этом примере лунные недели начинаются с 5 января.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
lunar_week_name
Результирующая таблица
date
lunar_week_name
1/7/2022
2022/01
1/19/2022
2022/03
2/5/2022
2022/05
2/28/2022
2022/08
3/16/2022
2022/11
4/1/2022
2022/13
5/7/2022
2022/18
5/16/2022
2022/19
6/15/2022
2022/24
6/26/2022
2022/25
7/9/2022
2022/27
7/22/2022
2022/29
7/23/2022
2022/29
7/27/2022
2022/30
8/2/2022
2022/30
8/8/2022
2022/31
8/19/2022
2022/33
9/26/2022
2022/38
10/14/2022
2022/41
10/29/2022
2022/43
В этом примере используется аргумент first_week_date = 4 в функции lunarweekname(), потому начало лунных недель переносится с 1 на 5 января.
Транзакция 8188 совершена 7 января. Так как лунные недели начинаются 5 января, функция lunarweekname() определяет, что 7 января относится к первой лунной неделе года. Поэтому для этой транзакции возвращается значение lunar_week_name = 2022/01.
Пример 4. Пример объекта диаграммы
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит тот же набор данных и сценарий, что в первом примере.
Однако в этом примере в приложение загружается неизмененный набор данных. Расчет, который возвращает номер лунной недели и год, когда были совершены транзакции, создается как мера в объекте диаграммы в приложении.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение: date.
Чтобы рассчитать дату начала лунной недели, когда была совершена транзакция, создайте следующую меру:
=lunarweekname(date)
Результирующая таблица
date
=lunarweekname(date)
1/7/2022
2022/01
1/19/2022
2022/03
2/5/2022
2022/06
2/28/2022
2022/09
3/16/2022
2022/11
4/1/2022
2022/13
5/7/2022
2022/19
5/16/2022
2022/20
6/15/2022
2022/24
6/26/2022
2022/26
7/9/2022
2022/28
7/22/2022
2022/29
7/23/2022
2022/30
7/27/2022
2022/30
8/2/2022
2022/31
8/8/2022
2022/32
8/19/2022
2022/33
9/26/2022
2022/39
10/14/2022
2022/41
10/29/2022
2022/44
Мера lunar_week_name создана в объекте диаграммы с использованием функции lunarweekname(), где в качестве аргумента функции передано поле date.
Функция lunarweekname() определяет, к какой лунной неделе относится значение даты, и возвращает год и номер луной недели для этой даты.
Транзакция 8189 совершена 19 января. Функция lunarweekname() определяет, что эта дата попадает в лунную неделю, которая начинается 15 января; это третья лунная неделя года. Таким образом, для транзакции возвращается значение lunar_week_name = 2022/03.
Пример 5. Сценарий
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций за 2022 год, который загружается в таблицу под именем Transactions.
Поле даты было предоставлено в формате системной переменной DateFormat (MM/DD/YYYY).
Конечному пользователю нужен объект диаграммы, на котором представлены общие продажи по неделям для текущего года. Неделя 1 с продолжительностью семь дней должна начаться 1 января. Этого можно добиться, даже когда это измерение недоступно в модели данных, используя функцию lunarweekname() в качестве вычисляемого измерения в диаграмме.
Загрузите данные и откройте лист. Создайте новую таблицу.
Создайте вычисляемое измерение, используя следующее выражение:
=lunarweekname(date)
Чтобы рассчитать общий объем продаж, создайте следующую меру агрегирования:
=sum(amount)
Задайте параметру меры Формат чисел значение Денежный.
Результирующая таблица
=lunarweekname(date)
=sum(amount)
2022/01
$17.17
2022/03
$37.23
2022/06
$57.42
2022/09
$88.27
2022/11
$53.80
2022/13
$82.06
2022/19
$40.39
2022/20
$87.21
2022/24
$95.93
2022/26
$45.89
2022/28
$36.23
2022/29
$25.66
2022/30
$152.75
2022/31
$76.11
2022/32
$25.12
2022/33
$46.23
2022/39
$84.21
2022/41
$96.24
2022/44
$67.67
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!