Как узнать, сколько дней прошло с определенной даты в Excel: формулы и примеры

Вычислить количество дней между сегодняшним днем и любой прошлой датой в Microsoft Excel можно за считанные секунды — если знать правильные формулы. Например, чтобы определить, сколько дней прошло с 1 января 2023 года до текущей даты, достаточно одной функции =ТДАТА()-A1, где A1 — ячейка с исходной датой. Но этот метод работает только при корректном формате ячеек: если Excel воспринимает дату как текст, результат будет неверным (ошибка #ЗНАЧ!).

Проблема усложняется, когда нужно учесть рабочие дни (исключая выходные), учитывать праздники или вычислять разницу между двумя произвольными датами. В этой статье разберем 5 проверенных способов — от базовых до продвинутых, — а также типичные ошибки, из-за которых Excel возвращает неверные значения. Например, многие пользователи забывают, что функция ДАТАЗНАЧ преобразует текст в дату только при английском формате (мм/дд/гггг), а в русскоязычной версии требуется ручная настройка.

1. Базовый метод: вычитание дат в Excel

Самый простой способ узнать количество дней между двумя датами — вычесть одну дату из другой. Excel хранит даты как последовательные числа (начиная с 1 января 1900 года), поэтому арифметические операции с ними работают интуитивно. Например, формула =B1-A1 вернет разницу в днях между датами в ячейках A1 и B1.

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

=ТДАТА()-A1
⚠️ Внимание: Если результат отображается как дата (например, 01.01.1900), измените формат ячейки на Общий или Числовой через контекстное меню (Формат ячеек → Число).
  • 📅 Пример 1: В ячейке A1 указана дата 15.05.2026. Формула =ТДАТА()-A1 вернет количество дней с 15 мая по сегодняшний день.
  • Пример 2: Для разницы между двумя произвольными датами (например, A1=01.01.2026 и B1=31.12.2026) используйте =B1-A1.
  • 🔄 Ошибка: Если результат отрицательный, значит, вычитаемая дата (A1) позже текущей. Поменяйте ячейки местами.

2. Функция ДНЕЙ360: расчет по банковским правилам

Функция ДНЕЙ360 используется для финансовых расчетов, где год условно принимается за 360 дней (12 месяцев по 30 дней). Синтаксис:

=ДНЕЙ360(начальная_дата; конечная_дата; [метод])

Аргумент [метод] определяет способ обработки дат (например, ИСТИНА для европейского метода). По умолчанию Excel использует американский метод (ЛОЖЬ).

МетодОписаниеПример результата
ЛОЖЬ (или 0)Американский (NASD). Если начальная дата — 31-е число, она сдвигается на 30-е.=ДНЕЙ360("31.01.2026";"28.02.2026") → 28
ИСТИНА (или 1)Европейский. Начальные даты 31-е сдвигаются на 30-е, конечные — на 1-е следующего месяца.=ДНЕЙ360("31.01.2026";"28.02.2026";ИСТИНА) → 28

Эта функция полезна для расчета процентов по кредитам или инвестициям, но не подходит для точного подсчета календарных дней. Например, разница между 31.01.2026 и 01.03.2026 по ДНЕЙ360 составит 30 дней, хотя фактически проходит 31 день.

📊 Как часто вы используете функцию ДНЕЙ360?
Никогда не слышал
Только для финансовых расчетов
Регулярно в работе
Предпочитаю другие функции

3. Рабочие дни: функция ЧИСТРАБДНИ

Если нужно исключить выходные (субботу и воскресенье) или праздники, используйте ЧИСТРАБДНИ:

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

Аргумент [праздники] — это диапазон ячеек с датами нерабочих дней (например, D1:D10). Если его не указать, учитываются только суббота и воскресенье.

  • 🏢 Пример: =ЧИСТРАБДНИ("01.01.2026";ТДАТА();E1:E5), где E1:E5 — список праздников (например, 1–8 января).
  • 📆 Нюанс: Праздники должны быть в формате дат, а не текста. Используйте ДАТАЗНАЧ для преобразования.
⚠️ Внимание: Функция ЧИСТРАБДНИ.МЕЖД (в новых версиях Excel) позволяет указать пользовательские выходные дни (например, пятницу и субботу для стран с иным календарем). Синтаксис: =ЧИСТРАБДНИ.МЕЖД(A1;B1;1;E1:E5), где 1 — код выходных (1 = суббота/воскресенье, 2 = воскресенье/понедельник и т.д.).

1. Убедитесь, что начальная и конечная даты в формате даты (не текст).

2. Праздники перечислены в отдельном столбце (по одной дате в ячейке).

3. Формат праздников совпадает с форматом основных дат (например, дд.мм.гггг).

4. Для старых версий Excel используйте ЧИСТРАБДНИ без аргумента [выходные].

-->

4. Преобразование текста в дату: ДАТАЗНАЧ и альтернативы

Если дата хранится как текст (например, "15 мая 2026" или "15/05/2026"), Excel не сможет вычесть ее из другой даты. Решения:

  1. Функция ДАТАЗНАЧ: Работает только с форматом мм/дд/гггг или дд.мм.гггг (в зависимости от региональных настроек).
    =ДАТАЗНАЧ("15.05.2026")

    Если возвращает ошибку, измените формат текста на английский (15/05/2026).

  2. Функция ДАТА: Для разбора текста по частям (день, месяц, год).
    =ДАТА(2026; 5; 15)
  3. Текст по столбцам: Используйте инструмент Данные → Текст по столбцам, чтобы разделить текст на день, месяц, год, а затем собрать дату через ДАТА.

Для дат на русском языке (например, "15 мая 2026") потребуется формула с ПОИСК и ПСТР:

=ДАТА(

ПСТР(A1; ПОИСК(" "; A1; ПОИСК(" "; A1)+1)+1; 4); -- год

ЕСЛИ(ПОИСК("янв"; A1); 1; ЕСЛИ(ПОИСК("фев"; A1); 2; ... )); -- месяц

ЛЕВСИМВ(A1; ПОИСК(" "; A1)-1) -- день

)

Список месяцев для формулы

янв=1, фев=2, мар=3, апр=4, май=5, июн=6, июл=7, авг=8, сен=9, окт=10, ноя=11, дек=12.

5. Динамический расчет: автоматическое обновление

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

  • 🔄 ТДАТА() — возвращает текущую дату и время (обновляется при любом изменении листа).
  • 📅 СЕГОДНЯ() — возвращает только текущую дату (менее ресурсоемкая).

Пример динамической формулы:

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

Чтобы отключить автоматическое обновление (например, для фиксации даты на определенный момент), замените СЕГОДНЯ() на статическое значение:

  1. Выделите ячейку с формулой.
  2. Нажмите F2, затем F9 (Excel заменит формулу на результат).
  3. Нажмите Enter.
⚠️ Внимание: Волатильные функции замедляют работу больших файлов. Если лист содержит тысячи строк с ТДАТА() или СЕГОДНЯ(), замените их на статические значения или используйте Power Query для предварительной обработки.

6. Типичные ошибки и их решения

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

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

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

=ЕСЛИОШИБКА(ДАТАЗНАЧ(A1); "Некорректная дата")

Это позволит избежать сбоев в больших таблицах.

FAQ: Частые вопросы о расчете дней в Excel

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

Да, синтаксис идентичен Excel. Используйте:

  • =TODAY()-A1 (аналог ТДАТА()),
  • =DAYS360(A1; B1) (аналог ДНЕЙ360),
  • =NETWORKDAYS(A1; B1) (аналог ЧИСТРАБДНИ).

Обратите внимание: в Google Таблицах функция ДАТАЗНАЧ называется DATEVALUE.

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

Используйте функцию РАЗНДАТ:

=РАЗНДАТ(A1; B1; "m")

Где "m" — код для месяцев. Для полных лет используйте "y".

⚠️ Внимание: РАЗНДАТ недоступна в мастере функций — ее нужно вводить вручную.
Почему Excel показывает дату как ######?

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

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

Excel не имеет встроенной функции для расчета рабочих часов, но можно использовать комбинацию:

=ЧИСТРАБДНИ(A1; B1) * 8 + (МИНУТЫ_РАБОТЫ_В_ДЕНЬ)

Где 8 — количество рабочих часов в день. Для точного расчета потребуется VBA-скрипт.

Можно ли посчитать дни между датами в разных книгах Excel?

Да, используйте внешние ссылки. Например:

=ТДАТА()-[Книга2.xlsx]Лист1!$A$1

Убедитесь, что обе книги открыты, иначе ссылка обновится только при следующем открытии.