Расчет рабочих дней и стажа в Excel: полное руководство

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

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

Базовый расчет рабочих дней

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

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

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

Функция включает в расчет и начальную, и конечную дату. Если вам нужно исключить один из краев периода, скорректируйте формулу, прибавив или отняв 1 день от аргумента даты.

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

Если праздников нет или их не нужно учитывать, третий аргумент можно опустить: =NETWORKDAYS(A2; B2)

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

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

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

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

Популярные коды:

КодСтрокаВыходные дни
1"0000011"Суббота, Воскресенье (стандарт)
2"1000000"Только Воскресенье
3"0000001"Только Суббота
7"0000110"Пятница, Суббота
11"1111110"Только Воскресенье (альтернативный код)

Пример для графика 2/2 или сменного: Если в вашей компании выходными являются пятница и суббота, формула примет вид: =NETWORKDAYS.INTL(A2; B2; 7; E2:E10)

Расчет трудового стажа

Для вычисления стажа работы (разницы между датой приема и датой увольнения/текущей датой) лучше всего подходит скрытая, но мощная функция DATEDIF. Она позволяет получить разницу в годах, месяцах или днях отдельно.

Полный стаж в формате «Годы и Месяцы»

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

=DATEDIF(дата_начала; дата_конца; "y") & " лет " & DATEDIF(дата_начала; дата_конца; "ym") & " мес."

  • "y" — возвращает количество полных лет.
  • "ym" — возвращает количество месяцев, оставшихся после вычета полных лет (игнорирует годы).

Функция DATEDIF не отображается в подсказках автозаполнения Excel. Ее нужно вводить вручную. Убедитесь, что дата окончания больше даты начала, иначе функция вернет ошибку #ЧИСЛО!.

Пример расчета

Данные:

  • Ячейка A2: 15.04.2018 (Дата приема)
  • Ячейка B2: 13.04.2026 (Текущая дата)

Формула: =DATEDIF(A2; B2; "y") & " лет " & DATEDIF(A2; B2; "ym") & " мес." Результат: 7 лет 11 мес.

Если требуется рассчитать стаж только в днях (например, для больничного листа), используйте код "d": =DATEDIF(A2; B2; "d")

Защита от ошибок и пустых ячеек

При массовом расчете в таблицах часто встречаются пустые ячейки, что приводит к появлению ошибок #ЗНАЧ! или неверным результатам. Чтобы таблица выглядела аккуратно, оберните основные формулы в проверку условий.

Универсальная формула для стажа: =ЕСЛИ(ИЛИ(A2=""; B2=""); ""; DATEDIF(A2; B2; "y") & " лет " & DATEDIF(A2; B2; "ym") & " мес.")

Эта конструкция проверяет, заполнены ли обе ячейки с датами. Если хотя бы одна пуста, формула возвращает пустую строку, иначе — проводит расчет.

Для английской версии Excel аналогичная формула: =IF(OR(A2="", B2=""), "", DATEDIF(A2, B2, "y") & " years " & DATEDIF(A2, B2, "ym") & " months")

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

  1. Текстовый формат дат. Если даты введены как текст (например, "01.01.2026" с выравниванием по левому краю), функции вернут ошибку. Решение: Выделите столбец, перейдите в «Данные» -> «Текст по столбцам» и завершите мастер импорта, убедившись, что выбран формат «Дата».

  2. Забытый список праздников. Использование NETWORKDAYS без третьего аргумента в периоды майских или новогодних праздников завысит количество рабочих дней. Решение: Создайте отдельный лист или диапазон с официальными праздничными датами текущего года и всегда ссылайтесь на него.

  3. Неверный порядок аргументов в DATEDIF. Если дата начала больше даты окончания, функция выдаст ошибку. Решение: Используйте функцию МИН и МАКС внутри формулы или проверьте логику заполнения данных.

FAQ

Как посчитать рабочие дни с учетом сегодняшней даты? Вместо ячейки с датой окончания используйте функцию СЕГОДНЯ(). Пример: =NETWORKDAYS(A2; СЕГОДНЯ(); E2:E10) — это позволит автоматически обновлять количество отработанных дней каждый день.

Можно ли посчитать часы работы, а не дни? Функции NETWORKDAYS считают полные дни. Для расчета часов умножьте результат на количество рабочих часов в дне (например, на 8): =NETWORKDAYS(A2; B2) * 8

Как выделить выходные дни цветом? Это делается через условное форматирование, а не формулами расчета. Выделите диапазон дат, создайте правило «Использовать формулу» и введите =ИЛИ(ДЕНЬНЕД(A2;2)=6; ДЕНЬНЕД(A2;2)=7) для подсветки субботы и воскресенья.