Как посчитать рабочие дни в Excel без учёта выходных: подробное руководство

Зачем считать рабочие дни в Excel и когда это пригодится

Расчёт рабочих дней в Microsoft Excel — одна из самых востребованных задач в бизнес-среде. Представьте: вам нужно спланировать сроки проекта, рассчитать зарплату сотрудникам за отработанные дни или определить дату выполнения заказа с учётом только рабочих дней. Вручную это делать неэффективно, особенно если период исчисляется месяцами или годами. Здесь на помощь приходят встроенные функции Excel, которые автоматизируют процесс и сводят ошибки к нулю.

Стандартный календарь предполагает, что рабочими днями являются все дни недели, кроме субботы и воскресенья. Однако в некоторых странах или отраслях выходные могут отличаться (например, пятница и суббота в арабских странах). Кроме того, существуют государственные праздники, которые тоже не считаются рабочими. Excel позволяет учитывать все эти нюансы — главное, знать правильные формулы и настройки.

В этой статье мы разберём:

  • 🔹 Базовые функции для подсчёта рабочих дней (ЧИСТРАБДНИ, РАБДЕНЬ)
  • 🔹 Как исключить праздничные дни из расчётов
  • 🔹 Работа с динамическими диапазонами и текущей датой
  • 🔹 Примеры для планирования проектов и расчёта зарплаты

Функция ЧИСТРАБДНИ: простой подсчёт без выходных

Начнём с самой популярной функции — ЧИСТРАБДНИ (англ. NETWORKDAYS). Она возвращает количество рабочих дней между двумя датами, автоматически исключая субботу и воскресенье. Синтаксис функции:

=ЧИСТРАБДНИ(начальная_дата; конечная_дата; [праздники])

Аргумент [праздники] не обязателен — его используют, если нужно исключить дополнительные дни (например, государственные праздники). Если его не указывать, функция учитывает только стандартные выходные.

Пример 1: Подсчитаем количество рабочих дней между 1 января 2026 года и 31 января 2026 года.

=ЧИСТРАБДНИ("01.01.2026"; "31.01.2026")

Результат: 23 рабочих дня (в январе 2026 года 31 день, из них 8 выходных и 1 праздник — Новый год).

⚠️ Внимание: Если начальная дата позже конечной, функция вернёт ошибку #ЧИСЛО!. Всегда проверяйте порядок аргументов.

Пример 2: Добавим праздничные дни. Предположим, в январе 2026 года выходными также были 2, 3, 4, 5, 6, 7 и 8 января (новогодние каникулы). Создадим список этих дат в диапазоне A2:A8 и модифицируем формулу:

=ЧИСТРАБДНИ("01.01.2026"; "31.01.2026"; A2:A8)

Теперь результат: 16 рабочих дней.

Функция РАБДЕНЬ: расчёт даты через N рабочих дней

В отличие от ЧИСТРАБДНИ, которая подсчитывает количество дней, функция РАБДЕНЬ (англ. WORKDAY) помогает определить конкретную дату через заданное количество рабочих дней. Это полезно для планирования дедлайнов или сроков поставок.

Синтаксис:

=РАБДЕНЬ(начальная_дата; количество_дней; [праздники])

Пример: Допустим, задача начата 10 января 2026 года, и на её выполнение отводится 10 рабочих дней. Найдём дату завершения:

=РАБДЕНЬ("10.01.2026"; 10)

Результат: 24 января 2026 года (учитываются только рабочие дни, без выходных).

Если добавить праздники (например, 23 января — День защитника Отечества в России), формула примет вид:

=РАБДЕНЬ("10.01.2026"; 10; A2:A3)

Где A2:A3 — диапазон с датами 7 января (Рождество) и 23 января. Теперь результат: 25 января 2026 года.

Функция Назначение Пример использования
ЧИСТРАБДНИ Подсчёт рабочих дней между двумя датами =ЧИСТРАБДНИ("01.01.2026"; "31.01.2026")
РАБДЕНЬ Определение даты через N рабочих дней =РАБДЕНЬ("10.01.2026"; 10)
ЧИСТРАБДНИ.МЕЖД Подсчёт рабочих дней с пользовательскими выходными =ЧИСТРАБДНИ.МЕЖД("01.01.2026"; "31.01.2026"; 1)
📊 Какую функцию для работы с датами вы используете чаще?
ЧИСТРАБДНИ
РАБДЕНЬ
ДАТА
СЕГОДНЯ
Другую

Как учесть нестандартные выходные (например, пятница-суббота)

В некоторых странах или компаниях выходными могут быть не суббота и воскресенье, а другие дни (например, пятница и суббота в ОАЭ или Израиле). Для таких случаев в Excel есть функция ЧИСТРАБДНИ.МЕЖД (англ. NETWORKDAYS.INTL). Она позволяет задать пользовательские выходные с помощью числового кода или строки.

Синтаксис:

=ЧИСТРАБДНИ.МЕЖД(начальная_дата; конечная_дата; [выходные]; [праздники])

Аргумент [выходные] может быть:

  • 🔢 Числом (например, 1 — выходные в субботу-воскресенье, 7 — только воскресенье, 11 — пятница-суббота).
  • 🔢 Строкой из 7 символов (например, "0000011", где 1 — выходной, 0 — рабочий день).

Пример: Рассчитаем рабочие дни в январе 2026 года для страны, где выходные — пятница и суббота:

=ЧИСТРАБДНИ.МЕЖД("01.01.2026"; "31.01.2026"; 15)

Код 15 соответствует выходным в пятницу и субботу. Результат: 21 рабочий день (на 2 дня меньше, чем при стандартных выходных).

Коды для аргумента [выходные] в ЧИСТРАБДНИ.МЕЖД

1 — суббота-воскресенье (стандарт)

2 — воскресенье-понедельник

3 — понедельник-вторник

...

11 — пятница-суббота

12 — суббота (один выходной)

13 — воскресенье (один выходной)

17 — только пятница

Динамический расчёт с функцией СЕГОДНЯ

Часто требуется посчитать рабочие дни от текущей даты до какой-либо будущей (или прошедшей). Для этого используют функцию СЕГОДНЯ (англ. TODAY), которая автоматически подставляет сегодняшнюю дату. Она не имеет аргументов и обновляется при каждом открытии файла.

Пример 1: Сколько рабочих дней осталось до 31 декабря 2026 года?

=ЧИСТРАБДНИ(СЕГОДНЯ(); "31.12.2026")

Пример 2: Какая дата наступит через 15 рабочих дней от сегодняшнего дня?

=РАБДЕНЬ(СЕГОДНЯ(); 15)
⚠️ Внимание: Функция СЕГОДНЯ пересчитывается при каждом открытии файла или принудительном обновлении (F9). Если вам нужна фиксированная дата (например, дата начала проекта), используйте статическое значение, а не СЕГОДНЯ.

Важно: если файл с формулой СЕГОДНЯ будет открыт на другом компьюере с другой датой, результат изменится. Для критичных расчётов фиксируйте дату вручную.

Убедитесь, что дата на компьютере верная

Зафиксируйте результат, если нужно сохранить текущее значение

Проверьте, не используются ли в файле другие функции с автообновлением (например, СЕЙЧАС)

-->

Практические примеры: планирование проектов и зарплата

Разберём два реальных сценария, где подсчёт рабочих дней критичен.

Сценарий 1: Планирование проекта

Допустим, проект стартует 15 февраля 2026 года и должен завершиться через 45 рабочих дней. Нужно узнать дату завершения с учётом праздников (23 февраля, 8 марта).

=РАБДЕНЬ("15.02.2026"; 45; A2:A3)

Где A2:A3 — диапазон с датами 23.02.2026 и 08.03.2026. Результат: 15 апреля 2026 года.

Сценарий 2: Расчёт зарплаты за отработанные дни

Сотрудник работал с 1 по 15 марта 2026 года. Нужно посчитать, сколько из этих дней были рабочими (исключая выходные и 8 марта).

=ЧИСТРАБДНИ("01.03.2026"; "15.03.2026"; A2)

Где A2 — ячейка с датой 08.03.2026. Результат: 10 рабочих дней.

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

Распространённые ошибки и как их избежать

Даже опытные пользователи Excel иногда сталкиваются с ошибками при работе с датами. Вот самые частые из них:

  • 🚫 Формат ячеек: Если даты введены как текст (например, "01.01.2026" вместо 01.01.2026), функции вернут ошибку. Проверьте формат ячейки — он должен быть Дата.
  • 🚫 Неправильный порядок дат: ЧИСТРАБДНИ("31.01.2026"; "01.01.2026") вернёт ошибку, так как начальная дата позже конечной.
  • 🚫 Неучтённые праздники: Если не указать диапазон с праздничными днями, они будут посчитаны как рабочие.
  • 🚫 Округление: Функции возвращают целое число дней — дробные значения (например, 10.5 дней) не поддерживаются.

Чтобы избежать ошибок:

  1. Используйте CTRL+; для вставки текущей даты в ячейку (она будет статической, в отличие от СЕГОДНЯ).
  2. Проверяйте результаты визуально — иногда логические ошибки не видны в формулах.
  3. Для сложных расчётов разбивайте задачу на этапы (например, сначала посчитайте дни без праздников, затем вычтите их отдельно).

Пример исправления: Если формула =ЧИСТРАБДНИ(A1; B1) возвращает #ЗНАЧ!, проверьте:

  • Ячейки A1 и B1 содержат даты, а не текст.
  • В настройках Excel установлен правильный региональный формат даты (например, ДД.ММ.ГГГГ для России).

FAQ: Ответы на частые вопросы

Можно ли в Excel посчитать рабочие дни с учётом только воскресенья как выходного?

Да, используйте функцию ЧИСТРАБДНИ.МЕЖД с кодом выходных 11 (только воскресенье) или строкой "0000001". Пример:

=ЧИСТРАБДНИ.МЕЖД("01.01.2026"; "31.01.2026"; "0000001")
Как посчитать рабочие дни между двумя датами, если праздники хранятся на другом листе?

Укажите диапазон с праздничными днями в формате Лист1!A1:A10. Пример:

=ЧИСТРАБДНИ("01.01.2026"; "31.01.2026"; Праздники!A2:A8)

Где Праздники — название листа, а A2:A8 — диапазон с датами.

Почему функция РАБДЕНЬ возвращает дату раньше, чем ожидалось?

Вероятно, вы не учли праздничные дни или неправильно указали их диапазон. Проверьте:

  • Все ли праздники включены в список?
  • Нет ли в диапазоне пустых ячеек или некорректных данных?
  • Не перепутаны ли начальная и конечная даты?
Можно ли посчитать рабочие часы, а не дни?

Excel не имеет встроенной функции для подсчёта рабочих часов, но это можно сделать вручную:

  1. Посчитайте количество рабочих дней (например, ЧИСТРАБДНИ).
  2. Умножьте на количество рабочих часов в день (например, =ЧИСТРАБДНИ(...) * 8 для 8-часового рабочего дня).

Для точного расчёта с учётом перерывов потребуется VBA или дополнительные столбцы с временем начала/окончания работы.

Как автоматически обновить все даты в файле при открытии?

Функции СЕГОДНЯ и СЕЙЧАС обновляются автоматически. Для принудительного пересчёта всех формул нажмите F9. Если нужно обновить данные при открытии файла, используйте VBA-макрос:

Private Sub Workbook_Open()

Application.CalculateFull

End Sub

Этот код размещается в модуле ThisWorkbook.