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

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

Диаграмма диапазона времени функции `yearname()`.

Диаграмма диапазона времени функции `yearname()`.

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

Функция `yearname()` отличается от функции `year()` тем, что позволяет сместить дату, которую требуется оценить, и позволяет задать первый месяц года.

Если первый месяц года не январь, функция вернет два четырехзначных значения года в течение двенадцатимесячного периода, содержащего дату. Например, если начало года — апрель, а оцениваемая дата — 06/30/2020, будет возвращен результат будет `2020-2021`.

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

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

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

Синтаксис:

YearName(date[, period\_no[, first\_month\_of\_year]] )

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

| Аргумент | Описание |
| --- | --- |
| date | Дата или метка времени для вычисления. |
| period\_no | period\_no — целое число, где 0 обозначает год, включающий значение, указанное в поле date. Отрицательные значения, заданные в поле period\_no, означают предшествующие годы, положительные — последующие. |
| first\_month\_of\_year | Если необходимо работать с годами (финансовыми), которые начинаются не в январе, задайте значение от 2 до 12 в поле first\_month\_of\_year. Отображаемое значение будет строчным, показывающим два года. |

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

значения first\_month\_of\_year

| Месяц | Величина |
| --- | --- |
| Февраль | 2 |
| Март | 3 |
| Апрель | 4 |
| May | 5 |
| Июнь | 6 |
| Июль | 7 |
| Август | 8 |
| Сентябрь | 9 |
| Октябрь | 10 |
| Ноябрь | 11 |
| Декабрь | 12 |

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

Функция `yearname()` полезна для сравнения агрегирования по годам. Например, если требуется увидеть общий объем продаж продуктов по году.

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

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

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

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

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

| Пример | Результат |
| --- | --- |
| `yearname('10/19/2001')` | Возвращает «2001». |
| `yearname('10/19/2001',-1)` | Возвращает «2000». |
| `yearname('10/19/2001',0,4)` | Возвращает «2001-2002». |

Связанные темы

| Тема | Описание |
| --- | --- |
| [year — функция скриптa и диаграммы](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/year.htm) | Эта функция возвращает год в виде целого числа, а выражение интерпретируется как дата согласно стандартной интерпретации чисел. |

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

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

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

Обзор

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

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

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

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

* Предшествующая загрузка, которая использует функцию `yearname()`, заданную как поле `year_name`.

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

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
      *, 
      yearname(date) as year_name 
      ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/13/2020',37.23 
8189,'02/26/2020',17.17 
8190,'03/27/2020',88.27 
8191,'04/16/2020',57.42 
8192,'05/21/2020',53.80 
8193,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/05/2020',87.21 
8196,'01/22/2021',95.93 
8197,'02/03/2021',45.89 
8198,'03/17/2021',36.23 
8199,'04/23/2021',25.66 
8200,'05/04/2021',82.77 
8201,'06/30/2021',69.98 
8202,'07/26/2021',76.11 
8203,'12/27/2021',25.12 
8204,'06/06/2022',46.23 
8205,'07/18/2022',84.21 
8206,'11/14/2022',96.24 
8207,'12/12/2022',67.67 
]; 
```

Результаты

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

* `date`
* `year_name`

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

| date | year\_name |
| --- | --- |
| 01/13/2020 | 2020 |
| 02/26/2020 | 2020 |
| 03/27/2020 | 2020 |
| 04/16/2020 | 2020 |
| 05/21/2020 | 2020 |
| 08/14/2020 | 2020 |
| 10/07/2020 | 2020 |
| 12/05/2020 | 2020 |
| 01/22/2021 | 2021 |
| 02/03/2021 | 2021 |
| 03/17/2021 | 2021 |
| 04/23/2021 | 2021 |
| 05/04/2021 | 2021 |
| 06/30/2021 | 2021 |
| 07/26/2021 | 2021 |
| 12/27/2021 | 2021 |
| 06/06/2022 | 2022 |
| 07/18/2022 | 2022 |
| 11/14/2022 | 2022 |
| 12/12/2022 | 2022 |

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

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

Диаграмма функции `yearname()`, которая показывает 2021 как значение года.

Диаграмма функции `yearname()`, которая показывает 2021 как значение года.

Диаграмма функции `yearname()`yearname(), которая показывает 2021 как значение года.![На диаграмме показано, как функция yearname() возвращает 2021 год для даты 17 марта 2021 года.](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-yearname-example1-diagram.png)

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

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

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

Обзор

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

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

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

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

* Предшествующая загрузка, которая использует функцию `yearname()`, заданную как поле `year_name`.

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

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

Transactions: 
    Load 
      *, 
      yearname(date,-1) as prior_year_name 
      ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/13/2020',37.23 
8189,'02/26/2020',17.17 
8190,'03/27/2020',88.27 
8191,'04/16/2020',57.42 
8192,'05/21/2020',53.80 
8193,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/05/2020',87.21 
8196,'01/22/2021',95.93 
8197,'02/03/2021',45.89 
8198,'03/17/2021',36.23 
8199,'04/23/2021',25.66 
8200,'05/04/2021',82.77 
8201,'06/30/2021',69.98 
8202,'07/26/2021',76.11 
8203,'12/27/2021',25.12 
8204,'06/06/2022',46.23 
8205,'07/18/2022',84.21 
8206,'11/14/2022',96.24 
8207,'12/12/2022',67.67 
];  
```

Результаты

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

* `date`
* `prior_year_name`

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

| date | prior\_year\_name |
| --- | --- |
| 01/13/2020 | 2019 |
| 02/26/2020 | 2019 |
| 03/27/2020 | 2019 |
| 04/16/2020 | 2019 |
| 05/21/2020 | 2019 |
| 08/14/2020 | 2019 |
| 10/07/2020 | 2019 |
| 12/05/2020 | 2019 |
| 01/22/2021 | 2020 |
| 02/03/2021 | 2020 |
| 03/17/2021 | 2020 |
| 04/23/2021 | 2020 |
| 05/04/2021 | 2020 |
| 06/30/2021 | 2020 |
| 07/26/2021 | 2020 |
| 12/27/2021 | 2020 |
| 06/06/2022 | 2021 |
| 07/18/2022 | 2021 |
| 11/14/2022 | 2021 |
| 12/12/2022 | 2021 |

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

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

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

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

## Пример 3. Аргумент first\_month\_of\_year

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

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

Обзор

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

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

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

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

* Предшествующая загрузка, которая использует функцию `yearname()`, заданную как поле `year_name`.

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

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

Transactions: 
    Load 
      *, 
      yearname(date,0,4) as year_name 
      ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/13/2020',37.23 
8189,'02/26/2020',17.17 
8190,'03/27/2020',88.27 
8191,'04/16/2020',57.42 
8192,'05/21/2020',53.80 
8193,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/05/2020',87.21 
8196,'01/22/2021',95.93 
8197,'02/03/2021',45.89 
8198,'03/17/2021',36.23 
8199,'04/23/2021',25.66 
8200,'05/04/2021',82.77 
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11 
8203,'12/27/2021',25.12 
8204,'06/06/2022',46.23 
8205,'07/18/2022',84.21 
8206,'11/14/2022',96.24 
8207,'12/12/2022',67.67 
];
```

Результаты

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

* `id`
* `date`
* `year_name`

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

| date | year\_name |
| --- | --- |
| 01/13/2020 | 2019-2020 |
| 02/26/2020 | 2019-2020 |
| 03/27/2020 | 2019-2020 |
| 04/16/2020 | 2020-2021 |
| 05/21/2020 | 2020-2021 |
| 08/14/2020 | 2020-2021 |
| 10/07/2020 | 2020-2021 |
| 12/05/2020 | 2020-2021 |
| 01/22/2021 | 2020-2021 |
| 02/03/2021 | 2020-2021 |
| 03/17/2021 | 2020-2021 |
| 04/23/2021 | 2021-2022 |
| 05/04/2021 | 2021-2022 |
| 06/30/2021 | 2021-2022 |
| 07/26/2021 | 2021-2022 |
| 12/27/2021 | 2021-2022 |
| 06/06/2022 | 2022-2023 |
| 07/18/2022 | 2022-2023 |
| 11/14/2022 | 2022-2023 |
| 12/12/2022 | 2022-2023 |

Поскольку аргумент `first_month_of_year` функции `4` используется в функции `yearname()`, начало года перемещается с 1 января на 1 апреля. Таким образом, каждый двенадцатимесячный период пересекает два календарных года, а функция `yearname()` возвращает два года в виде четырехзначных чисел для оцениваемых дат.

Транзакция 8199 совершена 17 марта 2021 года. Функция `yearname()` задает в качестве начала года 1 апреля и в качестве окончания 30 марта. Таким образом, транзакция 8198 произошла в периоде с 1 апреля 2020 г. по 30 марта 2021 г. В результате функция `yearname()` возвращает значение 2020-2021.

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

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

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

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

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

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

Обзор

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

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

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

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

Однако поле, возвращающее год, в котором совершена транзакция, создается как мера в объекте диаграммы.

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

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/13/2020',37.23 
8189,'02/26/2020',17.17 
8190,'03/27/2020',88.27 
8191,'04/16/2020',57.42 
8192,'05/21/2020',53.80 
8193,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/05/2020',87.21 
8196,'01/22/2021',95.93 
8197,'02/03/2021',45.89 
8198,'03/17/2021',36.23 
8199,'04/23/2021',25.66 
8200,'05/04/2021',82.77 
8201,'06/30/2021',69.98 
8202,'07/26/2021',76.11 
8203,'12/27/2021',25.12 
8204,'06/06/2022',46.23 
8205,'07/18/2022',84.21 
8206,'11/14/2022',96.24 
8207,'12/12/2022',67.67 
];	
```

Результаты

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

`date`

Чтобы рассчитать поле `year_name`, создайте эту меру:

`=yearname(date)`

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

| date | =yearname(date) |
| --- | --- |
| 01/13/2020 | 2020 |
| 02/26/2020 | 2020 |
| 03/27/2020 | 2020 |
| 04/16/2020 | 2020 |
| 05/21/2020 | 2020 |
| 08/14/2020 | 2020 |
| 10/07/2020 | 2020 |
| 12/05/2020 | 2020 |
| 01/22/2021 | 2021 |
| 02/03/2021 | 2021 |
| 03/17/2021 | 2021 |
| 04/23/2021 | 2021 |
| 05/04/2021 | 2021 |
| 06/30/2021 | 2021 |
| 07/26/2021 | 2021 |
| 12/27/2021 | 2021 |
| 06/06/2022 | 2022 |
| 07/18/2022 | 2022 |
| 11/14/2022 | 2022 |
| 12/12/2022 | 2022 |

Мера `year_name` создана в объекте диаграммы с использованием функции `yearname()`, где в качестве аргумента функции передано поле даты.

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

Диаграмма функции `yearname()`, которая показывает 2021 как значение года.

Диаграмма функции `yearname()`, которая показывает 2021 как значение года.

Диаграмма функции `yearname()`yearname(), которая показывает 2021 как значение года.![Диаграмма, которая показывает, что функция yearname(), которая показывает 2021 как значение года.](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-yearname-example4-diagram.png)

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

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

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

Обзор

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

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

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

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

Конечный пользователь хотел бы получить диаграмму, на которой представлены общие продажи по кварталам для транзакций. Используйте функцию yearname() в качестве вычисляемого измерения для создания этой диаграммы, когда измерение yearname() недоступно в модели данных.

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

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

Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/13/2020',37.23 
8189,'02/26/2020',17.17 
8190,'03/27/2020',88.27 
8191,'04/16/2020',57.42 
8192,'05/21/2020',53.80 
8193,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/05/2020',87.21 
8196,'01/22/2021',95.93 
8197,'02/03/2021',45.89 
8198,'03/17/2021',36.23 
8199,'04/23/2021',25.66 
8200,'05/04/2021',82.77 
8201,'06/30/2021',69.98 
8202,'07/26/2021',76.11 
8203,'12/27/2021',25.12 
8204,'06/06/2022',46.23 
8205,'07/18/2022',84.21 
8206,'11/14/2022',96.24 
8207,'12/12/2022',67.67 
];
```

Результаты

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

Чтобы сравнить сводки по годам, создайте это вычисляемое измерение:

=yearname(date)

Создайте это измерение:

=sum(amount)

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

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

| yearname(date) | sum(amount) |
| --- | --- |
| 2020 | $463.55 |
| 2021 | $457.69 |
| 2022 | $294.35 |