Как рассчитать возраст на определенную дату в Excel: формулы и примеры

Расчет возраста в Microsoft Excel — задача, с которой сталкиваются HR-менеджеры, бухгалтеры, педагоги и даже обычные пользователи при составлении отчетов или личных планов. На первый взгляд кажется, что достаточно вычесть дату рождения из текущей даты, но на практике всё сложнее: нужно учитывать високосные годы, месяцы разной продолжительности и даже региональные форматы дат. Ошибка в формуле может привести к тому, что человек старше на год или моложе, чем есть на самом деле — а это критично для кадровых документов или статистики.

В этой статье мы разберем 5 рабочих способов посчитать возраст на любую дату — от простейших формул до универсальных решений, которые учитывают все нюансы календаря. Вы узнаете, как избежать типичных ошибок (например, отрицательного возраста при расчете на будущую дату), как адаптировать формулы для Google Таблиц, и почему функция ДАТАРАЗН не всегда дает точный результат. Все примеры протестированы в Excel 2010–2023 и Microsoft 365.

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

1. Простейший способ: вычитание дат с округлением

Самый очевидный (но не всегда точный) метод — вычесть дату рождения из целевой даты и разделить результат на 365. Формула выглядит так:

=ЦЕЛОЕ(([целевая_дата]-[дата_рождения])/365)

Плюсы: простота, работает во всех версиях Excel.

Минусы: игнорирует високосные годы (ошибка ±1 день за 4 года) и не учитывает месяцы/дни. Например, человек, родившийся 29 февраля, по этой формуле будет "молодеть" раз в 4 года.

Пример для ячейки A2 (дата рождения) и B2 (целевая дата):

=ЦЕЛОЕ((B2-A2)/365)

2. Точный расчет с функцией ДАТАРАЗН

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

=ДАТАРАЗН([дата_начальная]; [дата_конечная]; "Y")

где "Y" — код для расчета полных лет.

🔹 Особенности:

  • 📅 Работает корректно с 29 февраля (считает его как 28 февраля в невисокосные годы).
  • 🔄 Возвращает только полные годы — если до дня рождения осталось 10 месяцев, возраст не увеличится.
  • ⚠️ В Excel 2007 и старше функция скрыта в мастере функций (придется вводить вручную).

Пример для расчета возраста на сегодня:

=ДАТАРАЗН(A2;СЕГОДНЯ();"Y")
⚠️ Внимание: Если целевая дата раньше даты рождения (например, расчет возраста ребенка на момент поступления в школу), функция вернет ошибку. Используйте проверку:
=ЕСЛИ(B2

3. Универсальная формула с учетом месяца и дня

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

=ДАТАРАЗН(A2;B2;"Y") + ЕСЛИ(ИЛИ(МЕСЯЦ(B2)>МЕСЯЦ(A2); И(МЕСЯЦ(B2)=МЕСЯЦ(A2); ДЕНЬ(B2)>=ДЕНЬ(A2))); 0; -1)

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

  1. Сначала считаем полные годы (ДАТАРАЗН).
  2. Потом проверяем, прошел ли день рождения в текущем году:
    • Если целевой месяц > месяца рождения → день рождения еще не был.
    • Если месяцы равны, но день целевой даты ≥ дня рождения → день рождения прошел.
  • Если день рождения не прошел, отнимаем 1 год.
  • 💡 Пример: Человек родился 15.03.1990. На 10.03.2023 ему еще 32 года, а с 15.03.2023 станет 33. Формула это учтет.

    📊 Какой способ расчета возраста вы используете чаще?
    Вычитание с округлением
    Функция ДАТАРАЗН
    Универсальная формула
    Другой вариант

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

    Если нужно узнать возраст человека на произвольную дату (например, на 01.01.2020), замените СЕГОДНЯ() на ячейку с этой датой. Формула:

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

    где C2 — ячейка с целевой датой.

    ⚠️ Типичная ошибка: если целевая дата в формате текста (например, "01.01.2020"), Excel не распознает ее как дату. Проверьте формат ячейки:

    • 📑 Выделите ячейку → Формат ячеекДата.
    • 🔢 Или используйте ДАТАЗНАЧ для преобразования:
      =ДАТАРАЗН(A2;ДАТАЗНАЧ(C2);"Y")

    📊 Сравнение методов для даты рождения 29.02.2000 и целевой даты 01.03.2023:

    МетодФормулаРезультатКомментарий
    Вычитание/365=ЦЕЛОЕ((C2-A2)/365)23Ошибка: реально 23 года и 1 день
    ДАТАРАЗН=ДАТАРАЗН(A2;C2;"Y")23Корректно (29.02.2000 → 28.02.2023)
    Универсальная=ДАТАРАЗН(A2;C2;"Y") + ЕСЛИ(...) 23Точно, но избыточно для этого случая

    5. Расчет возраста в Google Таблицах

    В Google Sheets все формулы работают аналогично, но есть нюансы:

    • 🌐 Функция ДАТАРАЗН называется DATEDIF (английская версия).
    • 📅 Для текущей даты используйте TODAY() вместо СЕГОДНЯ().
    • ⚠️ Формат даты по умолчанию зависит от языковых настроек аккаунта.

    Пример для Google Таблиц:

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

    🔄 Как изменить формат даты:

    1. Выделите ячейку → ФорматЧислоДата.
    2. Для ручного ввода используйте формат ДД.ММ.ГГГГ или ММ/ДД/ГГГГ (зависит от региона).
    Почему в Google Таблицах возраст может отличаться на 1 день?

    Это связано с временными зонами серверов Google. Если вы находитесь в часовом поясе UTC+3, а сервер использует UTC, дата может "сдвинуться" на ±1 день при расчетах через TODAY(). Решение: фиксируйте дату вручную (например, =ДАТА(2023;5;15)) для критичных вычислений.

    6. Расчет возраста с учетом месяцев и дней

    Иногда требуется не только количество полных лет, но и месяцев/дней. Для этого модифицируем ДАТАРАЗН:

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

    📌 Расшифровка кодов:

    • "Y" — полные годы.
    • "YM" — месяцы без учета лет.
    • "MD" — дни без учета месяцев и лет.

    💡 Пример вывода: "25 лет, 3 мес., 15 дн.".

    ⚠️ Внимание: Если целевая дата — день рождения (например, 15.05.2023 для даты рождения 15.05.1990), функция ДАТАРАЗН с кодом "MD" вернет 0, хотя фактически прошел 1 день. Чтобы исправить, добавьте +1:
    =ДАТАРАЗН(A2;B2;"MD") + 1

    Ячейки с датами имеют формат "Дата"|Целевая дата не раньше даты рождения|Учтена разница в високосные годы (для 29.02)|Формула возвращает ожидаемый результат на тестовых данных-->

    Готовые шаблоны для быстрого расчета

    Скопируйте формулы в свою таблицу, заменив A2 и B2 на свои ячейки:

    ЗадачаФормула для ExcelФормула для Google Таблиц
    Возраст на сегодня=ДАТАРАЗН(A2;СЕГОДНЯ();"Y")=DATEDIF(A2; TODAY(); "Y")
    Возраст на конкретную дату (в ячейке C2)=ДАТАРАЗН(A2;C2;"Y")=DATEDIF(A2; C2; "Y")
    Возраст с месяцами и днями=ДАТАРАЗН(A2;B2;"Y")&" г. "&ДАТАРАЗН(A2;B2;"YM")&" м. "=DATEDIF(A2;B2;"Y")&" y. "&DATEDIF(A2;B2;"YM")&" m. "
    Проверка на день рождения=ЕСЛИ(И(МЕСЯЦ(B2)=МЕСЯЦ(A2);ДЕНЬ(B2)=ДЕНЬ(A2));"🎉 День рождения!";"")=IF(AND(MONTH(B2)=MONTH(A2);DAY(B2)=DAY(A2));"🎉 Birthday!";"")

    🔹 Совет: Для массового расчета (например, для списка сотрудников) протяните формулу вниз, ухватившись за правый нижний угол ячейки.

    Частые вопросы (FAQ)

    🔹 Почему формула возвращает отрицательный возраст?

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

    =ЕСЛИ(B2
    🔹 Как посчитать возраст в годах с десятичной частью (например, 25.5 лет)?

    Используйте формулу:

    =РАЗНДАТ(A2;B2;"Y") + (РАЗНДАТ(A2;B2;"YD") / 365)

    где "YD" — количество дней без учета лет. Для точности замените 365 на 365,25 (учитывает високосные годы).

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

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

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

    Эта формула учитывает, прошел ли день рождения в текущем году.

    🔹 Почему в Excel 2016 и 2019 разные результаты?

    В Excel 2016 и новее исправлены ошибки обработки даты 29.02 в невисокосные годы. Если вам важна обратная совместимость, используйте универсальную формулу из раздела 3.

    🔹 Как автоматически обновлять возраст при изменении даты?

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

    1. Перейдите в Формулы → Параметры вычислений.
    2. Выберите Автоматически (обновление при любом изменении в книге).