Функция networkdays возвращает число рабочих дней (понедельник-пятница) между и включая значения, указанные в поле start_date и end_date, учитывая выходные, которые можно дополнительно задать в поле holiday.
Синтаксис:
networkdays
(start_date, end_date [, holiday])
Возвращаемые типы данных: целое
Функция networkdays имеет следующие ограничения:
Отсутствует возможность изменять рабочие дни. Другими словами, не предусмотрено способа изменять функцию для регионов или ситуаций, когда рабочая неделя отличается от стандартных рабочих дней, с понедельника по пятницу.
Параметр holiday должен быть постоянной строкой. Выражения не поддерживаются.
Аргументы
Аргумент
Описание
start_date
Начальная дата для вычисления.
end_date
Конечная дата для вычисления.
holiday
Периоды выходных дней для исключения из рабочих дней. Праздник обозначен как постоянная строка даты. Можно указать несколько дат праздников, разделенных запятыми.
Функция networkdays() широко используется в составе выражения, когда пользователю требуется учитывать в расчетах количество рабочих дней между двумя датами. Например, если пользователю требуется вычислить совокупную заработную плату, заработанную сотрудником по договору PAYE (отчисление подоходного налога из зарплаты).
Примеры функции
Пример
Результат
networkdays ('12/19/2013', '01/07/2014')
Возвращает 14. В этом примере выходные дни не учитываются.
Возвращает 10. В этом примере учитываются двухдневные периоды выходных дней.
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.
Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому обращается пользователь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Sense. Qlik Sense будет отображаться на языке, который используется в браузере.
Пример 1. Базовый пример
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий идентификаторы проектов, их даты начала и окончания. Эта информация загружается в таблицу под именем Projects.
Поле даты было предоставлено в формате системной переменной DateFormat (MM/DD/YYYY).
Создание дополнительного поля net_work_days для вычисления количества рабочих дней, необходимых для выполнения каждого проекта.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
start_date
end_date
net_work_days
Результирующая таблица
id
start_date
end_date
net_work_days
1
01/01/2022
01/18/2022
12
2
02/10/2022
02/17/2022
6
3
05/17/2022
07/05/2022
36
4
06/01/2022
06/12/2022
8
5
08/10/2022
08/26/2022
13
Так как на этот период не запланированы праздники (они бы указывались в третьем аргументе функции networkdays()), функция вычитает start_date из end_date, а также выходные дни, чтобы вычислить количество рабочих дней между двумя датами.
Приведенный выше календарь наглядно показывает проект с id = 5. Проект 5 начинается в среду, 10 августа 2022 года, и заканчивается 26 августа 2022 года. Так как все субботы и воскресенья игнорируются, между этими двумя датами насчитывается 13 рабочих дней.
Пример 2. Один праздник
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Используется тот же набор данных и сценарий, что и в предыдущем примере.
Поле даты было предоставлено в формате системной переменной DateFormat (MM/DD/YYYY).
Создание дополнительного поля net_work_days для вычисления количества рабочих дней, необходимых для выполнения каждого проекта.
В этом примере на 19 августа 2022 года запланирован один праздничный день.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
start_date
end_date
net_work_days
Результирующая таблица
id
start_date
end_date
net_work_days
1
01/01/2022
01/18/2022
12
2
02/10/2022
02/17/2022
6
3
05/17/2022
07/05/2022
36
4
06/01/2022
06/12/2022
8
5
08/10/2022
08/26/2022
12
Один запланированный праздник передан в качестве третьего аргумента функции networkdays().
Приведенный выше календарь наглядно показывает проект 5, демонстрируя эту корректировку с учетом праздника. Этот праздник запланирован в период выполнения проекта 5 — в пятницу, 19 августа 2022 года. В результате этого, общее значение net_work_days для проекта 5 уменьшается на один день: с 13 до 12 дней.
Пример 3. Несколько праздников
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Используется тот же набор данных и сценарий из первого примера.
Поле даты было предоставлено в формате системной переменной DateFormat (MM/DD/YYYY).
Создание дополнительного поля net_work_days для вычисления количества рабочих дней, необходимых для выполнения каждого проекта.
Однако в этом примере запланировано четыре праздничных дня с 18 по 21 августа 2022 года.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
start_date
end_date
net_work_days
Результирующая таблица
id
start_date
end_date
net_work_days
1
01/01/2022
01/18/2022
12
2
02/10/2022
02/17/2022
6
3
05/17/2022
07/05/2022
36
4
06/01/2022
06/12/2022
8
5
08/10/2022
08/26/2022
11
Четыре запланированных праздничных дня вводятся в виде списка, разделенного запятыми, начиная с третьего аргумента в функции networkdays().
Приведенный выше календарь наглядно показывает проект 5, демонстрируя эту корректировку с учетом этих праздничных дней. Эти запланированные праздники попадают в период выполнения проекта 5, два из них выпадают на четверг и пятницу. В результате этого общее значение net_work_days для проекта 5 уменьшается на два дня: с 13 до 11 дней.
Пример 4. Один праздник
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Используется тот же набор данных и сценарий из первого примера.
Поле даты было предоставлено в формате системной переменной DateFormat (MM/DD/YYYY).
На 19 августа 2022 года запланирован один праздничный день.
Однако в этом примере в приложение загружается неизмененный набор данных. Значение поля net_work_days вычисляется с использованием меры в объекте диаграммы.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
start_date
end_date
Создайте следующую меру:
= networkdays(start_date,end_date,’08/19/2022’)
Результирующая таблица
id
start_date
end_date
net_work_days
1
01/01/2022
01/18/2022
12
2
02/10/2022
02/17/2022
6
3
05/17/2022
07/05/2022
36
4
06/01/2022
06/12/2022
8
5
08/10/2022
08/26/2022
12
Один запланированный праздник передан в качестве третьего аргумента функции networkdays().
Приведенный выше календарь наглядно показывает проект 5, демонстрируя эту корректировку с учетом праздника. Этот праздник запланирован в период выполнения проекта 5 — в пятницу, 19 августа 2022 года. В результате этого общее значение net_work_days для проекта 5 уменьшается на один день: с 13 до 12 дней.
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!