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

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

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

Базовый способ: точный возраст в полных годах

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

Предположим, дата рождения записана в ячейке A2.

Формула для русского Excel:

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

Формула для английского Excel:

=DATEDIF(A2, TODAY(), "Y")

Почему не просто вычитание годов? Формула =ГОД(СЕГОДНЯ()) - ГОД(A2) работает некорректно, если день рождения еще не наступил в текущем году. Она завысит возраст на 1 год. Функция DATEDIF с аргументом "Y" проверяет полную дату и возвращает только целое количество прошедших лет.

Как это работает:

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

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

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

Формула для вывода текста вида «35 лет 4 мес. 12 дн.»:

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

Расшифровка параметров:

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

Если вам нужно рассчитать возраст на конкретную историческую дату (например, на момент приема на работу), замените функцию СЕГОДНЯ() на фиксированную дату: ДАТА(2025; 1; 1) или ссылку на ячейку с этой датой.

Обработка ошибок и пустых ячеек

При массовом заполнении таблиц часто возникают ситуации, когда дата рождения еще не внесена. Стандартная формула в таком случае вернет ошибку #ЗНАЧ! или #ЧИСЛО!, что портит вид отчета.

Защита от пустых ячеек: Используйте функцию ЕСЛИ для проверки наличия данных.

=ЕСЛИ(ЕПУСТО(A2); ""; DATEDIF(A2; СЕГОДНЯ(); "Y"))

Логика: Если ячейка A2 пуста, вернуть пустую строку, иначе посчитать возраст.

Защита от некорректных данных: Если в ячейке может оказаться текст вместо даты, оберните формулу в ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(DATEDIF(A2; СЕГОДНЯ(); "Y"); "Проверьте дату")

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

МетодФормулаТочностьКогда использовать
Рекомендуемый=DATEDIF(A2; СЕГОДНЯ(); "Y")ВысокаяДля официальных отчетов, анкет, кадрового учета.
Упрощенный=ГОД(СЕГОДНЯ()) - ГОД(A2)НизкаяТолько для приблизительных оценок, где ошибка в 1 год не критична.
Текстовый=DATEDIF(...) & " лет "...ВысокаяДля вывода красивых подписей в сертификатах или поздравлениях.

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

  1. Ошибка #ИМЯ? в английском Excel. Если вы скопировали формулу с точкой с запятой (;) в английскую версию Excel, замените разделители на запятые (,). Также проверьте название функции (СЕГОДНЯTODAY).
  2. Дата сохранена как текст. Если формула возвращает ошибку, убедитесь, что ячейка с датой рождения имеет формат «Дата», а не «Текст». Текст часто выравнивается по левому краю ячейки, а дата — по правому.
  3. Неверный порядок аргументов. В функции DATEDIF первая дата всегда должна быть раньше второй. Аргументы идут в порядке: (Дата_начала; Дата_конца; Единица). Если перепутать местами дату рождения и текущую дату, получите ошибку #ЧИСЛО!.

FAQ

Вопрос: Учитывает ли Excel високосные годы? Ответ: Да, функция DATEDIF и стандартные операции с датами в Excel автоматически учитывают високосные годы. Люди, родившиеся 29 февраля, в невисокосные годы будут корректно считаться достигшими возраста в зависимости от выбранной логики (обычно 28 февраля или 1 марта считаются днем рождения, DATEDIF обрабатывает это штатно).

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

Вопрос: Формула не работает, выдает #ЗНАЧ! Ответ: Проверьте разделители. В русской локализуется используется точка с запятой (;), в английской — запятая (,). Убедитесь, что в ячейке с датой действительно записана дата, а не текстовая строка вида "12.05.1990".