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

Функция lastworkdate возвращает самую раннюю дату окончания для достижения указанного числа рабочих дней no\_of\_workdays (понедельник-пятница) с начальной датой start\_date и с учетом выходных, которые можно дополнительно задать в поле holiday. Поля start\_date и holiday должны быть действительными датами или метками времени.

lastworkdate(start\_date, no\_of\_workdays {, holiday})

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

Календарь, демонстрирующий использование функции `lastworkdate()`

Календарь, демонстрирующий использование функции `lastworkdate()`

Календарь, демонстрирующий использование функции `lastworkdate()`lastworkdate() ![Diagram that shows a calendar of a month. The start date of work is set on the 10th of the month and the end date of work is set on the 26th. The days inbetween the start and end date, excluding Saturdays and Sundays, are highlighted in green.](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-lastworkdate-diagram1.png)

Ограничения

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

Параметр holiday должен быть постоянной строкой. Он не принимает выражений.

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

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

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

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

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

Аргументы

| Аргумент | Описание |
| --- | --- |
| start\_date | Начальная дата для вычисления. |
| no\_of\_workdays | Количество рабочих дней, которое должно быть получено. |
| holiday | Периоды выходных дней для исключения из рабочих дней. Праздник обозначен как постоянная строка даты. Можно указать несколько дат праздников, разделенных запятыми.<br><br>Пример: `  '12/25/2013', '12/26/2013', '12/31/2013', '01/01/2014' ` |

## Пример 1. Базовый пример

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

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

Обзор

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

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

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

* Предшествующая загрузка, которая содержит функцию `lastworkdate()`, настроенную как поле ‘`end_date`’ и определяющую запланированное окончание каждого проекта.

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

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

Projects: 
    Load 
       *, 
       LastWorkDate(start_date,effort) as end_date 
       ; 
Load 
id, 
start_date, 
effort 
Inline  
[	 
id,start_date,effort 
1,01/01/2022,14 
2,02/10/2022,17 
3,05/17/2022,5 
4,06/01/2022,12 
5,08/10/2022,26 
]; 
```

Результаты

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

* `id`
* `start_date`
* `effort`
* `end_date`

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

| Идентификатор | дата\_начала | усилия | end\_date |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 14 | 01/20/2022 |
| 2 | 10.02.2022 | 17 | 03/04/2022 |
| 3 | 05/17/2022 | 5 | 05/23/2022 |
| 4 | 01.06.2022 | 12 | 06/16/2022 |
| 5 | 10.08.2022 | 26 | 09/14/2022 |

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

В следующем календаре показаны даты начала и окончания для проекта 3, рабочие дни выделены зеленым.

Календарь с датами начала и окончания проекта 3

Календарь с датами начала и окончания проекта 3

Календарь с датами начала и окончания проекта 3 ![Diagram that shows the start date of project 3 as May 17 and the last work date as May 23, for a total of five working days.](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-lastworkdate-example1-diagram.png)

## Пример 2. Один праздник

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

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

Обзор

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

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

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

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

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

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

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

Projects: 
    Load 
       *, 
       LastWorkDate(start_date,effort, '05/18/2022') as end_date 
       ; 
Load 
id, 
start_date, 
effort 
Inline  
[	 
id,start_date,effort 
1,01/01/2022,14 
2,02/10/2022,17 
3,05/17/2022,5 
4,06/01/2022,12 
5,08/10/2022,26 
]; 
```

Результаты

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

* `id`
* `start_date`
* `effort`
* `end_date`

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

| Идентификатор | дата\_начала | усилия | end\_date |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 14 | 01/20/2022 |
| 2 | 10.02.2022 | 17 | 03/04/2022 |
| 3 | 05/17/2022 | 5 | 05/24/2022 |
| 4 | 01.06.2022 | 12 | 06/16/2022 |
| 5 | 10.08.2022 | 26 | 09/14/2022 |

Один запланированный праздник передан в качестве третьего аргумента функции `lastworkdate()`. В результате, дата окончания проекта 3 сдвигается на один день вперед, так как праздник выпадает на один из рабочих дней до даты окончания.

В следующем календаре отображаются даты начала и окончания для проекта 3, а также показано, что из-за праздника дата окончания проекта переносится на один день.

Календарь с датами начала и окончания проекта 3 и государственным праздником 18 мая

Календарь с датами начала и окончания проекта 3 и государственным праздником 18 мая

Календарь с датами начала и окончания проекта 3 и государственным праздником 18 мая ![Diagram that shows the start date of project 3 as May 17 with a holiday on May 18. The last work date of the project moves to May 24.](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-lastworkdate-example2-diagram.png)

## Пример 3. Несколько праздников

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

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

Обзор

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

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

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

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

Однако запланировано четыре праздничных дня в мае — 19, 20, 21 и 22. Функция `lastworkdate()` в предыдущей загрузке включает все праздничные дни в третьем аргументе, чтобы определить, когда планируется завершение каждого проекта.

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

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

Projects: 
    Load 
       *, 
       LastWorkDate(start_date,effort, '05/19/2022','05/20/2022','05/21/2022','05/22/2022') as end_date 
       ; 
Load 
id, 
start_date, 
effort 
Inline  
[	 
id,start_date,effort 
1,01/01/2022,14 
2,02/10/2022,17 
3,05/17/2022,5 
4,06/01/2022,12 
5,08/10/2022,26 
]; 
```

Результаты

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

* `id`
* `start_date`
* `effort`
* `end_date`

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

| Идентификатор | дата\_начала | усилия | end\_date |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 14 | 01/20/2022 |
| 2 | 10.02.2022 | 17 | 03/04/2022 |
| 3 | 05/17/2022 | 5 | 05/25/2022 |
| 4 | 01.06.2022 | 12 | 06/16/2022 |
| 5 | 10.08.2022 | 26 | 09/14/2022 |

Четыре праздничных дня переданы в виде списка аргументов в функции `lastworkdate()` после даты начала и количества рабочих дней.

В следующем календаре отображаются даты начала и окончания для проекта 3, а также показано, что из-за праздников дата окончания проекта переносится на три дня.

Календарь с датами начала и окончания проекта 3 и праздниками с 19 по 22 мая

Календарь с датами начала и окончания проекта 3 и праздниками с 19 по 22 мая

Календарь с датами начала и окончания проекта 3 и праздниками с 19 по 22 мая ![Diagram that shows the start date of project 3 as May 17 and the last work date as May 25, with four extra holidays moving the last work date back by three days - with two of the holidays falling on Saturday and Sunday.](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-lastworkdate-example3-diagram.png)

## Пример 4. Один праздник (диаграмма)

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

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

Обзор

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

Однако в этом примере в приложение загружается неизмененный набор данных. Значение поля `end_date` вычисляется с использованием меры в объекте диаграммы.

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

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

Projects: 
Load 
id, 
start_date, 
effort 
Inline  
[	 
id,start_date,effort 
1,01/01/2022,14 
2,02/10/2022,17 
3,05/17/2022,5 
4,06/01/2022,12 
5,08/10/2022,26 
]; 
```

Результаты

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

* `id`
* `start_date`
* `effort`

Чтобы вычислить end\_date, создайте следующую меру:

* `=LastWorkDate(start_date,effort,'05/18/2022')`

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

| Идентификатор | дата\_начала | усилия | =LastWorkDate(start\_date,effort,'05/18/2022') |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 14 | 01/20/2022 |
| 2 | 10.02.2022 | 17 | 03/04/2022 |
| 3 | 05/17/2022 | 5 | 05/23/2022 |
| 4 | 01.06.2022 | 12 | 06/16/2022 |
| 5 | 10.08.2022 | 26 | 09/14/2022 |

Один запланированный праздник вводится как мера в диаграмме. В результате, дата окончания проекта 3 сдвигается на один день вперед, так как праздник выпадает на один из рабочих дней до даты окончания.

В следующем календаре отображаются даты начала и окончания для проекта 3, а также показано, что из-за праздника дата окончания проекта переносится на один день.

Календарь с датами начала и окончания проекта 3 и государственным праздником 18 мая

Календарь с датами начала и окончания проекта 3 и государственным праздником 18 мая

Календарь с датами начала и окончания проекта 3 и государственным праздником 18 мая ![Diagram that shows the start date of project 3 as May 17 with a holiday on May 18. The last work date of the project moves to May 24.](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-lastworkdate-example2-diagram.png)