Вычисление возраста в Excel: от простой разницы до точных лет

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

Чтобы посчитать возраст по дате рождения в Excel, используйте функцию =DATEDIF(дата_рождения; СЕГОДНЯ(); "y") — она вернет количество полных лет. Для более детального расчета (годы, месяцы, дни) комбинируйте аргументы "y", "ym" и "md". Этот метод гарантирует точность с учетом високосных лет и работает во всех версиях программы.

Ниже приведены проверенные способы расчета: от быстрого получения целого числа лет до формирования подробной строки вида «35 лет 4 мес.».

Важно: Функция DATEDIF не отображается в списке подсказок при вводе формулы, но полностью поддерживается современными версиями Excel. Вводите её название вручную.

Точный расчет полных лет (Функция DATEDIF)

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

Базовая формула:

=DATEDIF(A2; СЕГОДНЯ(); "y")

Где A2 — ячейка с датой рождения. Аргумент "y" (year) указывает на необходимость возврата разницы в полных годах.

Преимущества:

  • Абсолютная точность для юридических и кадровых документов.
  • Автоматический учет текущего дня (функция СЕГОДНЯ() обновляется ежедневно).
  • Совместимость со всеми версиями Excel (от 2007 до 365).

Детализация: годы, месяцы и дни

Часто требуется вывести возраст не просто числом, а текстовой строкой, например: «25 лет 3 мес. 12 дн.». Для этого нужно сложить результаты трех разных вызовов DATEDIF с разными единицами измерения.

Формула для полного формата:

=DATEDIF(A2; СЕГОДНЯ(); "y") & " лет " & DATEDIF(A2; СЕГОДНЯ(); "ym") & " мес. " & DATEDIF(A2; СЕГОДНЯ(); "md") & " дн."

Расшифровка аргументов:

  • "y" — полные годы.
  • "ym" — полные месяцы, оставшиеся после вычета лет (игнорирует годы).
  • "md" — полные дни, оставшиеся после вычета месяцев и лет (игнорирует месяцы и годы).

Лайфхак для читаемости: Если вам нужны только годы и месяцы, уберите часть формулы с аргументом "md", чтобы не загромождать ячейку лишней информацией.

Альтернативные методы расчета

Если по каким-то причинам использование DATEDIF невозможно или неудобно, существуют другие подходы, каждый из которых имеет свои нюансы.

Метод разницы дат с округлением

Можно вычесть дату рождения из текущей даты, получив количество дней, и разделить на среднее число дней в году (365,25).

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

Плюсы: Простая логика, понятная новичкам. Минусы: Менее точен в пограничных датах (за день до дня рождения может показать лишний год или наоборот), так как использует усредненное значение года.

Функция ДОЛЯГОДА (YEARFRAC)

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

=ЦЕЛОЕ(ДОЛЯГОДА(A2; СЕГОДНЯ(); 1))

Аргумент 1 указывает на фактическое количество дней в месяце и году. Без функции ЦЕЛОЕ (или ОКРВНИЗ) вы получите дробное число (например, 34,8 года), что редко бывает удобно для отображения возраста.

Расчет возраста на конкретную дату

Иногда нужно узнать возраст человека не на сегодня, а на определенную дату в прошлом или будущем (например, на момент приема на работу или к окончанию учебного года).

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

Пример: Возраст на 1 сентября 2026 года.

=DATEDIF(A2; ДАТА(2026; 9; 1); "y")

Или, если целевая дата записана в ячейке B1:

=DATEDIF(A2; B1; "y")

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

При работе с датами в Excel пользователи часто сталкиваются со следующими проблемами:

  • Ошибка #ЗНАЧ! (#VALUE!): Возникает, если в ячейке с датой рождения хранится текст, а не дата. Проверьте формат ячейки (должен быть «Дата») и убедитесь, что разделители в дате соответствуют настройкам системы (точки или слеши).
  • Отрицательный результат: Функция DATEDIF требует, чтобы начальная дата была меньше конечной. Если дата рождения «в будущем» относительно даты расчета, формула вернет ошибку.
  • Неверный разделитель аргументов: В русской локализации Excel аргументы функций разделяются точкой с запятой (;), а не запятой. Использование запятой приведет к ошибке.

FAQ

Можно ли посчитать возраст без функции DATEDIF? Да, используя комбинацию функций ГОД, МЕСЯЦ и ДЕНЬ с логическим условием ЕСЛИ. Однако формула получится громоздкой: =ГОД(СЕГОДНЯ())-ГОД(A2)-ЕСЛИ(ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(A2);ДЕНЬ(A2))>СЕГОДНЯ();1;0). Функция DATEDIF делает то же самое в три раза короче.

Почему формула не обновляется автоматически? Функция СЕГОДНЯ() пересчитывается только при изменении листа или открытии файла. Если дата не меняется после наступления полуночи, нажмите клавишу F9 для принудительного пересчета всех формул в книге.

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