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

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

Особенность работы с датами в Excel заключается в том, что программа хранит их как числовые значения (количество дней с 1 января 1900 года). Это позволяет выполнять арифметические операции, но требует знания нюансов. Например, функция РАЗНДАТ может вернуть отрицательное число, если дата истечения срока ещё не наступила. Мы покажем, как избежать таких ловушек и получить точный результат даже при работе с большими массивами данных.

1. Базовый расчёт просрочки: функция РАЗНДАТ

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

=РАЗНДАТ(дата_истечения; СЕГОДНЯ(); "d")

Где:

  • 📅 дата_истечения — ячейка с конечным сроком (например, A2)
  • 🔄 СЕГОДНЯ() — текущая дата (обновляется автоматически)
  • 📊 "d" — формат вывода (дни)

Пример: если в ячейке A2 указано 15.05.2026, а сегодня 20.05.2026, формула вернёт 5 (дней просрочки). Но есть подводный камень: если срок ещё не наступил, результат будет отрицательным. Чтобы исправить это, обернём формулу в МАКС:

=МАКС(0; РАЗНДАТ(A2; СЕГОДНЯ(); "d"))

2. Учёт рабочих дней: функция ЧИСТРАБДНИ

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

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

Пример расчёта просрочки с учётом только рабочих дней:

=МАКС(0; СЕГОДНЯ() - A2 - ЧИСТРАБДНИ(A2; СЕГОДНЯ()))

Где:

  • 📅 A2 — дата истечения срока
  • 🎉 [праздники] — необязательный диапазон с датами праздников (например, D2:D10)

Чтобы добавить праздники, создайте отдельный столбец с датами (например, 01.01.2026, 07.01.2026 и т.д.) и укажите его в третьем аргументе. Это актуально для стран с подвижными праздниками (например, Пасха).

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

Чтобы автоматически учитывать праздники на текущий год, используйте функцию ДАТА с условием:

=ЕСЛИ(ГОД(СЕГОДНЯ())=2026; ДАТА(2026;1;1); ДАТА(ГОД(СЕГОДНЯ());1;1))

Это позволит избежать ручного обновления дат каждый год.

3. Просрочка с условным форматированием

Визуализация просрочек помогает быстро выявлять проблемные записи. Для этого используйте условное форматирование:

  1. Выделите диапазон с датами (например, A2:A100).
  2. Перейдите на вкладку Главная → Условное форматирование → Создать правило.
  3. Выберите Использовать формулу для определения форматируемых ячеек.
  4. Введите формулу:
    =И(A2<СЕГОДНЯ(); A2<>"")
  5. Задайте формат (например, красный текст на жёлтом фоне).

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

Выделить диапазон с датами

Открыть "Условное форматирование → Создать правило"

Выбрать тип правила "Формула"

Ввести формулу =A2<СЕГОДНЯ()

Задать цвет заливки и шрифта-->

4. Расчёт просрочки с учётом времени (часы и минуты)

Если ваши сроки указаны не только датой, но и временем (например, 15.05.2026 14:30), используйте комбинацию функций СЕГОДНЯ() и ТДАТА():

=МАКС(0; (ТДАТА() - A2) * 24)

Где:

  • 🕒 ТДАТА() — текущие дата и время
  • ⏱️ 24 — перевод разницы в часы (для минут используйте 1440)

Пример: если в ячейке A2 указано 15.05.2026 10:00, а сейчас 15.05.2026 16:30, формула вернёт 6.5 (часов просрочки). Для округления до целых часов используйте ОКРУГЛ:

=ОКРУГЛ(МАКС(0; (ТДАТА() - A2) * 24); 0)

Только дата (15.05.2026)

Дата и время (15.05.2026 14:30)

Текстовый формат ("15 мая")

Другой вариант-->

5. Автоматизация с помощью Power Query

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

  • 🔄 Объединять данные из нескольких источников
  • 📊 Добавлять вычисляемые столбцы с просрочкой
  • ⚡ Автоматически обновлять результаты

Алгоритм действий:

  1. Выделите таблицу с данными и нажмите Данные → Из таблицы/диапазона.
  2. В редакторе Power Query добавьте пользовательский столбец с формулой:
    = if [ДатаОкончания] < DateTime.LocalNow() then Duration.Days(DateTime.LocalNow() - [ДатаОкончания]) else 0
  3. Сохраните и загрузите данные обратно в Excel.

Преимущество этого метода — динамическое обновление: при изменении исходных данных просрочка пересчитается автоматически. Кроме того, Power Query поддерживает сложные преобразования, например, группировку по категориям (клиенты, проекты) с суммированием просрочек.

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

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

Ошибка Причина Решение
Отрицательные значения Формула не учитывает, что срок ещё не наступил Используйте МАКС(0; формула)
Некорректный формат даты Ячейка содержит текст вместо даты Преобразуйте формат с помощью ДАТАЗНАЧ
Пропуск праздников Функция ЧИСТРАБДНИ не учитывает региональные праздники Добавьте диапазон с праздниками в третий аргумент
Зависание файла Слишком много вложенных функций СЕГОДНЯ() Замените на фиксированную дату или используйте Power Query
⚠️ Внимание: Если ваша таблица содержит даты в текстовом формате (например, "15 мая"), сначала преобразуйте их в дату с помощью =ДАТАЗНАЧ(A2). Иначе формулы вернут ошибку #ЗНАЧ!.

Ещё одна частая проблема — кэширование функции СЕГОДНЯ(). Excel не всегда обновляет её автоматически при открытии файла. Чтобы принудительно пересчитать, нажмите F9 или перейдите в Формулы → Вычислить сейчас.

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

Как посчитать просрочку, если дата истечения в одном столбце, а дата оплаты — в другом?

Используйте формулу:

=МАКС(0; B2 - A2)

Где A2 — дата истечения, B2 — дата оплаты. Если оплата произошла вовремя, результат будет 0.

Можно ли рассчитать просрочку в Google Таблицах?

Да, все приведённые формулы работают и в Google Sheets. Единственное отличие — функция РАЗНДАТ называется DATEDIF, а ЧИСТРАБДНИNETWORKDAYS.

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

Создайте несколько правил условного форматирования:

  1. Для просрочки 1–7 дней: формула =И(A2<СЕГОДНЯ(); A2>=СЕГОДНЯ()-7), цвет — жёлтый.
  2. Для просрочки >7 дней: формула =A2<СЕГОДНЯ()-7, цвет — красный.
Почему функция СЕГОДНЯ() не обновляется при открытии файла?

Это связано с настройками Excel. Чтобы исправить:

  1. Перейдите в Файл → Параметры → Формулы.
  2. Установите переключатель в положение Автоматически.
  3. Нажмите OK и сохраните файл.
Как посчитать проценты пени за просрочку?

Используйте формулу:

=ЕСЛИ(A2<СЕГОДНЯ(); (СЕГОДНЯ()-A2)*B2*C2/100; 0)

Где:

  • A2 — дата истечения
  • B2 — сумма долга
  • C2 — процент пени за день