Работа с датами в Microsoft Excel — одна из самых востребованных задач, особенно когда нужно рассчитать временные промежутки. Вы когда-нибудь задумывались, сколько дней прошло с момента создания проекта, рождения ребенка или последнего ремонта? Вручную считать неудобно, а вот Excel справляется с этой задачей за секунды. Но как именно это сделать, если вы не эксперт в формулах?
Многие пользователи ошибочно полагают, что для таких расчетов нужны сложные скрипты или дополнительные надстройки. На самом деле, достаточно знать несколько базовых функций и приемов. В этой статье мы разберем 5 рабочих способов — от элементарного вычитания до продвинутых формул с учетом выходных и праздников. Вы узнаете, как избежать типичных ошибок (например, когда Excel выдает вместо дней странные числа вроде 44567) и как автоматизировать расчеты для больших таблиц.
Даже если вы никогда раньше не работали с датами в Excel, после прочтения этой статьи вы сможете:
- 📅 Быстро вычислить разницу между двумя датами в днях, месяцах или годах
- ⏳ Учесть только рабочие дни, исключив выходные
- 📊 Автоматически обновлять количество дней при изменении текущей даты
- 🔄 Применять формулы к целым столбцам с датами без ручного ввода
1. Самый простой способ: вычитание дат
Начнем с самого очевидного — вычитания одной даты из другой. Этот метод работает, потому что Excel хранит даты в виде последовательных чисел (начиная с 1 января 1900 года, которое равно 1). Например, 5 января 2026 года для программы — это число 45295.
Чтобы узнать, сколько дней прошло с определенной даты до сегодняшнего дня:
- Введите начальную дату в ячейку (например,
A1):15.05.2023 - В другой ячейке (например,
B1) введите формулу:=ТДАТА()-A1 - Нажмите
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 дней:
- Выделите столбец с продолжительностью (например,
C). - Перейдите на вкладку
Главная → Условное форматирование → Правила выделения ячеек → Больше.... - Введите значение
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)-ТДАТА().