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

Работа с датами в Microsoft Excel — одна из самых востребованных задач среди бухгалтеров, логистов и менеджеров проектов. Часто требуется не просто прибавить дни к текущей дате, а учесть только рабочие дни, исключив выходные (субботу и воскресенье) и праздники. Например, чтобы рассчитать сроки доставки, выполнения заказа или завершения этапа проекта.

Вручную высчитывать рабочие дни неудобно: легко ошибиться в подсчёте выходных или забыть про праздники. К счастью, в Excel есть специализированные функции — РАБДЕНЬ и РАБДЕНЬ.МЕЖД, которые автоматизируют этот процесс. В этой статье разберём, как ими пользоваться, какие подводные камни встречаются на практике, и покажем реальные примеры с формулами.

Если вы никогда не работали с датами в Excel, не переживайте: мы начнём с азов и постепенно дойдём до сложных сценариев — например, как учитывать региональные праздники или создавать динамические календари. А для опытных пользователей приготовили лайфхаки по оптимизации формул и обработке больших массивов данных.

📊 Как часто вы работаете с датами в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

Почему нельзя просто прибавить дни к дате?

На первый взгляд, прибавить дни к дате в Excel просто: достаточно использовать оператор +. Например, формула =A1+10 добавит 10 дней к дате в ячейке A1. Но здесь кроется подвох: эта формула учитывает все дни подряд, включая выходные и праздники.

Представьте, что вы рассчитываете срок выполнения заказа на 5 рабочих дней. Если сегодня пятница, то простым сложением вы получите следующую среду (5 календарных дней), хотя фактически работа будет завершена только в понедельник (5 рабочих дней = 7 календарных). Ошибка в 2 дня может критично повлиять на логистику или финансовые расчёты.

Кроме того, в разных странах и даже регионах могут отличаться:

  • 📅 Выходные дни (например, в некоторых странах выходной — пятница и суббота).
  • 🎉 Праздничные дни (Новый год, Рождество, государственные праздники).
  • Сокращённые рабочие дни (например, предпраздничные дни с укороченным графиком).

Именно для таких случаев в Excel существуют функции РАБДЕНЬ и РАБДЕНЬ.МЕЖД, которые умеют "пропускать" нерабочие дни. Но и у них есть нюансы — об этом поговорим далее.

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

Функция РАБДЕНЬ (англ. WORKDAY) — основной инструмент для добавления рабочих дней к дате. Её синтаксис:

=РАБДЕНЬ(нач_дата; дни; [праздники])

где:

  • нач_дата — исходная дата (например, 15.05.2026 или ссылка на ячейку).
  • дни — количество рабочих дней, которые нужно прибавить (может быть отрицательным для вычитания).
  • [праздники]необязательный аргумент: диапазон ячеек с датами праздников.

Пример 1. Добавим 10 рабочих дней к текущей дате (без учёта праздников):

=РАБДЕНЬ(СЕГОДНЯ(); 10)

Если сегодня 15 мая 2026 года (среда), результат будет 29 мая 2026 года (среда) — функция автоматически пропустила субботу и воскресенье.

Пример 2. Учтём праздники. Допустим, в ячейках D2:D5 перечислены праздники:

ЯчейкаДатаПраздник
D201.01.2026Новый год
D307.01.2026Рождество
D423.02.2026День защитника Отечества
D508.03.2026Международный женский день

Тогда формула примет вид:

=РАБДЕНЬ(СЕГОДНЯ(); 10; D2:D5)
⚠️ Внимание: Если в аргументе праздники указать дату, которая выпадает на выходной, Excel её проигнорирует. Например, если 1 января — понедельник, а вы укажете его как праздник, функция всё равно посчитает его как выходной.

РАБДЕНЬ.МЕЖД: учёт нестандартных выходных

Функция РАБДЕНЬ.МЕЖД (англ. WORKDAY.INTL) — расширенная версия РАБДЕНЬ, которая позволяет задавать произвольные выходные дни. Это актуально для стран, где выходные не суббота-воскресенье (например, ОАЭ — пятница-суббота), или для компаний с ненормированным графиком.

Синтаксис:

=РАБДЕНЬ.МЕЖД(нач_дата; дни; [выходные]; [праздники])

Аргумент выходные может быть задан двумя способами:

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

Примеры комбинаций для аргумента выходные:

НомерВыходные дниПример строки
1Суббота, воскресенье"0000011"
2Воскресенье, понедельник"1000001"
11Только воскресенье"0000001"
17Только пятница"0001000"

Пример. Рассчитаем дату через 5 рабочих дней для страны, где выходные — пятница и суббота (например, ОАЭ):

=РАБДЕНЬ.МЕЖД(СЕГОДНЯ(); 5; "0001100")

Здесь строка "0001100" означает:

  • 0 — воскресенье (рабочий).
  • 0 — понедельник (рабочий).
  • 0 — вторник (рабочий).
  • 1 — среда (рабочий, но в нашем случае ошибка — правильно "0001100" для пятницы-субботы).
⚠️ Внимание: Если вы используете строку для задания выходных, убедитесь, что её длина ровно 7 символов. Excel не выдаст ошибку, но результат будет некорректным!

☑️ Подготовка к расчёту рабочих дней

Выполнено: 0 / 4

Практический пример: расчёт срока доставки

Допустим, вы менеджер логистической компании, и вам нужно рассчитать дату доставки товара с учётом:

  • 📦 Стандартный срок обработки заказа — 3 рабочих дня.
  • 🚛 Срок транспортировки — 5 рабочих дней.
  • 🎄 Праздники: 1–8 января 2026 года (новогодние каникулы).

Шаг 1. Подготовьте данные в таблице:

ЯчейкаЗначениеОписание
A115.12.2023Дата заказа
B1:B801.01.2026–08.01.2026Праздничные дни
C13Дни на обработку
D15Дни на транспортировку

Шаг 2. Рассчитайте дату отправки (после обработки заказа):

=РАБДЕНЬ(A1; C1; B1:B8)

Результат: 20.12.2023 (3 рабочих дня с 15.12, пропуская 16–17.12 — выходные).

Шаг 3. Рассчитайте дату доставки (от даты отправки):

=РАБДЕНЬ(РАБДЕНЬ(A1; C1; B1:B8); D1; B1:B8)

Результат: 30.12.2023. Обратите внимание, что формула корректно обходит новогодние каникулы (1–8 января), хотя они начинаются позже.

Альтернативный вариант — сложить все рабочие дни в одной формуле:

=РАБДЕНЬ(A1; C1+D1; B1:B8)
Это работает только если праздники не попадают между этапами обработки и транспортировки. В реальных задачах лучше разбивать расчёт на шаги!

Ошибки и решения: почему формула не работает?

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

🔴 Ошибка #ЗНАЧ! — возникает, если:

  • 🗓 Аргумент нач_дата не является датой (например, текст или число без формата).
  • 📊 Диапазон праздники содержит некорректные данные (например, пустые ячейки или текст).
⚠️ Внимание: Проверьте формат ячеек с датами! Выделите ячейку, нажмите Ctrl+1 и выберите формат "Дата". Если Excel показывает число (например, 45341), а не дату — это верный признак проблемы.

🔴 Некорректный результат — формула возвращает дату, но она явно неправильная. Причины:

  • 📅 В аргументе праздники указаны даты в текстовом формате (например, "01.01.2026" вместо 01.01.2026).
  • ⏳ Для РАБДЕНЬ.МЕЖД неверно задана строка выходных (например, "0011000" вместо "0000011").
  • 🔄 В настройках региона Excel изменён первый день недели (по умолчанию — воскресенье).

🔴 Формула не обновляется — если вы изменили исходные данные, но результат не пересчиталсся:

  • 🔄 Проверьте, включён ли автоматический пересчёт: Формулы → Параметры вычислений → Автоматически.
  • 📥 Если используете Excel Online, иногда требуется вручную нажать F9.
Как проверить, распознаёт ли Excel ячейку как дату?

Выделите ячейку и посмотрите на строку формул. Если там отображается число (например, 45341), а не дата — формат неверный. Исправьте его через Главная → Формат → Формат ячеек → Дата.

Лайфхаки для работы с рабочими днями

Вот несколько приёмов, которые сэкономят ваше время:

💡 Динамический список праздников

Если праздники повторяются ежегодно (например, 1 января), создайте отдельный лист с формулами:

=ДАТА(ГОД(СЕГОДНЯ()); 1; 1)  // 1 января текущего года

=ДАТА(ГОД(СЕГОДНЯ()); 5; 1) // 1 мая текущего года

Тогда не придётся вручную обновлять даты каждый год.

💡 Учёт предпраздничных дней

В России предпраздничные дни (например, 31 декабря) имеют укороченный рабочий день. Чтобы их исключить, добавьте их в список праздников или используйте РАБДЕНЬ.МЕЖД с кастомными выходными.

💡 Визуализация рабочих дней

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

  1. Выделите диапазон с датами.
  2. Перейдите в Главная → Условное форматирование → Создать правило.
  3. Выберите "Использовать формулу" и введите:
    =ИЛИ(ДЕНЬНЕД(A1;2)>5; ЧИСЛНЕД(A1;D$1:D$10))

    где D$1:D$10 — диапазон с праздниками.

  4. Задайте формат (например, красный фон для выходных).

💡 Расчёт рабочих часов

Если нужно учитывать не только дни, но и часы (например, 8-часовой рабочий день), комбинируйте РАБДЕНЬ с функцией ВРЕМЯ:

=РАБДЕНЬ(A1; 5) + ВРЕМЯ(17; 0; 0)  // 5 рабочих дней + 17:00 последнего дня

Альтернативы: VBA и Power Query

Если встроенных функций Excel недостаточно (например, нужно учитывать рабочие смены или региональные особенности), обратите внимание на:

🛠 VBA (Visual Basic for Applications)

С помощью макросов можно создать кастомную функцию для расчёта рабочих дней с учётом любых правил. Пример кода для добавления 10 рабочих дней с исключением праздников из диапазона Holidays:

Function CustomWorkDay(startDate As Date, days As Integer, holidays As Range) As Date

Dim i As Integer, hDay As Variant

CustomWorkDay = startDate

For i = 1 To days

CustomWorkDay = CustomWorkDay + 1

Do While Weekday(CustomWorkDay, vbMonday) > 5 Or _

Not IsError(Application.Match(CustomWorkDay, holidays, 0))

CustomWorkDay = CustomWorkDay + 1

Loop

Next i

End Function

Чтобы использовать эту функцию, нажмите Alt+F11, вставьте код в модуль и сохраните. Затем в ячейке введите:

=CustomWorkDay(A1; 10; Праздники!A:A)

Power Query

Инструмент Power Query (доступен в Excel 2016+) позволяет загружать календари из внешних источников (например, государственные праздники с сайта) и автоматически их обновлять. Пример шагов:

  1. Перейдите в Данные → Получить данные → Из других источников → Пустая запрос.
  2. В редакторе Power Query создайте столбец с датами и отметьте рабочие/выходные дни.
  3. Загрузите результат в Excel и используйте как источник для РАБДЕНЬ.

📊 Специализированные надстройки

Для сложных задач (например, расчёт рабочего времени с учётом ночных смен) существуют плагины:

  • 📌 Kutools for Excel — содержит инструмент "Добавить рабочие дни".
  • 📌 Ablebits — позволяет настраивать кастомные календари.

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

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

Да, для этого используйте функцию ЧИСТРАБДНИ (англ. NETWORKDAYS). Синтаксис:

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

Пример: =ЧИСТРАБДНИ("01.01.2026"; "31.01.2026"; B2:B5) вернёт количество рабочих дней в январе 2026 года за вычетом праздников из диапазона B2:B5.

Как вычесть рабочие дни из даты?

Используйте функцию РАБДЕНЬ с отрицательным значением дней. Например, чтобы найти дату за 5 рабочих дней до сегодняшней:

=РАБДЕНЬ(СЕГОДНЯ(); -5)
Почему РАБДЕНЬ игнорирует мои праздники?

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

  • Праздники указаны как текст (например, "01.01.2026" вместо даты).
  • Диапазон праздников содержит пустые ячейки или ошибки.
  • Формат ячеек с праздниками не соответствует формату даты в основной формуле.

Решение: проверьте формат ячеек (Ctrl+1 → Дата) и убедитесь, что в диапазоне нет лишних данных.

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

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

  • Используйте VBA для создания кастомной логики.
  • Разбейте день на часы и учитывайте их отдельно (например, суббота = 4 рабочих часа).
Как посчитать рабочие дни в Google Таблицах?

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

  • =WORKDAY(start_date, num_days, [holidays]) — аналог РАБДЕНЬ.
  • =WORKDAY.INTL(start_date, num_days, weekend, [holidays]) — аналог РАБДЕНЬ.МЕЖД.
  • =NETWORKDAYS(start_date, end_date, [holidays]) — аналог ЧИСТРАБДНИ.