Функция lastworkdate возвращает самую раннюю дату окончания для достижения указанного числа рабочих дней no_of_workdays (понедельник-пятница) с начальной датой start_date и с учетом выходных, которые можно дополнительно задать в поле holiday. Поля start_date и holiday должны быть действительными датами или метками времени.
Не предусмотрено способа адаптации функции lastworkdate() для регионов или сценариев, где используются рабочие недели, которые начинаются не в понедельник и заканчиваются не в пятницу.
Параметр holiday должен быть постоянной строкой. Он не принимает выражений.
Когда это следует использовать
Функция lastworkdate() широко используется в составе выражения, кода пользователю требуется вычислить предполагаемую дату окончания проекта или назначения, на основе времени начала проекта и праздников, которые приходятся на этот период.
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.
Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому обращается пользователь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Sense. Qlik Sense будет отображаться на языке, который используется в браузере.
Аргументы
Аргумент
Описание
start_date
Начальная дата для вычисления.
no_of_workdays
Количество рабочих дней, которое должно быть получено.
holiday
Периоды выходных дней для исключения из рабочих дней. Праздник обозначен как постоянная строка даты. Можно указать несколько дат праздников, разделенных запятыми.
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий идентификаторы и даты начала проектов, а также предполагаемые трудозатраты в днях, необходимые для их выполнения. Набор данных загружается в таблицу под именем Projects.
Предшествующая загрузка, которая содержит функцию lastworkdate(), настроенную как поле end_date и определяющую запланированное окончания каждого проекта.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
start_date
effort
end_date
Результирующая таблица
id
start_date
effort
end_date
1
01/01/2022
14
01/20/2022
2
02/10/2022
17
03/04/2022
3
05/17/2022
5
05/23/2022
4
06/01/2022
12
06/16/2022
5
08/10/2022
26
09/14/2022
Так как запланированные праздничные дни отсутствуют, функция прибавляет определенное количество рабочих дней (с понедельника по пятницу) в дате начала, чтобы найти самую раннюю возможную дату окончания.
В следующем календаре показаны даты начала и окончания для проекта 3, рабочие дни выделены зеленым.
Пример 2. Один праздник
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий идентификаторы и даты начала проектов, а также предполагаемые трудозатраты в днях, необходимые для их выполнения. Набор данных загружается в таблицу под именем Projects.
Предшествующая загрузка, которая содержит функцию lastworkdate(), настроенную как поле end_date и определяющую запланированное окончания каждого проекта.
Однако запланирован один государственный праздник 18 мая 2022 года. Функция lastworkdate() в предыдущей загрузке включает праздник в третьем аргументе, чтобы определить, когда планируется завершение каждого проекта.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
start_date
effort
end_date
Результирующая таблица
id
start_date
effort
end_date
1
01/01/2022
14
01/20/2022
2
02/10/2022
17
03/04/2022
3
05/17/2022
5
05/24/2022
4
06/01/2022
12
06/16/2022
5
08/10/2022
26
09/14/2022
Один запланированный праздник передан в качестве третьего аргумента функции lastworkdate(). В результате, дата окончания проекта 3 сдвигается на один день вперед, так как праздник выпадает на один из рабочих дней до даты окончания.
В следующем календаре отображаются даты начала и окончания для проекта 3, а также показано, что из-за праздника дата окончания проекта переносится на один день.
Пример 3. Несколько праздников
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий идентификаторы и даты начала проектов, а также предполагаемые трудозатраты в днях, необходимые для их выполнения. Набор данных загружается в таблицу под именем Projects.
Предшествующая загрузка, которая содержит функцию lastworkdate(), настроенную как поле end_date и определяющую запланированное окончание каждого проекта.
Однако запланировано четыре праздничных дня в мае — 19, 20, 21 и 22. Функция lastworkdate() в предыдущей загрузке включает все праздничные дни в третьем аргументе, чтобы определить, когда планируется завершение каждого проекта.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
start_date
effort
end_date
Результирующая таблица
id
start_date
effort
end_date
1
01/01/2022
14
01/20/2022
2
02/10/2022
17
03/04/2022
3
05/17/2022
5
05/25/2022
4
06/01/2022
12
06/16/2022
5
08/10/2022
26
09/14/2022
Четыре праздничных дня переданы в виде списка аргументов в функции lastworkdate() после даты начала и количества рабочих дней.
В следующем календаре отображаются даты начала и окончания для проекта 3, а также показано, что из-за праздников дата окончания проекта переносится на три дня.
Пример 4. Один праздник (диаграмма)
Обзор
Используется тот же набор данных и сценарий, что в первом примере.
Однако в этом примере в приложение загружается неизмененный набор данных. Поле end_date вычисляется как мера в диаграмме.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
start_date
effort
Чтобы вычислить end_date, создайте следующую меру:
=LastWorkDate(start_date,effort,'05/18/2022')
Результирующая таблица
id
start_date
effort
=LastWorkDate(start_date,effort,'05/18/2022')
1
01/01/2022
14
01/20/2022
2
02/10/2022
17
03/04/2022
3
05/17/2022
5
05/23/2022
4
06/01/2022
12
06/16/2022
5
08/10/2022
26
09/14/2022
Один запланированный праздник вводится как мера в диаграмме. В результате, дата окончания проекта 3 сдвигается на один день вперед, так как праздник выпадает на один из рабочих дней до даты окончания.
В следующем календаре отображаются даты начала и окончания для проекта 3, а также показано, что из-за праздника дата окончания проекта переносится на один день.
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!