Зачем считать рабочие дни в 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 дней) не поддерживаются.
Чтобы избежать ошибок:
- Используйте
CTRL+;для вставки текущей даты в ячейку (она будет статической, в отличие отСЕГОДНЯ). - Проверяйте результаты визуально — иногда логические ошибки не видны в формулах.
- Для сложных расчётов разбивайте задачу на этапы (например, сначала посчитайте дни без праздников, затем вычтите их отдельно).
Пример исправления: Если формула =ЧИСТРАБДНИ(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 не имеет встроенной функции для подсчёта рабочих часов, но это можно сделать вручную:
- Посчитайте количество рабочих дней (например,
ЧИСТРАБДНИ). - Умножьте на количество рабочих часов в день (например,
=ЧИСТРАБДНИ(...) * 8для 8-часового рабочего дня).
Для точного расчёта с учётом перерывов потребуется VBA или дополнительные столбцы с временем начала/окончания работы.
Как автоматически обновить все даты в файле при открытии?
Функции СЕГОДНЯ и СЕЙЧАС обновляются автоматически. Для принудительного пересчёта всех формул нажмите F9. Если нужно обновить данные при открытии файла, используйте VBA-макрос:
Private Sub Workbook_Open()
Application.CalculateFull
End Sub
Этот код размещается в модуле ThisWorkbook.