Автоматический расчет рабочих дней в Excel

Иван Корнев·09.04.2026·4 мин

Чтобы быстро узнать количество рабочих дней между двумя датами, исключая выходные и праздники, используйте функцию =NETWORKDAYS(дата_начала; дата_конца; [праздники]). Эта формула автоматически игнорирует субботы и воскресенья, а также любые даты, которые вы укажете в списке праздников. Для нестандартных графиков работы (например, при сменном труде) применяется расширенная версия NETWORKDAYS.INTL, позволяющая настроить собственные выходные дни.

Краткий ответ: Введите =NETWORKDAYS(A1; B1; C1:C5), где A1 — начало периода, B1 — конец, а C1:C5 — список праздничных дат. Результат появится мгновенно.

Базовая функция NETWORKDAYS

Функция NETWORKDAYS (от англ. network days — рабочие дни сети/графика) является стандартным инструментом для кадрового учета и планирования проектов. Она считает дни, исключая стандартные выходные (субботу и воскресенье).

Синтаксис: =NETWORKDAYS(начальная_дата; конечная_дата; [массив_праздников])

  • Начальная_дата: Ячейка с датой начала периода.
  • Конечная_дата: Ячейка с датой окончания.
  • Массив_праздников (необязательно): Диапазон ячеек, содержащий даты государственных праздников или корпоративных выходных, которые нужно исключить из расчета.

Пример использования: Предположим, в ячейке A2 стоит дата начала проекта (01.04.2026), в B2 — дата сдачи (30.04.2026), а в диапазоне D2:D10 перечислены праздничные дни апреля. Формула будет выглядеть так: =NETWORKDAYS(A2; B2; D2:D10)

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

Учет нестандартных графиков с NETWORKDAYS.INTL

Стандартная двухдневная выходные схема подходит не всем. Для сотрудников со сменным графиком, работающих, например, только по понедельникам и вторникам, или имеющих выходные в пятницу и субботу, используется функция NETWORKDAYS.INTL.

Синтаксис: =NETWORKDAYS.INTL(начальная_дата; конечная_дата; [код_выходных]; [праздники])

Ключевой параметр здесь — код_выходных. Он может быть задан числом (от 1 до 17) или строкой из семи символов («0» — рабочий, «1» — выходной), начиная с понедельника.

КодСтрокаВыходные дни
1"0000011"Суббота, Воскресенье (стандарт)
2"0000110"Воскресенье, Понедельник
.........
7"1100000"Пятница, Суббота
11"0000010"Только Воскресенье
17"0000001"Только Суббота

Пример для графика «Пятница-Суббота»: =NETWORKDAYS.INTL(A2; B2; 7; D2:D10) Или в текстовом формате: =NETWORKDAYS.INTL(A2; B2; "1100000"; D2:D10)

Лайфхак: Чтобы не запоминать коды, начните вводить формулу в Excel. При выборе аргумента «тип выходных» программа покажет всплывающую подсказку с расшифровкой всех доступных вариантов.

Расчет даты завершения работ (WORKDAY)

Часто требуется решить обратную задачу: известна дата старта и количество рабочих дней, необходимых на выполнение задачи. Нужно определить дату дедлайна. Для этого служат функции WORKDAY и WORKDAY.INTL.

Формула: =WORKDAY(дата_начала; количество_дней; [праздники])

Функция прибавляет указанное количество рабочих дней к стартовой дате, пропуская выходные и праздники.

Сценарий: Задача начинается 10 апреля 2026 года (A2). На её выполнение отведено 15 рабочих дней. Праздники указаны в диапазоне D2:D5. Формула: =WORKDAY(A2; 15; D2:D5) Результат: Дата, когда задача будет фактически завершена.

Аналогично работает WORKDAY.INTL для нестандартных недель, где также можно указать код выходных дней.

Подготовка списка праздников

Для корректной работы формул критически важно правильно оформить список праздников.

  1. Отдельный диапазон: Создайте на любом листе книги столбец с названием «Праздники» и внесите туда все даты нерабочих дней за год.
  2. Формат ячеек: Убедитесь, что ячейки с датами имеют формат «Дата», а не «Текст». Иначе формула вернет ошибку #ЗНАЧ!.
  3. Именованный диапазон: Для удобства присвойте диапазону с праздниками имя (например, Holidays).
    • Выделите диапазон с датами.
    • В поле имени (слева от строки формул) введите Holidays и нажмите Enter.
    • Теперь формула станет читаемой: =NETWORKDAYS(A2; B2; Holidays).

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

Частые ошибки при расчетах

  • Ошибка #ЗНАЧ!: Возникает, если в аргументах переданы значения, которые Excel не распознает как даты. Проверьте формат ячеек.
  • Отрицательный результат: Если дата окончания раньше даты начала, функция вернет отрицательное число или ноль. Для таких случаев можно обернуть формулу в ABS() (модуль числа) или использовать условие ЕСЛИ.
  • Игнорирование праздников: Самая частая ошибка — забыть указать третий аргумент. В результате майские или новогодние каникулы посчитаются как рабочие дни, исказив сроки проекта.
  • Неверный код в INTL: Использование строки неправильной длины (не 7 символов) или содержащей символы кроме 0 и 1 приведет к ошибке #ЗНАЧ!.

FAQ

Можно ли посчитать рабочие часы, а не дни? Стандартные функции считают полные дни. Для расчета часов нужно умножить результат NETWORKDAYS на количество рабочих часов в дне (например, на 8). Если нужны точные часы с учетом времени начала и конца рабочего дня внутри дат, потребуется более сложная формула с вычитанием времени.

Как учесть отпуск сотрудника в расчете? Функции NETWORKDAYS не умеют автоматически вычитать диапазоны отпусков, если они не внесены в список «праздников». Самый простой способ — добавить даты отпуска сотрудника в тот же диапазон ячеек, который используется как список праздников для конкретного расчета.

Работают ли эти формулы в старых версиях Excel? Функция NETWORKDAYS доступна во всех современных версиях. NETWORKDAYS.INTL появилась в Excel 2010. В версиях старше 2010 года для нестандартных графиков придется использовать комбинацию функций или макросы VBA.