Вычисляем интервалы между датами в Excel: от простых дней до точного возраста
Чтобы быстро узнать количество дней между двумя датами в Excel, просто вычтите одну дату из другой (например, =B1-A1). Для расчета полных лет, месяцев или точного возраста используйте скрытую, но мощную функцию РАЗНДАТ (DATEDIF), которая автоматически учитывает високосные годы и разную длину месяцев.
В этой статье мы разберем все способы вычисления временных промежутков: от базовой арифметики до сложных формул для стажа и возраста.
Оглавление
Простой расчет дней
Самый элементарный способ найти разницу — обычное вычитание. Если в ячейке A1 указана начальная дата, а в B1 — конечная:
=B1 - A1
Результат отобразится в днях. Важно: Убедитесь, что ячейка с результатом имеет формат «Общий» или «Числовой». Если там стоит формат «Дата», вы увидите непонятный символ вместо числа.
Чтобы сделать результат более читаемым, объедините формулу с текстом:
="Прошло дней: " & (B1-A1)
Функция РАЗНДАТ: синтаксис и коды
Для более сложных расчетов (месяцы, годы) стандартное вычитание не подходит, так как месяцы имеют разное количество дней. Здесь на помощь приходит функция РАЗНДАТ (в английской версии — DATEDIF). Она не отображается в списке подсказок мастера функций, но работает во всех версиях Excel.
Синтаксис:
=РАЗНДАТ(начальная_дата; конечная_дата; "единица")
Третий аргумент определяет, в чем измерять разницу:
| Код | Что считает | Пример использования |
|---|---|---|
| "Y" | Полные годы | Расчет возраста, стажа |
| "M" | Полные месяцы | Срок аренды, подписки |
| "D" | Дни | Количество дней между событиями |
| "MD" | Дни (без учета лет и месяцев) | Остаток дней после вычета полных периодов |
| "YM" | Месяцы (без учета лет) | Остаток месяцев после вычета полных лет |
| "YD" | Дни (без учета лет) | Дни между датами в пределах одного года |
Как рассчитать точный возраст
Чаще всего эту функцию используют для определения возраста человека на текущую дату. Допустим, дата рождения записана в ячейке A2.
Формула для полных лет:
=РАЗНДАТ(A2; СЕГОДНЯ(); "Y")
Функция СЕГОДНЯ() автоматически подставляет текущую дату, поэтому возраст будет обновляться каждый день.
Если конечная дата меньше начальной (например, вы случайно поменяли их местами), функция вернет ошибку #ЧИСЛО!. Всегда ставьте более раннюю дату первым аргументом.
Комбинированный вывод: годы, месяцы и дни
Иногда требуется вывести результат в формате: «35 лет, 4 месяца и 12 дней». Для этого нужно сцепить три вызова функции с разными кодами единиц измерения.
Предположим, даты находятся в A1 (начало) и B1 (конец):
=РАЗНДАТ(A1; B1; "Y") & " лет, " &
РАЗНДАТ(A1; B1; "YM") & " мес., " &
РАЗНДАТ(A1; B1; "MD") & " дн."
Логика работы:
"Y"считает полные годы."YM"считает оставшиеся месяцы после того, как отняли полные годы."MD"считает оставшиеся дни после того, как отняли полные годы и месяцы.
Такой подход исключает ошибки, связанные с разным количеством дней в месяцах.
Частые ошибки
При работе с датами пользователи часто сталкиваются с типовыми проблемами:
- Ошибка #ЗНАЧ! — возникает, если одна из ячеек содержит текст, а не дату. Проверьте формат исходных данных.
- Отрицательный результат — если при обычном вычитании (
B1-A1) первая дата больше второй. В функцииРАЗНДАТэто вызовет ошибку#ЧИСЛО!. - Неверный формат вывода — результат формулы выглядит как дата (например,
05.янв.1900). Исправляется изменением формата ячейки на «Общий».
FAQ
Работает ли функция РАЗНДАТ в Google Таблицах?
Да, синтаксис полностью идентичен. Вы можете использовать =РАЗНДАТ() или =DATEDIF() в Google Sheets без изменений.
Как посчитать рабочий стаж с учетом выходных?
Функция РАЗНДАТ считает календарные дни. Если нужно исключить выходные, используйте функцию ЧИСТРАБДНИ (NETWORKDAYS): =ЧИСТРАБДНИ(нач_дата; кон_дата).
Можно ли использовать РАЗНДАТ для будущих дат? Да, функция корректно работает с любыми датами, главное соблюдать порядок: сначала более ранняя дата, затем более поздняя.