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

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

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

1. Базовый способ: функция СЕГОДНЯ() и вычитание дат

Самый простой и универсальный метод — вычесть исходную дату из текущей. Для этого в Excel есть встроенная функция СЕГОДНЯ() (или TODAY() в английской версии), которая всегда возвращает актуальную дату. Формула выглядит так:

=СЕГОДНЯ()-A2

Где A2 — ячейка с вашей датой. Например, если в A2 записано 15.05.2026, а сегодня 20.05.2026, формула вернёт 5.

  • Плюсы: работает во всех версиях Excel, не требует дополнительных настроек.
  • ⚠️ Минусы: если исходная дата позже сегодняшней, результат будет отрицательным (например, -5 для даты 25.05.2026).
  • 🔄 Автообновление: функция СЕГОДНЯ() пересчитывается при каждом открытии файла или изменении данных.
⚠️ Внимание: Если вы скопируете ячейку с формулой СЕГОДНЯ() в другой файл, она может обнулиться или показать неверную дату. Чтобы избежать этого, используйте специальную вставку (правый клик → Специальная вставка → Формулы).

Чтобы отрицательные значения не портили отчёт, оберните формулу в АБС() (абсолютное значение):

=АБС(СЕГОДНЯ()-A2)
📊 Как часто вы используете функцию СЕГОДНЯ() в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

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

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

=ЧИСТРАБДНИ(A2; СЕГОДНЯ(); [праздники])

Где:

  • A2 — ячейка с исходной датой;
  • СЕГОДНЯ() — текущая дата;
  • [праздники] — необязательный диапазон с датами праздников (например, D2:D10).

Пример: если сегодня 20.05.2026 (понедельник), а в A2 записано 10.05.2026 (пятница), формула вернёт 6 (с учётом выходных 11–12 мая).

ФормулаПример данныхРезультатПояснение
=ЧИСТРАБДНИ(A2; СЕГОДНЯ())Исходная дата: 10.05.2026
Сегодня: 20.05.2026
8Учитывает только будни (10, 13–17, 20 мая)
=ЧИСТРАБДНИ(A2; СЕГОДНЯ(); D2:D3)Исходная дата: 10.05.2026
Сегодня: 20.05.2026
Праздники: 12.05.2026, 15.05.2026
6Исключены выходные + 2 праздничных дня
⚠️ Внимание: Функция ЧИСТРАБДНИ() считает полные рабочие дни. Если сегодня понедельник, а исходная дата — прошлый четверг, результат будет 1 (только пятница), даже если прошло 4 календарных дня.

Создать столбец с датами праздников|Проверить формат ячеек (должен быть "Дата")|Использовать абсолютные ссылки для диапазона праздников (например, $D$2:$D$10)|Применить условное форматирование для выделения просроченных задач-->

3. Расчёт дней с учётом времени: РАЗНДАТ() и СЕЙЧАС()

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

=РАЗНДАТ(A2; СЕЙЧАС(); "d") & " дней, " & ТЕКСТ(СЕЙЧАС()-A2; "ч") & " часов"

Где:

  • "d" — код для вывода дней;
  • ТЕКСТ(..., "ч") — извлекает часы из разницы;
  • & — оператор конкатенации (объединения текста).

Пример результата: 5 дней, 3 часов.

Для более точного расчёта (включая минуты) используйте:

=РАЗНДАТ(A2; СЕЙЧАС(); "d") & "д " & ЧАС(СЕЙЧАС()-A2) & "ч " & МИНУТЫ(СЕЙЧАС()-A2) & "м"
⚠️ Внимание: Функция РАЗНДАТ() не документирована в Excel, но работает во всех версиях. В Google Таблицах её нет — используйте альтернативу: =DATEDIF(A2; TODAY(); "d").
Почему РАЗНДАТ() не показана в справочнике Excel?

Функция РАЗНДАТ() — реликт из Lotus 1-2-3, поддерживаемый для совместимости. Microsoft не рекомендует её использовать в новых проектах, но она остаётся самой удобной для расчёта разницы между датами. В будущих версиях Excel её могут убрать, поэтому для критичных задач дублируйте логику через ГОД(), МЕСЯЦ() и ДЕНЬ().

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

По умолчанию Excel обновляет функции СЕГОДНЯ() и СЕЙЧАС() только при открытии файла или изменении данных. Если вам нужно, чтобы значения пересчитывались каждую минуту (например, для таймера обратного отсчёта), выполните следующие шаги:

  1. Перейдите в Файл → Параметры → Формулы.
  2. В разделе Параметры вычислений выберите Автоматически, кроме таблиц данных.
  3. Установите флажок Пересчитывать книгу при сохранении.
  4. Для принудительного обновления нажмите F9.

Для Google Таблиц автоматический пересчёт включён по умолчанию, но можно ускорить его с помощью скрипта:

function onEdit() {

SpreadsheetApp.flush(); // Принудительный пересчёт формул

}

Добавьте этот код в Расширения → Apps Script.

5. Визуализация результатов: условное форматирование

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

  1. Выделите ячейки с результатами (например, столбец с количеством дней).
  2. Перейдите в Главная → Условное форматирование → Создать правило.
  3. Выберите Форматировать только ячейки, которые содержат.
  4. Установите условие: Значение меньше 0 (для просроченных задач) или Значение меньше 3 (для срочных).
  5. Задайте цвет заполнения (например, красный для просрочки, жёлтый для предупреждения).

Пример правил:

  • 🔴 Красный: значение < 0 (просрочено);
  • 🟡 Жёлтый: значение < 3 (осталось менее 3 дней);
  • 🟢 Зелёный: значение >= 7 (в запасе неделя).

Условное форматирование работает только для ячеек с числовыми значениями. Если ваша формула возвращает текст (например, через &), создайте отдельный столбец с числовыми данными для правил.

6. Распространённые ошибки и как их исправить

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

ОшибкаПричинаРешение
######Ячейка слишком узкая для отображения даты/времени.Расширьте столбец или измените формат на Общий.
#ЗНАЧ!Некорректный формат ячейки (текст вместо даты).Проверьте формат (Формат ячеек → Дата) или используйте ДАТАЗНАЧ() для преобразования текста в дату.
Отрицательное число днейИсходная дата позже текущей.Используйте АБС() или поменяйте местами даты в формуле.
Формула не обновляетсяОтключён автоматический пересчёт.Включите в Формулы → Параметры вычислений → Автоматически.
#ИМЯ?Опечатка в названии функции (например, СЕГОДНЯ вместо СЕГОДНЯ()).Проверьте синтаксис и скобки.

Если ваша формула возвращает неожиданный результат, проверьте:

  • 📅 Формат ячеек: обе даты должны быть в формате Дата, а не Текст.
  • 🔢 Региональные настройки: в некоторых версиях Excel разделителем является ;, а не , (например, =СЕГОДНЯ();A2).
  • 🔄 Время на компьютере: функция СЕГОДНЯ() берёт дату из системных настроек. Если они сбиты, результат будет неверным.

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

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

Да, все приведённые формулы работают и в Google Таблицах, за исключением РАЗНДАТ(). Вместо неё используйте:

=DATEDIF(A2; TODAY(); "d")

Для рабочих дней — =NETWORKDAYS(A2; TODAY()).

Как посчитать дни с учётом только рабочих часов (например, 8 часов в день)?

Используйте комбинацию функций:

=ЧИСТРАБДНИ(A2; СЕГОДНЯ())*8 - (МОД(СЕЙЧАС()-A2; 1)*24 - 8)

Эта формула:

  1. Считает количество рабочих дней (ЧИСТРАБДНИ);
  2. Умножает на 8 часов;
  3. Вычитает лишние часы, если текущее время вне рабочего дня (с 9:00 до 18:00).
Почему моя формула показывает 1900 год вместо правильной даты?

Это происходит, если Excel интерпретирует ваше число как количество дней с 01.01.1900 (внутренний формат хранения дат). Чтобы исправить:

  1. Проверьте, что в ячейке действительно дата, а не текст (например, 15-05-2026 вместо 15.05.2026).
  2. Примените формат Дата к ячейке.
  3. Если дата хранится как текст, используйте =ДАТАЗНАЧ(PODSTAVIT(A2; "-"; ".")).
Как сделать так, чтобы дата не обновлялась при открытии файла?

Если вам нужна фиксированная дата (например, дата создания отчёта), замените СЕГОДНЯ() на:

  1. Нажмите Ctrl+; (это вставит текущую дату как статическое значение).
  2. Или используйте =ТЕКСТ(СЕГОДНЯ(); "дд.мм.гггг"), затем скопируйте результат и вставьте как Значение.

После этого формула перестанет обновляться.

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

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

  1. Создайте столбец с номерами дней недели для каждой даты: =ДЕНЬНЕД(A2) (1=воскресенье, 2=понедельник,...).
  2. Отфильтруйте даты, которые попадают в ваши рабочие дни (например, =ИЛИ(ДЕНЬНЕД(A2)=2; ДЕНЬНЕД(A2)=3; ...)).
  3. Посчитайте количество отфильтрованных дат с помощью СЧЁТЕСЛИ().

Или используйте Power Query для сложных расчётов.