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

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

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

Даже если вы никогда раньше не работали с датами в Excel, после прочтения этой статьи вы сможете:

  • 📅 Быстро вычислить разницу между двумя датами в днях, месяцах или годах
  • ⏳ Учесть только рабочие дни, исключив выходные
  • 📊 Автоматически обновлять количество дней при изменении текущей даты
  • 🔄 Применять формулы к целым столбцам с датами без ручного ввода
📊 Как часто вы работаете с датами в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

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

Начнем с самого очевидного — вычитания одной даты из другой. Этот метод работает, потому что Excel хранит даты в виде последовательных чисел (начиная с 1 января 1900 года, которое равно 1). Например, 5 января 2026 года для программы — это число 45295.

Чтобы узнать, сколько дней прошло с определенной даты до сегодняшнего дня:

  1. Введите начальную дату в ячейку (например, A1): 15.05.2023
  2. В другой ячейке (например, B1) введите формулу: =ТДАТА()-A1
  3. Нажмите Enter — Excel покажет количество дней

Функция ТДАТА() (или TODAY() в английской версии) всегда возвращает текущую дату, поэтому результат будет обновляться автоматически каждый день.

2. Функция DATEDIF: расчет дней, месяцев и лет

Функция DATEDIF (от англ. Date Difference) — это скрытая жемчужина Excel. Она не отображается в списке функций, но работает во всех версиях программы. Ее главный плюс — возможность рассчитать разницу не только в днях, но и в месяцах или годах.

Синтаксис функции:

=DATEDIF(начальная_дата; конечная_дата; "единица_измерения")

Где "единица_измерения" может быть:

  • "d" — дни
  • "m" — полные месяцы
  • "y" — полные годы
  • "yd" — дни без учета лет
  • "md" — дни без учета месяцев и лет

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

=DATEDIF(A1; ТДАТА(); "y")  // годы

=DATEDIF(A1; ТДАТА(); "yd") // дни без учета полных лет

Почему DATEDIF скрыта в Excel?

Эта функция осталась в Excel для совместимости с более старыми программами, такими как Lotus 1-2-3. Microsoft не рекомендует ее использовать в новых проектах, но она по-прежнему работает во всех версиях, включая Excel 365.

3. Учет только рабочих дней (исключаем выходные)

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

Пример формулы для расчета рабочих дней между 1 января 2026 и сегодняшним днем:

=ЧИСТРАБДНИ("01.01.2026"; ТДАТА())

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

=ЧИСТРАБДНИ("01.01.2026"; ТДАТА(); D1:D10)

Где D1:D10 — столбец с датами праздников (например, 1 января, 8 марта и т.д.).

⚠️ Внимание: Функция ЧИСТРАБДНИ учитывает только субботы и воскресенья как выходные. Если в вашей стране другие выходные дни (например, пятница и суббота), используйте функцию ЧИСТРАБДНИ.МЕЖД (NETWORKDAYS.INTL), где можно задать свои выходные.

4. Расчет дней между датами в разных ячейках

Часто данные хранятся в таблице, где даты начала и конца распределены по столбцам. Например, у вас есть столбец A с датами начала проектов и столбец B с датами их завершения. Чтобы посчитать продолжительность каждого проекта в днях:

В ячейке C2 введите формулу:

=B2-A2

Затем протяните формулу вниз за правый нижний угол ячейки (маркер автозаполнения), чтобы применить ее ко всем строкам.

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

=РАЗНДАТ(A2; B2; "d")
Проект Дата начала Дата завершения Длительность (дни)
Сайт компании 15.03.2026 30.04.2026 =РАЗНДАТ(B2; C2; "d")
Мобильное приложение 01.02.2026 15.05.2026 =РАЗНДАТ(B3; C3; "d")
Рекламная кампания 10.01.2026 28.02.2026 =РАЗНДАТ(B4; C4; "d")

Введены корректные даты в ячейках|Формат ячеек с датами — "Дата"|Формат ячейки с результатом — "Общий" или "Числовой"|Проверена работа функции на тестовых данных|-->

5. Автоматическое обновление количества дней

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

Чтобы посчитать дни с 1 января 2026 года до сегодняшнего дня и обновлять результат ежедневно:

=ТДАТА()-ДАТА(2026;1;1)

или

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

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

⚠️ Внимание: При сохранении файла в формате .xlsx (без поддержки макросов) функции ТДАТА() и СЕГОДНЯ() не будут обновляться при открытии файла на некоторых мобильных устройствах или в онлайн-версии Excel. В таких случаях используйте формат .xlsm.

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

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

  • 🔢 Результат в виде даты 01.01.1900: Это происходит, если ячейка с результатом отформатирована как "Дата". Измените формат на "Общий" или "Числовой".
  • 📉 Отрицательное число дней: Убедитесь, что начальная дата не позже конечной. Например, =A1-B1 даст отрицательный результат, если в A1 более поздняя дата, чем в B1.
  • 🚫 #ЗНАЧ! или #ИМЯ?: Проверьте, что обе ячейки содержат корректные даты (Excel воспринимает их как числа). Если дата введена как текст (например, "15.05.2023" в кавычках), формула не сработает.
  • 🔄 Формула не обновляется: Для функций ТДАТА() и СЕГОДНЯ() принудительно обновите лист клавишей F9.

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

  1. Выделите столбец с продолжительностью (например, C).
  2. Перейдите на вкладку Главная → Условное форматирование → Правила выделения ячеек → Больше....
  3. Введите значение 30 и выберите красный цвет.

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

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

Да, в Google Sheets используются те же принципы. Для расчета дней между датами применяйте формулу =DATEDIF(A1; B1; "D") или просто =B1-A1. Функции TODAY() и NETWORKDAYS() также доступны.

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

Для этого сначала рассчитайте количество рабочих дней (функция ЧИСТРАБДНИ), затем умножьте на количество рабочих часов в день. Например: =ЧИСТРАБДНИ(A1; B1)*8.

Почему моя формула возвращает ###### вместо числа?

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

Можно ли посчитать дни с точностью до часов и минут?

Да, если ваши ячейки содержат не только дату, но и время. Используйте тот же принцип вычитания: =B1-A1, затем отформатируйте ячейку с результатом как "Дата" или "[ч]:мм" для отображения часов и минут.

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

Используйте формулу =конечная_дата - ТДАТА(). Например, чтобы узнать, сколько дней осталось до 31 декабря 2026 года: =ДАТА(2026;12;31)-ТДАТА().