# weekname Функция скрипта и диаграммы

Эта функция возвращает значение года и номер недели с базовым числовым значением, соответствующим метке времени, включающей первую миллисекунду первого дня недели, содержащего значение, указанное в поле date.

Синтаксис:

WeekName(date[, period\_no [, first\_week\_day [, broken\_weeks [, reference\_day]]]])

Функция `weekname()` определяет, на какую неделю приходится дата, и возвращает номер недели и год этой недели. Первый день недели определяется системной переменной `FirstWeekDay`. Однако также можно изменить первый день недели, используя аргумент `first_week_day` в функции `weekname()`.

В Qlik Sense региональные настройки извлекаются при создании приложения, и соответствующие параметры хранятся в скрипте как переменные среды.

Североамериканские разработчики приложений часто получают `Set BrokenWeeks=1;` в скрипте, что соответствует неполным неделям. Европейские разработчики приложений часто получают `Set BrokenWeeks=0;` в скрипте, что соответствует полным неделям.

Если приложение использует неполные недели, отсчет номера недели начинается с 1 января и заканчивается за день до системной переменной `FirstWeekDay` независимо от того, сколько дней прошло.

Однако если в приложении используются непрерывные недели, неделя 1 может начинаться в предыдущем году или в первые несколько дней января. Это зависит от того, как используются системные переменные `ReferenceDay` и `FirstWeekDay`.

Пример функции Weekname

| Дата | Имя недели ISO | Имя недели US |
| --- | --- | --- |
| Sat 2020 Dec 26 | 2020/52 | 2020/52 |
| Sun 2020 Dec 27 | 2020/52 | 2020/53 |
| Mon 2020 Dec 28 | 2020/53 | 2020/53 |
| Tue 2020 Dec 29 | 2020/53 | 2020/53 |
| Wed 2020 Dec 30 | 2020/53 | 2020/53 |
| Thu 2020 Dec 31 | 2020/53 | 2020/53 |
| Fri 2021 Jan 1 | 2020/53 | 2021/01 |
| Sat 2021 Jan 2 | 2020/53 | 2021/01 |
| Sun 2021 Jan 3 | 2020/53 | 2021/02 |
| Mon 2021 Jan 4 | 2021/01 | 2021/02 |
| Tue 2021 Jan 5 | 2021/01 | 2021/02 |

Когда использовать weekname

Функция `weekname()` полезна, когда требуется сравнить агрегации по неделям.

Например, если требуется увидеть общий объем продаж продуктов по неделям. Чтобы не допустить противоречия с перемененной среды `BrokenWeeks` в приложении, используйте `weekname()` вместо `lunarweekname()`. Если приложение использует полные недели, неделя 1 может содержать даты декабря предыдущего года или исключать даты января текущего года. Если приложение использует неполные недели, неделя 1 может содержать менее семи дней.

Возвращаемые типы данных: двойное значение

Аргументы

| Аргумент | Описание |
| --- | --- |
| timestamp | Дата или метка времени для вычисления. |
| period\_no | shift — целое число, где 0 обозначает неделю, включающую значение, указанное в поле date. Отрицательные значения, заданные в поле shift, означают предшествующие недели, положительные — последующие. |
| first\_week\_day | Указывает день начала недели. Если не указано, используется значение переменной FirstWeekDay.<br><br>Возможные значения first\_week\_day: 0 — понедельник, 1 — вторник, 2 — среда, 3 — четверг, 4 — пятница, 5 — суббота и 6 — воскресенье.<br><br>Для получения дополнительной информации о системной переменной см. [FirstWeekDay](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm). |
| broken\_weeks | Если параметр broken\_weeks не указан, значение переменной BrokenWeeks будет использовано для определения, какими должны быть недели: целыми или разбитыми.<br><br>Для получения дополнительной информации о системной переменной см. [BrokenWeeks](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/BrokenWeeks.htm) |
| reference\_day | Если параметр reference\_day не указан, значение переменной ReferenceDay будет использовано для определения, какой день в январе должен быть задан в качестве дня ссылки, чтобы определить неделю 1. По умолчанию в функциях Qlik Sense используется 4 как день ссылки. Это значит, что неделя 1 должна содержать значение «январь 4» , или, другими словами, в неделе 1 всегда должно быть не меньше 4 дней в январе.<br><br>Для получения дополнительной информации о системной переменной см. [ReferenceDay](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ReferenceDay.htm) |

## Региональные настройки

Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: MM/DD/YYYY. Формат даты указан в операторе `SET DateFormat` скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами. Для получения дополнительной информации см. раздел [Изменение региональных настроек для приложений и скриптов](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Региональные настройки по умолчанию в приложениях основаны на профиле пользователя. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Cloud. Qlik Cloud будет отображаться на языке, который используется в браузере.

Если вы — разработчик приложений, то можете задать регион по умолчанию для создаваемых приложений. Для получения дополнительной информации см. раздел [Установка предпочтительных региональных настроек для создания приложений и скриптов в Аналитика Qlik Cloud](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

В приведенных ниже примерах используется:

```
Set FirstWeekDay=0;  
Set BrokenWeeks=0;   
Set ReferenceDay=4;
```

Примеры функции

| Пример | Результат |
| --- | --- |
| weekname('01/12/2013') | Возвращает 2013/02. |
| weekname('01/12/2013', -1) | Возвращает 2013/01. |
| weekname('01/12/2013', 0, 1) | Возвращает 2013/02. |

## Пример 1. Дата без дополнительных аргументов

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekname.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, содержащий набор транзакций за последнюю неделю 2021 года, загружается в таблицу под именем `Transactions`.

* Системная переменная `DateFormat`, для которой задан формат `MM/DD/YYYY`.

* Системная переменная `BrokenWeeks`, для которой задан формат `1`.

* Системная переменная `FirstWeekDay`, для которой задан формат `6`.

* Предшествующая загрузка, которая содержит следующее:

  * Функция `weekday()`, заданная как поле `week_number`, возвращающая год и номер недели, когда были совершены транзакции.

  * Функция `weekname()`, заданная как поле с именем `week_day`, для отображения значения дня недели для каждой даты транзакции.

Скрипт загрузки

```

SET BrokenWeeks=1; 
SET DateFormat='MM/DD/YYYY'; 
SET FirstWeekDay=6; 

Transactions: 
   Load 
     *, 
     WeekDay(date) as week_day, 
     Weekname(date) as week_number 
     ; 
Load 
* 
Inline  
[ 
id,date,amount 
8183,12/27/2021,58.27 
8184,12/28/2021,67.42 
8185,12/29/2021,23.80 
8186,12/30/2021,82.06 
8187,12/31/2021,40.56 
8188,01/01/2022,37.23 
8189,01/02/2022,17.17 
8190,01/03/2022,88.27 
8191,01/04/2022,57.42 
8192,01/05/2022,53.80 
8193,01/06/2022,82.06 
8194,01/07/2022,40.56 
8195,01/08/2022,53.67 
8196,01/09/2022,26.63 
8197,01/10/2022,72.48 
8198,01/11/2022,18.37 
8199,01/12/2022,45.26 
8200,01/13/2022,58.23 
8201,01/14/2022,18.52 
]; 
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `id`
* `date`
* `week_day`
* `week_number`

Результирующая таблица

| id | date | week\_day | номер\_недели |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | Mon | 2021/53 |
| 8184 | 12/28/2021 | Tue | 2021/53 |
| 8185 | 12/29/2021 | Wed | 2021/53 |
| 8186 | 12/30/2021 | Thu | 2021/53 |
| 8187 | 12/31/2021 | Fri | 2021/53 |
| 8188 | 01/01/2022 | Sat | 2022/01 |
| 8189 | 01/02/2022 | Sun | 2022/02 |
| 8190 | 01/03/2022 | Mon | 2022/02 |
| 8191 | 01/04/2022 | Tue | 2022/02 |
| 8192 | 01/05/2022 | Wed | 2022/02 |
| 8193 | 01/06/2022 | Thu | 2022/02 |
| 8194 | 01/07/2022 | Fri | 2022/02 |
| 8195 | 01/08/2022 | Sat | 2022/02 |
| 8196 | 01/09/2022 | Sun | 2022/03 |
| 8197 | 01/10/2022 | Mon | 2022/03 |
| 8198 | 01/11/2022 | Tue | 2022/03 |
| 8199 | 01/12/2022 | Wed | 2022/03 |
| 8200 | 01/13/2022 | Thu | 2022/03 |
| 8201 | 01/14/2022 | Fri | 2022/03 |

Поле `week_number` создано предшествующим оператором load с использованием функции `weekname()`, где в качестве аргумента функции передано поле даты.

Функция `weekname()` изначально определяет, на какую неделю приходится значение даты, и возвращает номер недели и год, когда была совершена транзакция.

Системная переменная `FirstWeekDay` задает воскресенье как первый день недели. Системная переменная `BrokenWeeks` задает для приложения использование неполных недель, что означает, что неделя 1 начнется 1 января.

Диаграмма функции `weekname()` с переменными по умолчанию.

Диаграмма функции `weekname()` с переменными по умолчанию.

Диаграмма функции `weekname()`weekname() с переменными по умолчанию. ![Диаграмма, которая показывает, как функция weekname() определяет номер недели и год, когда совершена транзакция.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekname-example1-diagram1.png)

Неделя 1 начинается 1 января, то есть в субботу, поэтому транзакции, совершенные в этот день, возвращают значение `2022/01` (год и номер недели).

Диаграмма функции `weekname()`, определяющей номер недели для транзакции 8192.

Диаграмма функции `weekname()`, определяющей номер недели для транзакции 8192.

Диаграмма функции `weekname()`weekname(), определяющей номер недели для транзакции 8192. ![Диаграмма, которая показывает, как функция weekname() определяет номер недели, когда совершена транзакция 8192.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekname-example1-diagram2.png)

Поскольку приложение использует неполные недели, а первый день недели — воскресенье, транзакции, совершенные со 2 по 8 января, возвращают значение `2022/02` (номер недели 2 в 2022 году). Примером этого может быть транзакция 8192, которая совершена 5 января и возвращает значение `2022/02` для поля `week_number`.

## Пример 2. Скрипт period\_no

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekname.htm)

#### Скрипт загрузки и результаты

Обзор

Используется тот же набор данных и сценарий, что в первом примере.

Однако в этом примере задача состоит в том, чтобы создать поле `previous_week_number`, которое возвращает год и номер недели, предшествующей той, на которой были совершены транзакции.

Откройте Редактор загрузки данных и добавьте следующий скрипт загрузки в новый раздел.

Скрипт загрузки

```
SET BrokenWeeks=1; 
SET FirstWeekDay=6; 
						
Transactions: 
   Load 
     *, 
     weekname(date,-1) as previous_week_number 
     ; 
Load 
* 
Inline  
[ 
id,date,amount 
8183,12/27/2021,58.27 
8184,12/28/2021,67.42 
8185,12/29/2021,23.80 
8186,12/30/2021,82.06 
8187,12/31/2021,40.56 
8188,01/01/2022,37.23 
8189,01/02/2022,17.17 
8190,01/03/2022,88.27 
8191,01/04/2022,57.42 
8192,01/05/2022,53.80 
8193,01/06/2022,82.06 
8194,01/07/2022,40.56 
8195,01/08/2022,53.67 
8196,01/09/2022,26.63 
8197,01/10/2022,72.48 
8198,01/11/2022,18.37 
8199,01/12/2022,45.26 
8200,01/13/2022,58.23 
8201,01/14/2022,18.52 
]; 
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `id`
* `date`
* `week_day`
* `week_number`

Результирующая таблица

| id | date | week\_day | номер\_недели |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | Mon | 2021/52 |
| 8184 | 12/28/2021 | Tue | 2021/52 |
| 8185 | 12/29/2021 | Wed | 2021/52 |
| 8186 | 12/30/2021 | Thu | 2021/52 |
| 8187 | 12/31/2021 | Fri | 2021/52 |
| 8188 | 01/01/2022 | Sat | 2021/52 |
| 8189 | 01/02/2022 | Sun | 2021/53 |
| 8190 | 01/03/2022 | Mon | 2021/53 |
| 8191 | 01/04/2022 | Tue | 2021/53 |
| 8192 | 01/05/2022 | Wed | 2021/53 |
| 8193 | 01/06/2022 | Thu | 2021/53 |
| 8194 | 01/07/2022 | Fri | 2021/53 |
| 8195 | 01/08/2022 | Sat | 2022/01 |
| 8196 | 01/09/2022 | Sun | 2022/02 |
| 8197 | 01/10/2022 | Mon | 2022/02 |
| 8198 | 01/11/2022 | Tue | 2022/02 |
| 8199 | 01/12/2022 | Wed | 2022/02 |
| 8200 | 01/13/2022 | Thu | 2022/02 |
| 8201 | 01/14/2022 | Fri | 2022/02 |

Так как в качестве аргумента смещения в функции `weekname()` использовалось `period_no` = `-1`, функция сначала определяет неделю, в течение которой совершены транзакции. Затем она возврващается на неделю назад и определяет первую миллисекунду этой недели.

Диаграмма функции `weekname()` со смещением `period_no` = -1.

Диаграмма функции `weekname()` со смещением `period_no` = -1.

Диаграмма функции `weekname()`weekname() со смещением `period_no`period\_no = -1. ![Диаграмма, которая показывает, как смещение period_no -1 заставляет функцию weekname() извлекать номер предшествующей недели.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekname-example2-diagram.png)

Транзакция 8192 совершена 5 января 2022 года. Функция `weekname()` возвращается на неделю назад к 30 декабря 2021 года и возвращает номер недели и год для этой даты — `2021/53`.

## Пример 3. Аргумент first\_week\_day

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekname.htm)

#### Скрипт загрузки и результаты

Обзор

Используется тот же набор данных и сценарий, что в первом примере.

Однако в этом примере политика компании такова, что рабочая неделя начинается во вторник.

Откройте Редактор загрузки данных и добавьте следующий скрипт загрузки в новый раздел.

Скрипт загрузки

```
SET BrokenWeeks=1; 
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
   Load 
     *, 
     weekday(date) as week_day, 
     weekname(date,0,1) as week_number 
     ; 
Load 
* 
Inline  
[ 
id,date,amount 
8183,12/27/2021,58.27 
8184,12/28/2021,67.42 
8185,12/29/2021,23.80 
8186,12/30/2021,82.06 
8187,12/31/2021,40.56 
8188,01/01/2022,37.23 
8189,01/02/2022,17.17 
8190,01/03/2022,88.27 
8191,01/04/2022,57.42 
8192,01/05/2022,53.80 
8193,01/06/2022,82.06 
8194,01/07/2022,40.56 
8195,01/08/2022,53.67 
8196,01/09/2022,26.63 
8197,01/10/2022,72.48 
8198,01/11/2022,18.37 
8199,01/12/2022,45.26 
8200,01/13/2022,58.23 
8201,01/14/2022,18.52 
]; 
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `id`
* `date`
* `week_day`
* `week_number`

Результирующая таблица

| id | date | week\_day | номер\_недели |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | Mon | 2021/52 |
| 8184 | 12/28/2021 | Tue | 2021/53 |
| 8185 | 12/29/2021 | Wed | 2021/53 |
| 8186 | 12/30/2021 | Thu | 2021/53 |
| 8187 | 12/31/2021 | Fri | 2021/53 |
| 8188 | 01/01/2022 | Sat | 2022/01 |
| 8189 | 01/02/2022 | Sun | 2022/01 |
| 8190 | 01/03/2022 | Mon | 2022/01 |
| 8191 | 01/04/2022 | Tue | 2022/02 |
| 8192 | 01/05/2022 | Wed | 2022/02 |
| 8193 | 01/06/2022 | Thu | 2022/02 |
| 8194 | 01/07/2022 | Fri | 2022/02 |
| 8195 | 01/08/2022 | Sat | 2022/02 |
| 8196 | 01/09/2022 | Sun | 2022/02 |
| 8197 | 01/10/2022 | Mon | 2022/02 |
| 8198 | 01/11/2022 | Tue | 2022/03 |
| 8199 | 01/12/2022 | Wed | 2022/03 |
| 8200 | 01/13/2022 | Thu | 2022/03 |
| 8201 | 01/14/2022 | Fri | 2022/03 |

Диаграмма функции `weekname()`, где первым днем недели является вторник.

Диаграмма функции `weekname()`, где первым днем недели является вторник.

Диаграмма функции `weekname()`weekname(), где первым днем недели является вторник. ![Диаграмма, которая показывает работу функции weekname(), когда вторник задан в качестве первого дня недели.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekname-example3-diagram1.png)

Поскольку аргумент `first_week_date` функции `1` используется в функции `weekname()`, в качестве первого дня недели используется вторник. Таким образом, функция определяет, что 53-я неделя 2021 года начинается во вторник, 28 декабря; и, поскольку в приложении используются неполные недели, неделя 1 начинается 1 января 2022 г. и заканчивается в последнюю миллисекунду понедельника, 3 января 2022 г.

Диаграмма, которая показывает номер недели для транзакции 8192, где первым днем недели является вторник.

Диаграмма, которая показывает номер недели для транзакции 8192, где первым днем недели является вторник.

Диаграмма, которая показывает номер недели для транзакции 8192, где первым днем недели является вторник. ![Диаграмма, которая показывает, как в результате настройки вторника в качестве первого дня недели функция weekname() возвращает другой номер недели для транзакции 8192.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekname-example3-diagram2.png)

Транзакция 8192 совершена 5 января 2022 года. Таким образом, используя для параметра `first_week_day` значение «вторник», функция `weekname()` возвращает значение `2022/02` для поля `week_number`.

## Пример 4. Пример объекта диаграммы

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekname.htm)

#### Скрипт загрузки и выражение диаграммы

Обзор

Используется тот же набор данных и сценарий, что в первом примере.

Однако в этом примере в приложение загружается неизмененный набор данных. Расчет, который возвращает номер года для недели, когда была совершена транзакция, создается как мера в объекте диаграммы в приложении.

Скрипт загрузки

```
SET BrokenWeeks=1; 
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8183,12/27/2021,58.27 
8184,12/28/2021,67.42 
8185,12/29/2021,23.80 
8186,12/30/2021,82.06 
8187,12/31/2021,40.56 
8188,01/01/2022,37.23 
8189,01/02/2022,17.17 
8190,01/03/2022,88.27 
8191,01/04/2022,57.42 
8192,01/05/2022,53.80 
8193,01/06/2022,82.06 
8194,01/07/2022,40.56 
8195,01/08/2022,53.67 
8196,01/09/2022,26.63 
8197,01/10/2022,72.48 
8198,01/11/2022,18.37 
8199,01/12/2022,45.26 
8200,01/13/2022,58.23 
8201,01/14/2022,18.52 
]; 
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* id

* date

* =week\_day (date)

Чтобы рассчитать начало недели, когда была совершена транзакция, создайте следующую меру:

=weekname(date)

Результирующая таблица

| id | date | =weekday(date) | =weekname(date) |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | Mon | 2021/53 |
| 8184 | 12/28/2021 | Tue | 2021/53 |
| 8185 | 12/29/2021 | Wed | 2021/53 |
| 8186 | 12/30/2021 | Thu | 2021/53 |
| 8187 | 12/31/2021 | Fri | 2021/53 |
| 8188 | 01/01/2022 | Sat | 2022/01 |
| 8189 | 01/02/2022 | Sun | 2022/02 |
| 8190 | 01/03/2022 | Mon | 2022/02 |
| 8191 | 01/04/2022 | Tue | 2022/02 |
| 8192 | 01/05/2022 | Wed | 2022/02 |
| 8193 | 01/06/2022 | Thu | 2022/02 |
| 8194 | 01/07/2022 | Fri | 2022/02 |
| 8195 | 01/08/2022 | Sat | 2022/02 |
| 8196 | 01/09/2022 | Sun | 2022/03 |
| 8197 | 01/10/2022 | Mon | 2022/03 |
| 8198 | 01/11/2022 | Tue | 2022/03 |
| 8199 | 01/12/2022 | Wed | 2022/03 |
| 8200 | 01/13/2022 | Thu | 2022/03 |
| 8201 | 01/14/2022 | Fri | 2022/03 |

Поле week\_number создано как мера в объекте диаграммы с использованием функции weekname(), где в качестве аргумента функции передано поле даты.

Функция weekname() изначально определяет, на какую неделю приходится значение даты, и возвращает номер недели и год, когда была совершена транзакция.

Системная переменная FirstWeekDay задает воскресенье как первый день недели. Системная переменная BrokenWeeks задает для приложения использование неполных недель, что означает, что неделя 1 начинается 1 января.

Диаграмма, которая показывает номер недели, где первым днем недели является воскресенье.

Диаграмма, которая показывает номер недели, где первым днем недели является воскресенье.

Диаграмма, которая показывает номер недели, где первым днем недели является воскресенье. ![Диаграмма, которая показывает, что неделя 1 начинается 1 января, а воскресенье является первым днем недели.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekname-example4-diagram1.png)

Диаграмма, которая показывает, что транзакция 8192 совершена на неделе 2.

Диаграмма, которая показывает, что транзакция 8192 совершена на неделе 2.

Диаграмма, которая показывает, что транзакция 8192 совершена на неделе 2. ![Диаграмма, которая показывает, что транзакция 8192 совершена на неделе 2.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekname-example4-diagram1.png)

Поскольку приложение использует неполные недели, а первый день недели — воскресенье, транзакции, совершенные со 2 по 8 января, возвращают значение 2022/02, то есть неделя 2 в 2022 году. Обратите внимание, что транзакция 8192 совершена 5 января и возвращает значение 2022/02 для поля week\_number.

## Пример 5. Сценарий

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekname.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, содержащий набор транзакций за последнюю неделю 2019 года, загружается в таблицу под именем Transactions.

* Системная переменная BrokenWeeks, для которой задан формат 0.

* Системная переменная ReferenceDay, для которой задан формат 2.

* Системная переменная DateFormat, для которой задан формат MM/DD/YYYY.

Скрипт загрузки

```
SET BrokenWeeks=0;  
SET ReferenceDay=2;  
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8183,12/27/2019,58.27 
8184,12/28/2019,67.42 
8185,12/29/2019,23.80 
8186,12/30/2019,82.06 
8187,12/31/2019,40.56 
8188,01/01/2020,37.23 
8189,01/02/2020,17.17 
8190,01/03/2020,88.27 
8191,01/04/2020,57.42 
8192,01/05/2020,53.80 
8193,01/06/2020,82.06 
8194,01/07/2020,40.56 
8195,01/08/2020,53.67 
8196,01/09/2020,26.63 
8197,01/10/2020,72.48 
8198,01/11/2020,18.37 
8199,01/12/2020,45.26 
8200,01/13/2020,58.23 
8201,01/14/2020,18.52 
]; 
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу.

Создайте вычисляемое измерение, используя следующее выражение:

=weekname(date)

Чтобы рассчитать общий объем продаж, создайте следующую меру агрегирования:

=sum(amount)

Задайте параметру Формат чисел меры значение Денежный.

Результирующая таблица

| weekname(date) | sum(amount) |
| --- | --- |
| 2019/52 | $125.69 |
| 2020/01 | $346.51 |
| 2020/02 | $347.57 |
| 2020/03 | $122.01 |

Чтобы продемонстрировать результаты использования функции weekname() в этом сценарии, добавьте следующее поле в качестве измерения:

date

Таблица результатов с полем даты

| weekname(date) | date | sum(amount) |
| --- | --- | --- |
| 2019/52 | 12/27/2019 | $58.27 |
| 2019/52 | 12/28/2019 | $67.42 |
| 2020/01 | 12/29/2019 | $23.80 |
| 2020/01 | 12/30/2019 | $82.06 |
| 2020/01 | 12/31/2019 | $40.56 |
| 2020/01 | 01/01/2020 | $37.23 |
| 2020/01 | 01/02/2020 | $17.17 |
| 2020/01 | 01/03/2020 | $88.27 |
| 2020/01 | 01/04/2020 | $57.42 |
| 2020/02 | 01/05/2020 | $53.80 |
| 2020/02 | 01/06/2020 | $82.06 |
| 2020/02 | 01/07/2020 | $40.56 |
| 2020/02 | 01/08/2020 | $53.67 |
| 2020/02 | 01/09/2020 | $26.63 |
| 2020/02 | 01/10/2020 | $72.48 |
| 2020/02 | 01/11/2020 | $18.37 |
| 2020/03 | 01/12/2020 | $45.26 |
| 2020/03 | 01/13/2020 | $58.23 |
| 2020/03 | 01/14/2020 | $18.52 |

Поскольку в приложении используются непрерывные недели, а для первой недели требуется как минимум два дня в январе из-за системной переменной ReferenceDay, неделя 1 2020 года включает транзакции с 29 декабря 2019 года.