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

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

В этой статье мы разберём 5 проверенных способов посчитать возраст в Excel — от простейших формул до автоматизированных решений с учётом всех нюансов. Вы узнаете, как избежать ошибок при работе с датами, почему иногда формулы возвращают некорректные значения, и как адаптировать расчёты под специфические задачи (например, определение возраста в годах, месяцах и днях одновременно). Особое внимание уделим динамическому обновлению возраста при открытии файла — чтобы данные всегда были актуальными.

1. Базовый метод: вычитание дат с функцией DATEDIF

Самый популярный способ рассчитать возраст — использовать функцию DATEDIF (от англ. Date Difference). Она скрыта в интерфейсе Excel, но работает во всех версиях программы, включая Excel 365 и Excel 2019. Формула имеет три аргумента:

  • 📅 Начальная дата (дата рождения)
  • 📅 Конечная дата (текущая дата или другая дата для сравнения)
  • 🔢 Единица измерения ("Y" — годы,"M" — месяцы,"D" — дни)

Пример формулы для ячейки A2 с датой рождения:

=DATEDIF(A2;TODAY;"Y")

Где TODAY — функция, возвращающая текущую дату. Если вам нужно посчитать возраст на конкретную дату (например, 31.12.2026), замените TODAY на "31.12.2026" в формате даты.

2. Альтернативные формулы без DATEDIF

Если по каким-то причинам DATEDIF не подходит (например, в Google Таблицах её синтаксис отличается), можно использовать комбинацию функций YEAR, MONTH и DAY. Этот метод даёт более гибкий контроль над расчётами:

=YEAR(TODAY)-YEAR(A2)-IF(OR(MONTH(TODAY)

Разберём логику:

  1. Вычисляем разницу лет между текущей датой и датой рождения.
  2. Проверяем, прошёл ли день рождения в этом году:
    • Если текущий месяц раньше месяца рождения, вычитаем 1 год.
    • Если месяцы совпадают, но текущий день раньше дня рождения, тоже вычитаем 1 год.

Эта формула точнее DATEDIF в edge-cases, например, когда дата рождения — 29 февраля высокосного года, а текущий год не высокосный.

📊 Какой способ расчёта возраста вы используете чаще?
Функция DATEDIF
Ручные формулы (YEAR/MONTH/DAY)
Другие функции (например, INT)
Не знаю, как считать

3. Расчёт возраста в годах, месяцах и днях

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

=DATEDIF(A2;TODAY;"Y") &" лет," & DATEDIF(A2;TODAY;"YM") &" мес.," & DATEDIF(A2;TODAY;"MD") &" дн."

Обратите внимание на параметры:

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

Важно: если дата рождения — 31 января, а текущая дата — 28 февраля, Excel может показать 28 дней вместо 31 из-за разницы в продолжительности месяцев. Чтобы избежать путаницы, используйте формат вывода с пояснениями, как в примере выше.

Почему Excel иногда ошибается с днями?

Excel учитывает фактическую продолжительность месяцев. Например, между 31.01 и 28.02 пройдёт 28 дней, а не 31, даже если визуально кажется, что разница больше.

4. Автоматическое обновление возраста при открытии файла

По умолчанию Excel не пересчитывает формулы с TODAY вручную — они обновляются только при открытии файла или принудительном пересчёте (F9). Если вам нужно, чтобы возраст всегда был актуальным:

  1. Перейдите в Файл → Параметры → Формулы.
  2. В разделе Параметры вычислений выберите Автоматически, кроме таблиц данных.
  3. Нажмите OK.

Теперь возраст будет обновляться при любом изменении в книге. Для Google Таблиц это работает по умолчанию — формулы с TODAY пересчитываются при каждом открытии файла.

☑️ Настройка автоматического обновления возраста

Выполнено: 0 / 4

5. Ошибки и их решения

Даже с правильными формулами Excel может возвращать некорректные значения. Рассмотримные проблемы и способы их исправления:

Ошибка Причина Решение
#ИМЯ? Опечатка в названии функции (например, DATEIF вместо DATEDIF) Проверьте синтаксис. Функция чувствительна к регистру!
#ЗНАЧ! Ячейка с датой рождения пустая или содержит текст Используйте IFERROR или проверьте данные функцией ISDATE
Некорректный возраст (например, 1 год вместо 0 для новорождённых) Формула не учитывает, что день рождения ещё не наступил Добавьте проверку с IF (см. раздел 2)
Возраст не обновляется Режим вычислений установлен в"Вручную" Включите автоматический пересчёт (раздел 4)

Если вы работаете с большим массивом данных, добавьте проверку на корректность дат с помощью IF:

=IF(AND(ISNUMBER(A2);A2>0); DATEDIF(A2;TODAY;"Y");"Ошибка в данных")

6. Продвинутые сценарии: возраст на определённую дату

Иногда требуется посчитать возраст не на текущую дату, а на конкретный день в прошлом или будущем. Например, чтобы определить, сколько лет было человеку на момент события. Для этого:

  1. В ячейке B2 укажите дату рождения.
  2. В ячейке C2 — целевую дату (например, "01.01.2020").
  3. Используйте формулу:
=DATEDIF(B2;C2;"Y")

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

Если целевая дата раньше даты рождения, Excel вернёт ошибку. Чтобы обработать этот случай, оберните формулу в IF:

=IF(C2>=B2; DATEDIF(B2;C2;"Y");"Дата некорректна")

7. Визуализация возрастных данных

Рассчитанный возраст можно визуализировать с помощью условного форматирования или диаграмм. Например, чтобы выделить сотрудников старше 50 лет:

  1. Выделите столбец с возрастом.
  2. Перейдите в Главная → Условное форматирование → Правила выделения ячеек → Больше....
  3. Укажите значение 50 и выберите цвет заливки.

Для построения гистограммы распределения возрастов:

  1. Выделите данные (столбец с возрастом).
  2. Нажмите Вставка → Гистограмма.
  3. Настройте оси: по X — возрастные группы (например, 20-30, 30-40), по Y — количество людей.

Это поможет быстро анализировать возрастную структуру группы, например, для планирования кадровых мероприятий или маркетинговых кампаний.

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

Можно ли посчитать возраст в Excel Online?

Да, все описанные формулы работают в Excel Online, включая DATEDIF и TODAY. Однако учтите, что в веб-версии нет некоторых продвинутых функций (например, LET), но для базового расчёта возраста этого достаточно.

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

В Google Таблицах синтаксис DATEDIF идентичен Excel, но есть нюанс: функция не поддерживает параметр"YD" (разница в днях без учёта лет). Для точного расчёта используйте комбинацию YEAR/MONTH/DAY, как в разделе 2.

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

Это происходит, если текущая дата раньше дня рождения в этом году. Например, если сегодня 10 марта, а день рождения 15 марта, человек ещё не отметил юбилей. Используйте формулы с проверкой из раздела 2, чтобы избежать ошибки.

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

Для детей до 1 года удобнее использовать формулу:

=DATEDIF(A2;TODAY;"M")

Она вернёт полное количество месяцев, включая неполные (например, 3 месяца и 15 дней = 3 месяца). Для точности добавьте дни:

=DATEDIF(A2;TODAY;"M") &" мес." & DATEDIF(A2;TODAY;"MD") &" дн."
Можно ли автоматически обновлять возраст в сводной таблице?

Да, но нужно настроить источник данных. Добавьте в исходную таблицу столбец с формулой возраста (например, =DATEDIF([@Дата_рождения];TODAY;"Y")), затем обновите сводную таблицу (ПКМ → Обновить). Для автоматического обновления используйте Power Query или VBA-скрипты.

Теперь вы знаете все нюансы расчёта возраста в Excel — от простых формул до обработки ошибок и визуализации. Если ваша задача требует учёта дополнительных параметров (например, временных зон или нестандартных календарей), рассмотрите использование Power Query или VBA для создания кастомных решений. Для большинства же случаев достаточно комбинации DATEDIF и TODAY с правильной настройкой форматов ячеек.