Расчет возраста и даты рождения в Excel

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

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

Как работает система дат в Excel

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

Важно: Убедитесь, что ячейки с датами имеют формат «Дата». Если ячейка отформатирована как «Текст», формулы вернут ошибку #ЗНАЧ! или неверный результат.

Точный расчет возраста функцией DATEDIF

Функция DATEDIF (от англ. Date Difference) — основной инструмент для вычисления разницы между двумя датами. Несмотря на то, что она скрыта в справке современных версий Excel, она полностью работоспособна и дает наиболее точные результаты.

Синтаксис: =DATEDIF(начальная_дата; конечная_дата; единица_измерения)

Варианты вывода результата

ЕдиницаОписаниеПример формулыРезультат
"Y"Полных лет=DATEDIF(A2; СЕГОДНЯ(); "Y")35
"M"Полных месяцев=DATEDIF(A2; СЕГОДНЯ(); "M")426
"D"Полных дней=DATEDIF(A2; СЕГОДНЯ(); "D")12950
"YM"Остаток месяцев (без учета лет)=DATEDIF(A2; СЕГОДНЯ(); "YM")4
"MD"Остаток дней (без учета лет и мес.)=DATEDIF(A2; СЕГОДНЯ(); "MD")12

Формирование читаемого текста

Чтобы вывести возраст в привычном формате «35 лет 4 месяца 12 дней», объедините несколько вызовов функции с текстовыми строками:

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

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

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

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

Метод через YEARFRAC (Дробный возраст)

Функция ГОДНОДОЛЯ (YEARFRAC) возвращает долю года между двумя датами. Это удобно для финансовых расчетов или статистики, где нужны десятичные дроби.

Формула: =ЦЕЛОЕ(ГОДНОДОЛЯ(A2; СЕГОДНЯ(); 1)) Аргумент 1 указывает на фактическое количество дней в году (учет високосных лет).

Метод через ВЫЧИСЛЕНИЕ ДАТ

Простой, но менее точный способ, основанный на вычитании номеров дней: =ЦЕЛОЕ((СЕГОДНЯ()-A2)/365,25) Недостаток: Может давать погрешность в 1 год, если день рождения еще не наступил в текущем году, так как метод усредняет длину года.

Как узнать дату рождения по возрасту

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

  1. Точный расчет до месяца: Используйте функцию ДАТАМЕС (EDATE). Она отнимает нужное количество месяцев от текущей даты.
   =ДАТАМЕС(СЕГОДНЯ(); -B2*12)

(Где B2 — ячейка с возрастом в годах). Результат: Дата будет совпадать с сегодняшним числом и месяцем, но в прошлом году. День рождения будет определен точно только если человек родился сегодня.

  1. Расчет только года рождения:
   =ГОД(СЕГОДНЯ()) - B2

Эта формула вернет только год, без месяца и дня.

Обработка ошибок и частые проблемы

При работе с датами пользователи часто сталкиваются с типовыми ошибками. Вот как их избежать:

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

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

Защита от пустых ячеек

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

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

Эта конструкция вернет пустую ячейку, пока дата рождения не будет внесена.

FAQ

Почему функция DATEDIF не появляется в подсказках при вводе? Это историческая особенность Excel. Функция осталась для совместимости со старыми версиями (Lotus 1-2-3), но была скрыта из мастера функций. Она работает корректно, если ввести её название вручную.

Как учесть високосные годы? Функции DATEDIF и ГОДНОДОЛЯ (с аргументом 1) автоматически учитывают високосные годы при расчетах. Ручная корректировка не требуется.

Можно ли рассчитать возраст на конкретную дату в прошлом? Да. Вместо функции СЕГОДНЯ() подставьте ссылку на ячейку с нужной датой или запишите дату напрямую: =DATEDIF(A2; "31.12.2020"; "Y").