Как рассчитать количество рабочих дней в Excel: формулы, примеры и нюансы

Расчет рабочих дней в Microsoft Excel — одна из самых востребованных задач для бухгалтеров, менеджеров проектов и HR-специалистов. Нужно ли вам спланировать сроки выполнения задачи, рассчитать зарплату за отработанные дни или определить дату завершения проекта с учетом выходных и праздников — без точных вычислений не обойтись. Однако многие пользователи сталкиваются с ошибками: забывают учесть региональные праздники, неправильно настраивают диапазоны дат или путают функции ЧИСТРАБДНИ и РАБДЕНЬ.

В этой статье мы разберем все способы подсчета рабочих дней — от базовых формул до сложных расчетов с пользовательскими календарями. Вы узнаете, как автоматизировать процесс, избежать типичных ошибок и адаптировать формулы под специфические задачи (например, для сменного графика или нестандартной рабочей недели). А в конце статьи вас ждет FAQ с ответами на частые вопросы и практические примеры для скачивания.

Базовые функции Excel для расчета рабочих дней

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

  • 📅 ЧИСТРАБДНИ — считает количество рабочих дней между двумя датами.
  • 📆 РАБДЕНЬ — определяет конкретную дату через заданное количество рабочих дней.

Синтаксис ЧИСТРАБДНИ:

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

Где [праздники] — необязательный диапазон ячеек с датами праздничных дней. По умолчанию функция считает выходными субботу и воскресенье.

Пример: чтобы посчитать рабочие дни между 1 и 31 января 2026 года (без учета праздников), используйте:

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

Результат — 23 рабочих дня (31 день в январе минус 8 выходных).

Как учесть праздничные дни в расчетах

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

  1. Создать отдельный список праздников в виде столбца с датами (например, в диапазоне A2:A10).
  2. Добавить этот диапазон в формулу как третий аргумент:
    =ЧИСТРАБДНИ("01.01.2026"; "31.01.2026"; A2:A10)

Пример списка праздников для России (январь 2026):

ДатаПраздник
01.01.2026Новый год
02.01.2026Новогодние каникулы
07.01.2026Рождество Христово
08.01.2026Новогодние каникулы

С учетом этих праздников формула вернет 20 рабочих дней вместо 23. Это критично для расчета зарплаты или сроков выполнения задач!

📊 Как часто вам нужно учитывать праздники в расчетах?
Ежедневно
Несколько раз в месяц
Рядом
Никогда

Функция ЧИСТРАБДНИ.INTL: для нестандартных графиков

Если ваша компания работает по гибкому графику (например, выходные в пятницу и субботу или только в воскресенье), используйте ЧИСТРАБДНИ.INTL. Она позволяет задать:

  • 📌 Пользовательские выходные (например, только воскресенье).
  • 📌 Нерабочие дни недели (например, среда — короткий день).

Синтаксис:

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

Аргумент [выходные] кодируется числом от 1 до 17 или строкой из 7 символов (например, "0000011", где 1 — выходной, 0 — рабочий день). Примеры:

  • 🔹 "0000011" — выходные суббота и воскресенье (стандарт).
  • 🔹 "0000001" — выходной только воскресенье.
  • 🔹 "1000001" — выходные пятница и воскресенье.

Важно: если ваша компания работает по сменному графику (например, 2 через 2), ЧИСТРАБДНИ.INTL не подойдет — потребуется VBA-скрипт или дополнительная таблица с расписанием смен.

Функция РАБДЕНЬ: расчет даты завершения проекта

Когда нужно узнать, на какую дату придется завершение задачи через N рабочих дней, используйте РАБДЕНЬ. Например, если проект стартует 10 января 2026 года и требует 15 рабочих дней, формула:

=РАБДЕНЬ("10.01.2026"; 15; A2:A10)

вернет 31 января 2026 года (с учетом праздников из диапазона A2:A10).

Аналогично ЧИСТРАБДНИ, для нестандартных графиков есть РАБДЕНЬ.INTL:

=РАБДЕНЬ.INTL("10.01.2026"; 15; [выходные]; A2:A10)

Указать стартовую дату|Проверить список праздников|Учесть региональные особенности|Проверьте формат ячеек (должен быть "Дата")-->

Типичные ошибки и как их избежать

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

⚠️ Внимание: Если формула возвращает ошибку #ЗНАЧ!, проверьте формат ячеек с датами. Они должны быть в формате "Дата", а не "Текст" или "Общий".
  • 🚫 Неучтенные праздники — если не указать диапазон с праздничными датами, расчет будет неточным.
  • 🚫 Неверный регион — в разных странах разные праздники. Например, 25 декабря (Рождество) — выходной в Европе, но не в России.
  • 🚫 Пересечение диапазонов — если начальная дата позже конечной, функция вернет ошибку.

Чтобы избежать проблем:

  1. Всегда проверяйте формат ячеек (Формат → Формат ячеек → Дата).
  2. Используйте абсолютные ссылки для диапазона праздников (например, $A$2:$A$10).
  3. Для международных проектов создавайте отдельные таблицы с праздниками по странам.
Как проверить формат ячеек?

Выделите ячейку → Правый клик → "Формат ячеек" → Вкладка "Число". Если выбран формат "Текст", измените на "Дата".

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

Рассмотрим реальные кейсы, где расчет рабочих дней критичен.

1. Расчет зарплаты за отработанные дни

Допустим, сотрудник работал с 1 по 15 января 2026 года. Его оклад — 60 000 ₽ за 20 рабочих дней в месяце. Чтобы посчитать зарплату пропорционально отработанным дням:

=60000/20 * ЧИСТРАБДНИ("01.01.2026"; "15.01.2026"; A2:A10)

Результат: 22 500 ₽ (при 5 рабочих днях с учетом праздников).

2. Планирование сроков проекта

Если проект должен быть завершен за 30 рабочих дней, а старт — 1 февраля 2026 года, дата завершения:

=РАБДЕНЬ("01.02.2026"; 30; A2:A10)

Результат: 15 марта 2026 года (с учетом 23 февраля — Дня защитника Отечества).

3. График дежурств

Для создания графика дежурств (например, через каждые 3 рабочих дня) используйте комбинацию РАБДЕНЬ и ЕСЛИ:

=ЕСЛИ(РАБДЕНЬ(последняя_дата_дежурства; 3; A2:A10)<=конечная_дата; РАБДЕНЬ(последняя_дата_дежурства; 3; A2:A10); "")

Автоматизация: как создать шаблон календаря

Чтобы не вводить праздники вручную каждый раз, создайте динамический шаблон:

  1. Создайте лист Праздники и перечислите все нерабочие дни на год.
  2. На основном листе используйте именованный диапазон:
    =ИМЯ("Праздники"; Праздники!$A$2:$A$20)
  3. В формулах ссылайтесь на именованный диапазон:
    =ЧИСТРАБДНИ("01.01.2026"; "31.12.2026"; Праздники)

Преимущества:

  • 🔄 Обновляете праздники один раз в год.
  • 📂 Формулы становятся короче и понятнее.
  • 🔒 Минимизируете риск ошибок при копировании диапазонов.
⚠️ Внимание: Если вы делитесь файлом с коллегами, убедитесь, что именованные диапазоны сохраняются при экспорте. В некоторых версиях Excel они могут сбрасываться.

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

Можно ли в ЧИСТРАБДНИ указать несколько диапазонов праздников?

Нет, функция принимает только один диапазон. Однако вы можете:

  1. Объединить все праздники в один столбец.
  2. Использовать вспомогательный столбец с формулой =ЕСЛИОШИБКА(ПОИСКПОЗ(...); 0) для проверки дат в нескольких диапазонах.
Как посчитать рабочие дни между двумя датами, если выходные — понедельник и вторник?

Используйте ЧИСТРАБДНИ.INTL с параметром "0000011" (где первые два дня недели — выходные):

=ЧИСТРАБДНИ.INTL("01.01.2026"; "31.01.2026"; "0000011"; A2:A10)
Почему РАБДЕНЬ возвращает дату раньше, чем ожидалось?

Вероятные причины:

  • В диапазоне праздников есть даты, которые не являются выходными (например, суббота уже учтена как выходной по умолчанию).
  • Неверно указано количество рабочих дней (например, 10 вместо 15).
  • Начальная дата сама является праздником или выходным.

Проверьте все параметры и используйте функцию ДЕНЬНЕД, чтобы убедиться в корректности выходных:

=ДЕНЬНЕД("01.01.2026"; 2)

(Возвращает 1 для понедельника, 7 для воскресенья.)

Как посчитать рабочие дни в Google Sheets?

В Google Таблицах используются аналогичные функции, но с английскими названиями:

  • =NETWORKDAYS(start_date; end_date; [holidays]) — аналог ЧИСТРАБДНИ.
  • =WORKDAY(start_date; days; [holidays]) — аналог РАБДЕНЬ.

Синтаксис и логика работы идентичны Excel.

Можно ли учитывать полурабочие дни (например, предпраздничные)?

Стандартные функции Excel не поддерживают полурабочие дни. Решения:

  1. Создать отдельный столбец с коэффициентами (например, 0.5 для полурабочего дня) и умножать результат ЧИСТРАБДНИ на этот коэффициент.
  2. Использовать VBA для кастомизации логики.