# week — функция скриптa и диаграммы

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

Синтаксис:

week(timestamp [, first\_week\_day [, broken\_weeks [, reference\_day]]])

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

Аргументы

| Аргумент | Описание |
| --- | --- |
| timestamp | Дата или метка времени для вычисления. |
| 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/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm). |
| broken\_weeks | Если параметр broken\_weeks не указан, значение переменной BrokenWeeks будет использовано для определения, какими должны быть недели: целыми или разбитыми.<br><br>Для получения дополнительной информации о системной переменной см. [BrokenWeeks](https://help.qlik.com/ru-RU/sense/November2025/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/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ReferenceDay.htm) |

Функция `week()` определяет, на какую неделю приходится дата, и возвращает номер этой недели.

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

Это означает, что большинство европейских разработчиков приложений получают следующие переменные среды в соответствии с определением ISO 8601:

```
Set FirstWeekDay =0;    // Monday as first week day
Set BrokenWeeks  =0;    // Use unbroken weeks
Set ReferenceDay =4;    // Jan 4th is always in week 1
```

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

```
Set FirstWeekDay =6;    // Sunday as first week day
Set BrokenWeeks  =1;    // Use broken weeks
Set ReferenceDay =1;    // Jan 1st is always in week 1
```

Первый день недели определяется системной переменной `FirstWeekDay`. Также можно изменить первый день недели, используя аргумент `first_week_day` в функции `week()`.

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

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

## Когда это следует использовать

Функция `The week()` полезна, когда требуется сравнить агрегирования по неделям. Например, ее можно использовать, если требуется увидеть общий объем продаж продуктов по неделям. Функции `week()` отдается предпочтение перед `weekname()`, когда пользователю требуется, чтобы в вычислении не всегда использовались системные переменные приложения: `BrokenWeeks`, `FirstWeekDay` или `ReferenceDay`.

Например, если требуется увидеть общий объем продаж продуктов по неделям.

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

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

Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе `SET DateFormat` скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.

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

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

```
Set DateFormat= 'MM/DD/YYYY';  
Set FirstWeekDay=0;  
Set BrokenWeeks=0;   
Set ReferenceDay=4;
```

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

| Пример | Результат |
| --- | --- |
| week('12/28/2021') | Возвращает 52. |
| week(44614) | Возвращает 8, так как это порядковый номер для 02/22/2022. |
| week('01/03/2021') | Возвращает 53. |
| week('01/03/2021',6) | Возвращает 1. |

## Пример 1. Системные переменные по умолчанию

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

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

Обзор

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

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

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

* Поле даты было предоставлено в формате системной переменной DateFormat (MM/DD/YYYY).

* Создание поля week\_number, возвращающего год и номер недели, в течение которой совершены транзакции.

* Создание поля с именем week\_day, которое отображает день недели для каждой даты транзакции.

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

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

Transactions:
    Load
        *,
        WeekDay(date) as week_day,
        Week(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 | 53 |
| 8184 | 12/28/2021 | Tue | 53 |
| 8185 | 12/29/2021 | Wed | 53 |
| 8186 | 12/30/2021 | Thu | 53 |
| 8187 | 12/31/2021 | Fri | 53 |
| 8188 | 01/01/2022 | Sat | 1 |
| 8189 | 01/02/2022 | Sun | 2 |
| 8190 | 01/03/2022 | Mon | 2 |
| 8191 | 01/04/2022 | Tue | 2 |
| 8192 | 01/05/2022 | Wed | 2 |
| 8193 | 01/06/2022 | Thu | 2 |
| 8194 | 01/07/2022 | Fri | 2 |
| 8195 | 01/08/2022 | Sat | 2 |
| 8196 | 01/09/2022 | Sun | 3 |
| 8197 | 01/10/2022 | Mon | 3 |
| 8198 | 01/11/2022 | Tue | 3 |
| 8199 | 01/12/2022 | Wed | 3 |
| 8200 | 01/13/2022 | Thu | 3 |
| 8201 | 01/14/2022 | Fri | 3 |

Поле week\_number создано предшествующим оператором load с использованием функции week(), где в качестве аргумента передано поле date.

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

* BrokenWeeks: отсчет недель начинается с 1 января

* FirstWeekDay: первым днем недели является воскресенье

Диаграмма функции week(), в которой используются системные переменные по умолчанию

Диаграмма функции week(), в которой используются системные переменные по умолчанию

Диаграмма функции week()week(), в которой используются системные переменные по умолчанию![Диаграмма, демонстрирующая, как функция week разбивает даты года на недели с соответствующими номерами.](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-def-sys-variables.png)

Так как приложение использует системную переменную BrokenWeeks по умолчанию, неделя 1 начинается в субботу 1 января.

Из-за системной переменной FirstWeekDay по умолчанию неделя начинается в воскресенье. Первое воскресенье после 1 января выпадает на 2 января, это первый день недели 2.

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

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

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

Обзор

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

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

* Создание поля week\_number, возвращающего год и номер недели, в течение которой совершены транзакции.

* Создание поля с именем week\_day, которое отображает день недели для каждой даты транзакции.

В этом примере нам нужно задать вторник в качестве первого дня рабочей недели.

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

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

Transactions:
    Load
        *,
        WeekDay(date) as week_day,
        Week(date,1) as week_number
        ;
Load
*
Inline 
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,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 | 52 |
| 8184 | 12/28/2021 | Tue | 53 |
| 8185 | 12/29/2021 | Wed | 53 |
| 8186 | 12/30/2021 | Thu | 53 |
| 8187 | 12/31/2021 | Fri | 53 |
| 8188 | 01/01/2022 | Sat | 1 |
| 8189 | 01/02/2022 | Sun | 1 |
| 8190 | 01/03/2022 | Mon | 1 |
| 8191 | 01/04/2022 | Tue | 2 |
| 8192 | 01/05/2022 | Wed | 2 |
| 8193 | 01/06/2022 | Thu | 2 |
| 8194 | 01/07/2022 | Fri | 2 |
| 8195 | 01/08/2022 | Sat | 2 |
| 8196 | 01/09/2022 | Sun | 2 |
| 8197 | 01/10/2022 | Mon | 2 |
| 8198 | 01/11/2022 | Tue | 3 |
| 8199 | 01/12/2022 | Wed | 3 |
| 8200 | 01/13/2022 | Thu | 3 |
| 8201 | 01/14/2022 | Fri | 3 |

Приложение по-прежнему использует неполные недели. Однако аргументу first\_week\_day задано значение 1 в функции week(). В результате этого первым днем недели становится вторник.

Диаграмма функции week() , пример с аргументом first\_week\_day

Диаграмма функции week() , пример с аргументом first\_week\_day

Диаграмма функции week()week() , пример с аргументом first\_week\_day![Диаграмма, демонстрирующая, как функция week разбивает даты года на недели с соответствующими номерами.](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-first-week-day.png)

Приложение использует системную переменную BrokenWeeks по умолчанию, поэтому неделя 1 начинается в субботу 1 января.

Аргумент first\_week\_day функции week() устанавливает в качестве первого дня недели вторник. Таким образом, неделя 53 начинается 28 декабря 2021 года.

Однако поскольку функция по-прежнему использует неполные недели, неделя 1 будет включать только 2 дня, так как первый вторник после 1 января выпадает на 3 января.

## Пример 3. Аргумент unbroken\_weeks

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

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

Обзор

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

Скрипт загрузки содержит тот же набор данных и сценарий, что в первом примере.

В этом примере используются полные недели.

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

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

Transactions:
    Load
        *,
        WeekDay(date) as week_day,
        Week(date,6,0) as week_number
        ;
Load
*
Inline 
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,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

Диаграмма функции week(), пример с объектом диаграммы

Диаграмма функции week(), пример с объектом диаграммы

Диаграмма функции week()week(), пример с объектом диаграммы![ДОБАВЬТЕ ЗДЕСЬ ДРУГОЙ ТЕКСТ!!!!](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-chart-object.png)

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

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

Параметру first\_week\_date задано значение 1, в результате чего первым днем недели становится вторник. Параметру broken\_weeks задано значение 0, в результате чего функция использует полные недели. В заключение третий параметр задает reference\_day = 2.

Параметру first\_week\_date задано значение 6, в результате чего первым днем недели становится воскресенье. Параметру broken\_weeks задано значение 0, в результате чего функция использует полные недели.

Диаграмма функции week(), пример с использованием полных недель

Диаграмма функции week(), пример с использованием полных недель

Диаграмма функции week(), пример с использованием полных недель![Диаграмма, демонстрирующая, как функция week разбивает даты года на недели с соответствующими номерами.](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-unbroken-weeks.png)

При использовании полных недель неделя 1 необязательно начинается 1 января, но она должна содержать не меньше 4 дней января. Таким образом, в наборе данных неделя 52 заканчивается в субботу, 1 января 2022 года. В таком случае неделя 1 начинается с системой переменной FirstWeekDay, то есть в воскресенье, 2 января. Эта неделя заканчивается в следующую субботу, 8 января.

## Пример 4. Аргумент reference\_day

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

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

Обзор

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

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

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

* Создание поля week\_number, возвращающего год и номер недели, в течение которой совершены транзакции.

* Создание поля с именем week\_day, которое отображает день недели для каждой даты транзакции.

Кроме того, должны соблюдаться следующие условия:

* Рабочая неделя начинается во вторник.

* Компания использует полные недели.

* Для reference\_day задано значение 2. Другими словами, минимальное количество дней января в неделе 1 должно быть 2.

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

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

Transactions:
    Load
        *,
        WeekDay(date) as week_day,
        Week(date,1,0,2) as week_number
        ;
Load
*
Inline 
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,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 | 52 |
| 8184 | 12/28/2021 | Tue | 1 |
| 8185 | 12/29/2021 | Wed | 1 |
| 8186 | 12/30/2021 | Thu | 1 |
| 8187 | 12/31/2021 | Fri | 1 |
| 8188 | 01/01/2022 | Sat | 1 |
| 8189 | 01/02/2022 | Sun | 1 |
| 8190 | 01/03/2022 | Mon | 1 |
| 8191 | 01/04/2022 | Tue | 2 |
| 8192 | 01/05/2022 | Wed | 2 |
| 8193 | 01/06/2022 | Thu | 2 |
| 8194 | 01/07/2022 | Fri | 2 |
| 8195 | 01/08/2022 | Sat | 2 |
| 8196 | 01/09/2022 | Sun | 2 |
| 8197 | 01/10/2022 | Mon | 2 |
| 8198 | 01/11/2022 | Tue | 3 |
| 8199 | 01/12/2022 | Wed | 3 |
| 8200 | 01/13/2022 | Thu | 3 |
| 8201 | 01/14/2022 | Fri | 3 |

Параметру first\_week\_date задано значение 1, в результате чего первым днем недели становится вторник. Параметру broken\_weeks задано значение 0, в результате чего функция использует полные недели. В заключение, третий параметр задает параметр reference\_day = 2.

Диаграмма функции week(), пример с аргументом reference\_day

Диаграмма функции week(), пример с аргументом reference\_day

Диаграмма функции week()week(), пример с аргументом reference\_day![Диаграмма, демонстрирующая, как функция week разбивает даты года на недели с соответствующими номерами.](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-reference-day.png)

Так как функция использует полные недели и reference\_day = 2 в качестве параметра, неделя 1 должна включать хотя бы два дня января. Так как первым днем недели является вторник, неделя 1 начинается 28 декабря 2021 года и заканчивается в понедельник, 3 января 2022 года.

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

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

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

Обзор

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

Скрипт загрузки содержит тот же набор данных и сценарий, что в первом примере.

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

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

```
Transactions:
Load
*
Inline 
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,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
];
```

Результаты

Выполните следующие действия.

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

2. Добавьте следующие поля как измерения:

   * id

   * date

3. Затем создайте следующую меру:

   =week (date)

4. Создайте меру , week\_day, чтобы для каждой даты транзакции отображался день недели:

   =weekday(date)

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

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

Поле «week\_number» создано предшествующим оператором load с использованием функции week(), где в качестве аргумента функции передано поле date.

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

* BrokenWeeks: отсчет недель начинается с 1 января

* FirstWeekDay: первым днем недели является воскресенье

Диаграмма функции week(), пример с объектом диаграммы

Диаграмма функции week(), пример с объектом диаграммы

Диаграмма функции week()week(), пример с объектом диаграммы![Диаграмма, демонстрирующая, как функция week разбивает даты года на недели с соответствующими номерами.](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-def-sys-variables.png)

Так как приложение использует системную переменную BrokenWeeks по умолчанию, неделя 1 начинается в субботу 1 января.

Из-за системной переменной FirstWeekDay по умолчанию неделя начинается в воскресенье. Первое воскресенье после 1 января выпадает на 2 января, это первый день недели 2.

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

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

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

Обзор

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

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

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

* Поле даты было предоставлено в формате системной переменной DateFormat (MM/DD/YYYY).

Приложение в основном использует неполные недели на информационной панели. Однако конечному пользователю нужен объект диаграммы, на котором представлены общие продажи по неделям с использованием полных недель. В качестве дня ссылки следует задать 2 января, а неделя должна начинаться со вторника. Этого можно добиться, даже если это измерение недоступно в модели данных, используя в диаграмме функцию week() в качестве вычисляемого измерения.

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

```
SET BrokenWeeks=1;
SET ReferenceDay=0;
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
];
```

Результаты

Выполните следующие действия.

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

2. Создайте следующее вычисляемое измерение:

   =week(date)

3. Затем создайте следующую меру агрегирования:

   =sum(amount)

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

5. Выберите меню Сортировка и для вычисляемого изменения удалите пользовательскую сортировку.

6. Отмените выбор параметров Сортировка по численным значениям и Сортировка по алфавиту.

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

| неделя(дата) | sum(amount) |
| --- | --- |
| 52 | $125.69 |
| 53 | $146.42 |
| 1 | $200.09 |
| 2 | $347.57 |
| 3 | $122.01 |