Как рассчитать просрочку в днях в Excel: 5 рабочих способов с примерами

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

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

В статье вы найдёте:

  • 🔹 Базовые формулы для расчёта просрочки (включая СЕГОДНЯ и РАЗНДАТ)
  • 🔹 Как исключить выходные и праздники из подсчёта
  • 🔹 Автоматизацию для динамических отчётов (с примерами для кредитов и дедлайнов)
  • 🔹 Обработку ошибок, когда дата не указана или введена некорректно
📊 Для чего вам нужен расчёт просрочки в Excel?
Для кредитов/займов
Для контроля дедлайнов
Для логистики/доставки
Для HR (больничные, отпуска)
Другое

1. Простейший способ: вычитание дат

Самый очевидный метод — вычесть дату выполнения из текущей даты или даты дедлайна. Это работает, если:

  • 📅 Формат ячеек с датами корректный (не текст!)
  • 📊 Вам не нужно исключать выходные или праздники
  • 🔄 Даты вводятся вручную или импортируются без ошибок

Формула выглядит так:

=СЕГОДНЯ-A2

где A2 — ячейка с датой, до которой нужно посчитать просрочку. Если результат отрицательный, значит дедлайн ещё не наступил.

Пример: Если в A2 указана дата 15.05.2026, а сегодня 20.05.2026, формула вернёт 5 (дней просрочки).

⚠️ Внимание: Функция СЕГОДНЯ обновляется при каждом пересчёте листа. Если вам нужна фиксированная дата (например, на момент создания отчёта), используйте CTRL+; для вставки текущей даты как значения.

2. Функция РАЗНДАТ: гибкость для сложных расчётов

Функция РАЗНДАТ (или DATEDIF в английской версии) позволяет учитывать не только дни, но и месяцы, годы. Она незаменима, если нужно:

  • 📅 Посчитать просрочку в полных месяцах (например, для кредитов)
  • 📊 Исключить неполные периоды (например, если дедлайн — конец месяца)
  • 🔄 Работать с историческими данными (когда СЕГОДНЯ не подходит)

Синтаксис:

=РАЗНДАТ(дата_начала; дата_конца;"д")

где "д" — код для подсчёта дней. Другие варианты:

  • "м" — полные месяцы
  • "г" — полные годы
  • "мд" — дни без учёта месяцев и лет

Пример для кредита: Если дата платежа была 01.04.2026, а сегодня 20.05.2026, формула =РАЗНДАТ("01.04.2026";СЕГОДНЯ;"д") вернёт 50 дней просрочки.

Тип расчёта Формула Результат для дат
01.04.202620.05.2026
Дни (включая неполные месяцы) =РАЗНДАТ(A2;СЕГОДНЯ;"д") 50
Полные месяцы =РАЗНДАТ(A2;СЕГОДНЯ;"м") 1
Дни без учёта месяцев =РАЗНДАТ(A2;СЕГОДНЯ;"мд") 19
⚠️ Внимание: Функция РАЗНДАТ не dokumentирована в официальной справке Excel, но работает во всех версиях. В Excel 365 её можно вводить только вручную — автозаполнение не сработает.

3. Исключаем выходные и праздники

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

Синтаксис:

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

где [праздники] — необязательный диапазон с датами праздников.

Пример: Если дедлайн был 10.05.2026 (пятница), а сегодня 15.05.2026 (среда), то:

  • Обычное вычитание: 15.05 - 10.05 = 5 дней (включая выходные)
  • С ЧИСТРАБДНИ: =ЧИСТРАБДНИ("10.05.2026";СЕГОДНЯ) вернёт 3 (только рабочие дни: понедельник, вторник, среда)

Чтобы добавить праздники, создайте отдельный столбец с датами (например, D1:D10) и укажите его в формуле:

=ЧИСТРАБДНИ(A2;СЕГОДНЯ;D1:D10)
Как быстро создать список праздников?

В Excel 365 можно использовать функцию ДАТАМЕС для генерации повторяющихся праздников (например, Новый год). Пример: =ДАТАМЕС(ДАТА(2026;1;1);ПОСЛЕДНИЙДЕНЬ(ДАТА(2026;1;1))+1;0) вернёт 1 января 2026 года.

4. Динамические отчёты: условное форматирование для просрочек

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

Алгоритм:

  1. Выделите столбец с датами дедлайнов.
  2. Перейдите в Главная → Условное форматирование → Создать правило.
  3. Выберите "Использовать формулу..." и введите:
=И($A2<СЕГОДНЯ;$A2<>"")

где A2 — первая ячейка с датой.

  1. Задайте формат (например, красный текст или заливку).

Теперь все просроченные даты будут подсвечены. Чтобы добавить подсчёт дней просрочки в соседний столбец, используйте:

=ЕСЛИ(A2<СЕГОДНЯ;СЕГОДНЯ-A2;"")

Выделить диапазон с датами|Создать правило"Использовать формулу"|Ввести формулу с СЕГОДНЯ|Задать цвет для просрочек|Применить к другим столбцам при необходимости-->

5. Обработка ошибок: если дата не указана или некорректна

В реальных таблицах данные часто бывают неидеальными: пустые ячейки, текст вместо дат, ошибочные форматы. Чтобы избежать ошибок #ЗНАЧ! или #ЧИСЛО!, используйте комбинацию функций ЕСЛИ, ЕЧИСЛО и ДАТАЗНАЧ.

Пример 1. Пустые ячейки:

=ЕСЛИ(A2="";"";СЕГОДНЯ-A2)

Если ячейка A2 пустая, формула вернёт пустое значение, иначе — просрочку в днях.

Пример 2. Текст вместо даты:

=ЕСЛИОШИБКА(ДАТАЗНАЧ(A2);"Ошибка формата")

Функция ДАТАЗНАЧ преобразует текст в дату (например, "15.05.2026"15.05.2026). Если преобразование невозможно, вернётся сообщение об ошибке.

Пример 3. Комплексная проверка:

=ЕСЛИ(ИЛИ(A2="";НЕ(ЕЧИСЛО(A2)));"Некорректная дата";МАКС(0;СЕГОДНЯ-A2))

Эта формула:

  • Пропускает пустые ячейки
  • Отсеивает нечисловые значения (включая текст)
  • Возвращает 0, если дедлайн ещё не наступил

6. Продвинутые сценарии: кредиты, логистика, HR

Расчёт просрочки часто требует адаптации под специфику задачи. Рассмотрим 3чных случая:

1. Кредиты и займы:

Здесь важно учитывать проценты за просрочку, которые начисляются ежедневно. Формула для расчёта пени:

=ЕСЛИ(B2<СЕГОДНЯ;(СЕГОДНЯ-B2)*C2*D2;"0")

где:

  • B2 — дата платежа,
  • C2 — сумма долга,
  • D2 — процент пени за день (например, 0,01 для 1%).

2. Логистика и доставка:

Если нужно посчитать просрочку с учётом времени (например, доставка должна была произойти до 18:00), используйте:

=ЕСЛИ(ИЛИ(A2<СЕГОДНЯ;И(A2=СЕГОДНЯ;B2

где B2 — ячейка с временем дедлайна (например, 18:00).

3. HR: больничные и отпуска:

Для подсчёта дней просрочки медицинских справок или документов используйте:

=РАБДЕНЬ(A2;B2)

где A2 — дата открытия больничного, B2 — количество дней. Функция вернёт дату закрытия, которую можно сравнить с текущей.

Как посчитать просрочку в часах?

Для точного расчёта по часам используйте формулу:

=ЕСЛИ(A2<ТЕПЕРЬ;(ТЕПЕРЬ-A2)*24;"")

где A2 — ячейка с датой и временем дедлайна. Результат будет в часах.

FAQ: Частые вопросы по расчёту просрочки

Как посчитать просрочку, если дата в формате текста (например,"15 мая 2026")?

Используйте функцию ДАТАЗНАЧ с заменой месяца на номер:

=ДАТАЗНАЧ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;"января";".01.");"";"."))

Для английских названий месяцев ("May") подойдёт:

=ДАТАЗНАЧ(ПОДСТАВИТЬ(A2;"May";".05."))
Почему формула возвращает ###### вместо числа?

Это означает, что столбец слишком узкий для отображения даты. Расширьте его или измените формат ячейки на Общий.

Также проверьте, не является ли результат отрицательным (например, если дедлайн ещё не наступил). В этом случае используйте:

=МАКС(0;СЕГОДНЯ-A2)
Как посчитать просрочку между двумя конкретными датами, а не от сегодня?

Замените СЕГОДНЯ на фиксированную дату в формате ДАТА(год;месяц;день) или ссылку на ячейку. Пример:

=B2-A2

где A2 — дата начала, B2 — дата окончания.

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

Да, но не средствами Excel. Вам понадобится:

  1. Сохранить файл в OneDrive или SharePoint.
  2. Настроить Power Automate (бывший Microsoft Flow) для мониторинга изменений.
  3. Добавить триггер на условие (например, если значение в столбце просрочки > 0).
  4. Настроить отправку email или сообщения в Teams.

Альтернатива — использовать Google Sheets с Apps Script для аналогичной автоматизации.

Как посчитать просрочку в месяцах с учётом неполных дней?

Используйте комбинацию РАЗНДАТ и ЕСЛИ:

=РАЗНДАТ(A2;СЕГОДНЯ;"м")&" мес."&РАЗНДАТ(A2;СЕГОДНЯ;"мд")&" дн."

Эта формула вернёт строку вида "1 мес. 15 дн.". Для чисел используйте:

=РАЗНДАТ(A2;СЕГОДНЯ;"м")+РАЗНДАТ(A2;СЕГОДНЯ;"мд")/30

(деление на 30 — упрощённое приведение дней к месяцам).