Как правильно рассчитать возраст в Excel: 5 работающих формул с примерами

Расчет возраста в Microsoft Excel или Google Таблицах — одна из самых востребованных задач при работе с персональными данными, кадровым учетом или аналитикой. Казалось бы, что может быть проще: вычесть дату рождения из текущей даты? Но на практике пользователи сталкиваются с ошибками вроде некорректного отображения месяцев, игнорирования високосных лет или проблем с отрицательными значениями. Эта статья поможет разобраться, какую формулу поставить в Excel, чтобы вычислить возраст точно — с учетом всех нюансов календаря.

Мы рассмотрим не только базовые методы (вроде простого вычитания дат), но и продвинутые функции: ДАТАРАЗН, ГОД, МЕСЯЦ, ДЕНЬ, а также комбинации с СЕГОДНЯ() и ДАТА(). Особое внимание уделим распространенным ошибкам, из-за которых Excel показывает возраст на год меньше или больше реального. Все примеры протестированы в актуальных версиях Excel 2019–2026 и Google Таблиц.

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

1. Базовый метод: вычитание дат и его подводные камни

Самый очевидный способ вычислить возраст — вычесть дату рождения из текущей даты. В Excel это делается так:

=СЕГОДНЯ()-A2

где A2 — ячейка с датой рождения. Но результат вас удивит: вместо возраста в годах вы получите количество дней между датами (например, 12456). Почему так происходит?

Дело в том, что Excel хранит даты как порядковые номера, где 1 соответствует 1 января 1900 года. Вычитание двух дат дает разницу в днях, а не в годах. Чтобы преобразовать дни в годы, нужно разделить результат на 365:

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

Но и этот метод неточен: он не учитывает високосные годы (где 366 дней) и может давать погрешность ±1 год.

⚠️ Внимание: Формула =ЦЕЛОЕ((СЕГОДНЯ()-A2)/365) ошибается для людей, родившихся после 29 февраля в високосном году. Например, если дата рождения 1 марта 2020, а сегодня 28 февраля 2026, Excel покажет возраст на 1 год меньше реального.

Чтобы избежать этой ошибки, используйте функцию ДАТАРАЗН (о ней — в следующем разделе). А пока запомните: простое деление на 365 подходит только для приблизительных расчетов, например, для оценки возрастной группы (18–25, 26–35 и т.д.).

2. Функция ДАТАРАЗН: самый точный способ

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

=ДАТАРАЗН(дата_начала; дата_конца; единица_измерения)

Для возраста в полных годах используйте:

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

где:

  • 📅 A2 — ячейка с датой рождения;
  • 📅 СЕГОДНЯ() — текущая дата;
  • 🔢 "Y" — флаг для вывода полных лет.

Преимущества ДАТАРАЗН:

  • ✅ Учитывает високосные годы;
  • ✅ Корректно обрабатывает даты до/после 29 февраля;
  • ✅ Работает во всех версиях Excel (начиная с 2007 года).

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

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

Эта формула вернет строку вида: "25 лет, 3 мес., 14 дн.".

📊 Какой формат возраста вам нужен чаще всего?
Только полные годы
Годы и месяцы
Годы, месяцы и дни
Дни от даты рождения

3. Альтернативные формулы: ГОД, МЕСЯЦ, ДЕНЬ

Если функция ДАТАРАЗН по какой-то причине недоступна (например, в некоторых локализациях Excel), используйте комбинацию функций ГОД, МЕСЯЦ и ДЕНЬ:

=ГОД(СЕГОДНЯ())-ГОД(A2)-ЕСЛИ(ИЛИ(МЕСЯЦ(СЕГОДНЯ())<МЕСЯЦ(A2); И(МЕСЯЦ(СЕГОДНЯ())=МЕСЯЦ(A2); ДЕНЬ(СЕГОДНЯ())<ДЕНЬ(A2))); 1; 0)

Разберем, как это работает:

  1. 📅 ГОД(СЕГОДНЯ())-ГОД(A2) — разница в годах;
  2. 🔄 ЕСЛИ(...) — проверка, прошел ли день рождения в текущем году:
    • Если текущий месяц < месяца рождения или (текущий месяц = месяцу рождения и текущий день < дня рождения), то вычитаем 1 год.

Эта формула точна, но громоздка. Для удобства создайте именованный диапазон или сохраните ее в Вставка → Формула → Сохранить как новую формулу.

Почему формула возвращает #ИМЯ?

Ошибка #ИМЯ? возникает, если в вашей версии Excel функция называется не ДАТАРАЗН, а DATEDIF. Попробуйте заменить название или проверьте регион в настройках: Файл → Параметры → Язык.

4. Расчет возраста на конкретную дату (не текущую)

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

=ДАТАРАЗН(A2; ДАТА(2026; 6; 30); "Y")

Эта формула вернет возраст на 30 июня 2026 года.

Если дата указана в отдельной ячейке (например, B2), используйте:

=ДАТАРАЗН(A2; B2; "Y")

Пример применения:

Дата рожденияДата событияВозраст на датуФормула
15.05.199001.09.202333=ДАТАРАЗН(A2; B2; "Y")
29.02.200028.02.202623=ДАТАРАЗН(A3; B3; "Y")
31.12.198501.01.202639=ДАТАРАЗН(A4; B4; "Y")
⚠️ Внимание: Если дата события раньше даты рождения, Excel вернет ошибку #ЧИСЛО!. Чтобы избежать этого, добавьте проверку:
=ЕСЛИ(B2

5. Автоматическое обновление возраста при изменении даты

Если вы работаете с динамическими данными (например, в кадровой базе), важно, чтобы возраст пересчитывался автоматически при открытии файла или изменении даты. Для этого:

  1. 🔄 Используйте СЕГОДНЯ() — она обновляется при каждом открытии файла или пересчете листа (F9).
  2. ⚙️ Настройте автоматический пересчет: Формулы → Параметры вычислений → Автоматически.
  3. 📊 Для больших таблиц (10 000+ строк) отключите автоматический пересчет и обновляйте возраст вручную (F9), чтобы не тормозить Excel.
  4. Если возраст нужно зафиксировать (например, для отчетности), скопируйте результаты формул и вставьте как значения (Правка → Специальная вставка → Значения).

    Ячейка с датой рождения имеет формат "Дата"|Формула учитывает високосные годы|Возраст обновляется при изменении текущей даты|Нет ошибок #ЧИСЛО! или #ЗНАЧ!

    -->

    6. Распространенные ошибки и как их избежать

    Даже опытные пользователи Excel допускают ошибки при расчете возраста. Вот TOP-5 проблем и их решения:

    • 🔴 Ошибка #ИМЯ? — проверьте название функции (ДАТАРАЗН или DATEDIF) и регион в настройках Excel.
    • 🔴 Возраст на 1 год меньше реального — скорее всего, день рождения еще не наступил в текущем году. Используйте ДАТАРАЗН вместо деления на 365.
    • 🔴 Отрицательный возраст — дата события раньше даты рождения. Добавьте проверку ЕСЛИ.
    • 🔴 Некорректный формат ячейки — дата рождения должна иметь формат "Дата" (Главная → Формат → Формат ячеек → Дата).
    • 🔴 Excel не распознает дату — проверьте разделители (точка или косая черта) в настройках региона.

    Если возраст все равно считается неправильно, попробуйте преобразовать дату рождения в числовой формат с помощью функции ДАТАЗНАЧ:

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

    Это помогает, когда дата введена как текст (например, после импорта из CSV).

    7. Продвинутые сценарии: возраст в месяцах, днях, часах

    Иногда возраст нужно посчитать не в годах, а в других единицах. Вот готовые формулы:

    • 📅 Возраст в полных месяцах:
      =ДАТАРАЗН(A2; СЕГОДНЯ(); "M")

      Подходит для расчета стажа или возраста младенцев.

    • 📅 Возраст в днях:
      =СЕГОДНЯ()-A2

      Используйте для медицинских целей (например, срок беременности).

    • Возраст в часах:
      =(СЕГОДНЯ()-A2)*24

      Актуально для логистики или производственных процессов.

    • 📊 Возраст в годах с десятичными:
      =ДАТАРАЗН(A2; СЕГОДНЯ(); "Y") + ДАТАРАЗН(A2; СЕГОДНЯ(); "YM")/12

      Например, 25,5 вместо 25 лет 6 месяцев.

Для визуализации возрастных групп используйте условное форматирование:

  1. Выделите столбец с возрастом.
  2. Перейдите в Главная → Условное форматирование → Правила выделения ячеек.
  3. Задайте правила, например:
    • 🔴 Возраст < 18 — красный фон;
    • 🟢 Возраст 18–30 — зеленый;
    • 🔵 Возраст > 30 — синий.

FAQ: Частые вопросы о расчете возраста в Excel

🔹 Почему Excel показывает возраст на 1 год меньше?

Это происходит, если на момент расчета день рождения в текущем году еще не наступил. Например, если человек родился 15 декабря, а сегодня 10 декабря, то по факту ему еще не исполнилось полных лет. Чтобы исправить это, используйте функцию ДАТАРАЗН — она автоматически учитывает такой нюанс.

🔹 Как посчитать возраст в Google Таблицах?

В Google Sheets формулы работают так же, как в Excel. Используйте:

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

Обратите внимание: в английской версии функция называется DATEDIF, а не ДАТАРАЗН.

🔹 Можно ли рассчитать возраст без функции ДАТАРАЗН?

Да, но формула будет сложнее:

=ГОД(СЕГОДНЯ())-ГОД(A2)-ЕСЛИ(ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(A2);ДЕНЬ(A2))>СЕГОДНЯ();1;0)

Эта формула создает "виртуальную" дату в текущем году с месяцем и днем рождения, а затем сравнивает ее с сегодняшним днем.

🔹 Как вывести возраст в формате "25 лет, 3 месяца"?

Используйте комбинацию функций ДАТАРАЗН с разными флагами:

=ДАТАРАЗН(A2;СЕГОДНЯ();"Y") & " лет, " & ДАТАРАЗН(A2;СЕГОДНЯ();"YM") & " мес."

Для дней добавьте & " и " & ДАТАРАЗН(A2;СЕГОДНЯ();"MD") & " дн.".

🔹 Почему Excel не распознает дату рождения?

Чаще всего это происходит из-за неверного формата ячейки. Проверьте:

  1. Ячейка отформатирована как "Дата" (Формат ячеек → Дата).
  2. Разделители даты соответствуют региональным настройкам (например, 15.05.1990 для России или 15/05/1990 для Европы).
  3. Дата не введена как текст (попробуйте =ДАТАЗНАЧ(A2)).