Точный расчет возраста и дат в Excel: готовые формулы

Иван Корнев·11.04.2026·3 мин

Чтобы вычислить возраст в Excel по дате рождения, используйте функцию =DATEDIF(дата_рождения; СЕГОДНЯ(); "Y"). Она автоматически считает полные годы с учетом високосных лет и текущего дня. Если нужно узнать дату рождения по известному возрасту, примените формулу =ДАТА(ГОД(текущая_дата)-возраст; МЕСЯЦ(текущая_дата); ДЕНЬ(текущая_дата)) с небольшой корректировкой для точности. Ниже приведены подробные инструкции, примеры таблиц и решения частых проблем.

Главное правило: Функция DATEDIF не отображается в списке подсказок Excel, но работает во всех версиях (от 2007 до 365). Вводите её название вручную.

Как рассчитать полный возраст (годы, месяцы, дни)

Стандартная задача — получить количество полных лет. Однако для кадрового учета или поздравлений часто требуется более детальная разбивка.

Базовая формула (только годы)

Предположим, в ячейке A2 указана дата рождения (например, 15.05.1985). В ячейку для результата введите:

=DATEDIF(A2; СЕГОДНЯ(); "Y")
  • "Y" (Year) — возвращает количество полных лет.
  • Результат: Если сегодня 11 апреля 2026 года, а день рождения 15 мая, формула покажет возраст на год меньше, так как юбилей еще не наступил.

Детальный возраст: «40 лет 3 мес. 5 дн.»

Для создания красивой строки с полным возрастом объедините три вызова функции через амперсанд (&):

=DATEDIF(A2; СЕГОДНЯ(); "Y") & " лет " & DATEDIF(A2; СЕГОДНЯ(); "YM") & " мес. " & DATEDIF(A2; СЕГОДНЯ(); "MD") & " дн."

Разбор кодов аргументов:

  • "Y" — полные годы.
  • "YM" — остаток месяцев после вычета полных лет.
  • "MD" — остаток дней после вычета полных месяцев.

Если вам нужен возраст на конкретную историческую дату (а не на сегодня), замените функцию СЕГОДНЯ() на ссылку на ячейку с этой датой или укажите дату в кавычках: "01.01.2020".

Обратный расчет: найти дату рождения по возрасту

Иногда известна только дата проверки и возраст человека (например, «на 1 января 2026 года сотруднику было 30 лет»). Чтобы восстановить дату рождения, простой вычет лет может дать ошибку в 1 год, если день рождения еще не наступил в дату проверки.

Универсальная формула

Пусть в A2 дата отсчета, а в B2 — возраст в годах.

=ДАТА(ГОД(A2)-B2; МЕСЯЦ(A2); ДЕНЬ(A2)) - (МЕСЯЦ(ДАТА(ГОД(A2)-B2; МЕСЯЦ(A2); ДЕНЬ(A2))) > МЕСЯЦ(A2))

Логика работы: Формула сначала отнимает годы. Затем проверка (МЕСЯЦ(...) > МЕСЯЦ(...)) определяет, сместился ли месяц из-за перехода года, и при необходимости корректирует результат, чтобы возраст сходился точно.

Для большинства бытовых задач достаточно упрощенного варианта, если точность до дня не критична:

=ДАТА(ГОД(A2)-B2; МЕСЯЦ(A2); ДЕНЬ(A2))

Работа с большими таблицами и форматирование

При обработке списков сотрудников или клиентов важно избежать ошибок отображения.

ЗадачаФормула / ДействиеПримечание
Возраст в днях=СЕГОДНЯ() - A2Ячейку нужно форматировать как «Общий» или «Числовой».
Выделение юбиляровУсловное форматирование: =DATEDIF(A2;СЕГОДНЯ();"Y")>=50Подсветит тех, кому 50+ лет.
Дата следующего ДР=ДАТА(ГОД(СЕГОДНЯ()); МЕСЯЦ(A2); ДЕНЬ(A2)) + (ДАТА(ГОД(СЕГОДНЯ()); МЕСЯЦ(A2); ДЕНЬ(A2)) < СЕГОДНЯ())*365Показывает дату ближайшего дня рождения.

Ошибка #ЗНАЧ! появляется, если дата записана как текст (например, «15.05.1985» с апострофом в начале). Решение: Выделите столбец → вкладка «Данные» → «Текст по столбцам» → «Готово». Это принудительно конвертирует текст в формат даты.

Частые ошибки при расчетах

  1. Неверный разделитель. В русской версии Excel аргументы функций разделяются точкой с запятой (;), а не запятой. Формула DATEDIF(A1, TODAY(), "Y") выдаст ошибку. Правильно: DATEDIF(A1; СЕГОДНЯ(); "Y").
  2. Дата в будущем. Если дата рождения больше текущей даты, DATEDIF вернет ошибку #ЧИСЛО!. Добавьте проверку: =ЕСЛИ(A2>СЕГОДНЯ(); "Ошибка"; DATEDIF(A2; СЕГОДНЯ(); "Y")).
  3. Високосные годы (29 февраля). Если человек родился 29.02, в невисокосные годы Excel обычно считает днем рождения 28.02 или 01.03 в зависимости от контекста функции. Функция DATEDIF обрабатывает это корректно, считая полные годы.

FAQ

Почему функция DATEDIF не появляется в подсказках? Это устаревшая функция, оставленная для совместимости с Lotus 1-2-3. Microsoft не рекомендует её для новых разработок, но она остается самым надежным инструментом для точного расчета возраста. Вводите имя функции вручную.

Как посчитать возраст в месяцах? Используйте код "M" вместо "Y": =DATEDIF(A2; СЕГОДНЯ(); "M"). Это вернет общее количество месяцев с даты рождения.

Можно ли использовать эти формулы в Google Таблицах? Да, синтаксис полностью идентичен. Функции DATEDIF, СЕГОДНЯ() (или TODAY() в английской версии) работают одинаково.