Расчет возраста в Excel: точные формулы для лет, месяцев и дней

Иван Корнев·13.04.2026·4 мин

Чтобы быстро посчитать возраст человека в полных годах по дате рождения, используйте формулу =РАЗНДАТ(A2; СЕГОДНЯ(); "г"), где в ячейке A2 указана дата рождения. Эта функция автоматически учитывает високосные годы и текущую дату, выдавая точный результат без сложных вычислений.

Расчет возраста — одна из самых частых задач при работе с базами данных сотрудников, клиентов или учеников. В отличие от простого вычитания дат, корректный расчет требует учета того, наступил ли уже день рождения в текущем году. Ниже приведены готовые решения для разных сценариев: от простого количества лет до детального расчета в месяцах и днях.

Базовый расчет: полные года с функцией РАЗНДАТ

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

Формула:

=РАЗНДАТ(A2; СЕГОДНЯ(); "г")

Где:

  • A2 — ячейка с датой рождения.
  • СЕГОДНЯ() — функция, возвращающая текущую дату (обновляется автоматически при открытии файла).
  • "г" — аргумент, указывающий, что результат нужен в полных годах (годах).

Функция РАЗНДАТ не отображается в списке подсказок при вводе формулы в новых версиях Excel, но работает корректно. Просто впишите её название вручную.

Почему не стоит просто вычитать даты? Если вы используете формулу =(СЕГОДНЯ()-A2)/365, результат будет неточным из-за високосных годов. Функция РАЗНДАТ учитывает календарную логику: если день рождения еще не наступил в этом году, возраст не увеличится.

Детальный расчет: годы, месяцы и дни

Иногда требуется указать возраст более точно, например, для медицинских карт или детских анкет («5 лет 3 месяца»). Для этого нужно сложить результаты нескольких вызовов функции с разными аргументами.

Формула для полного описания:

=РАЗНДАТ(A2; СЕГОДНЯ(); "г") & " г. " & РАЗНДАТ(A2; СЕГОДНЯ(); "м") - РАЗНДАТ(A2; СЕГОДНЯ(); "г")*12 & " мес."

Логика работы:

  1. Первая часть считает полные годы.
  2. Вторая часть считает общее количество месяцев между датами, вычитает из них годы (переведенные в месяцы) и получает остаток месяцев.

Если нужны еще и дни, формула усложнится, так как нужно вычесть полные месяцы из общего количества дней. Более читаемый вариант с текстовым описанием:

=РАЗНДАТ(A2; СЕГОДНЯ(); "г") & " лет, " & РАЗНДАТ(A2; СЕГОДНЯ(); "м") - РАЗНДАТ(A2; СЕГОДНЯ(); "г")*12 & " мес., " & РАЗНДАТ(A2; СЕГОДНЯ(); "д") & " дн."

Аргумент "д" возвращает количество дней без учета полных месяцев и лет.

Альтернативный метод: вычитание и форматирование

Если функция РАЗНДАТ по каким-то причинам недоступна (например, в очень старых версиях ПО или специфических калькуляторах), можно использовать математическое вычитание.

Формула:

=ЦЕЛОЕ((СЕГОДНЯ()-A2)/365,25)

Здесь мы делим разницу в днях на среднее количество дней в году (365,25 с учетом високосных) и округляем вниз функцией ЦЕЛОЕ. Этот метод дает погрешность в 1 год крайне редко (обычно на стыке веков или специфических дат), но для большинства бизнес-задач он приемлем.

При использовании метода вычитания убедитесь, что ячейка с датой рождения содержит именно дату, а не текст. Если дата записана как текст (выравнивание по левому краю), формула вернет ошибку #ЗНАЧ!.

Сравнение методов расчета возраста

МетодФормулаТочностьКогда использовать
Стандартный=РАЗНДАТ(A2;СЕГОДНЯ();"г")ВысокаяОтчеты, кадры, базы данных
ПодробныйКомбинация "г", "м", "д"МаксимальнаяМедицинские карты, детские сады
Математический=ЦЕЛОЕ((СЕГОДНЯ()-A2)/365,25)СредняяБыстрые прикидки, старые файлы
Простое вычитание=(СЕГОДНЯ()-A2)/365НизкаяНе рекомендуется

Автоматизация для больших таблиц

При работе со списком из сотен сотрудников ручное введение формул неэффективно. Используйте следующие приемы для ускорения работы:

  1. Автозаполнение: Введите формулу в первую ячейку (например, B2), затем наведите курсор на правый нижний угол ячейки (появится черный крестик) и дважды кликните. Формула скопируется вниз до конца заполненного списка в столбце А.
  2. Фиксация даты проверки: Если вам нужно рассчитать возраст не на сегодня, а на конкретную дату (например, на момент приема на работу), замените СЕГОДНЯ() на ссылку на ячейку с этой датой или запишите дату в кавычках: =РАЗНДАТ(A2; "01.09.2025"; "г").
  3. Условное форматирование: Чтобы выделить совершеннолетних или пенсионеров, используйте «Главная» → «Условное форматирование» → «Правила выделения ячеек» → «Больше чем» (например, 18 или 60).

Частые ошибки

  • Ошибка #ИМЯ? при использовании DATEDIF. В русской версии Excel функция называется РАЗНДАТ. Если у вас английская локаль интерфейса, используйте DATEDIF. Аргументы также могут отличаться ("y" вместо "г").
  • Результат 01.01.1900. Это значит, что формат ячейки с результатом установлен как «Дата». Измените формат на «Общий» или «Числовой», чтобы увидеть число лет.
  • Отрицательный возраст. Проверьте, что дата рождения не больше текущей даты. Также возможно, что в ячейке стоит будущий год из-за опечатки.
  • Текст вместо даты. Если дата импортирована из другой системы, она может быть текстом. Используйте функцию ДАТАЗНАЧ или инструмент «Текст по столбцам» для конвертации.

FAQ

Как рассчитать возраст на конкретную дату в прошлом? Замените функцию СЕГОДНЯ() на нужную дату. Например: =РАЗНДАТ(A2; "31.12.2020"; "г") покажет возраст человека на конец 2020 года.

Можно ли посчитать возраст в полных месяцах? Да, измените третий аргумент функции на "м": =РАЗНДАТ(A2; СЕГОДНЯ(); "м"). Это удобно для расчета возраста детей до 2 лет.

Что делать, если ячейка с датой рождения пустая? Формула может выдать ошибку или неверный возраст (как будто человеку 120+ лет). Оберните формулу в проверку: =ЕСЛИ(A2=""; ""; РАЗНДАТ(A2; СЕГОДНЯ(); "г")).

Как скрыть отрицательные значения, если дата рождения в будущем? Используйте конструкцию: =ЕСЛИ(РАЗНДАТ(A2; СЕГОДНЯ(); "г")<0; "Дата в будущем"; РАЗНДАТ(A2; СЕГОДНЯ(); "г")).