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

Почему стандартные методы дают ошибки — и как их избежать

Вы когда-нибудь сталкивались с ситуацией, когда Excel упрямо показывает возраст на год меньше, чем нужно? Или когда человек родился 31 декабря, а программа считает, что ему ещё не исполнилось 18? Эти ошибки возникают из-за неправильного учёта текущей даты и особенностей хранения временных меток в электронных таблицах.

Дело в том, что Excel хранит даты как последовательные числа (начиная с 1 января 1900 года = 1), а время — как дробную часть. Когда вы просто вычитаете дату рождения из текущей даты (=ТДАТА()-A2), программа возвращает количество дней между ними. Но преобразовать это в полные годы — задача нетривиальная, особенно если день рождения ещё не наступил в этом году.

В этой статье мы разберём 5 проверенных методов, которые гарантированно дадут точный результат, включая:

  • 🔹 Базовую формулу с функцией ЦЕЛОЕ (для целых лет)
  • 🔹 Расчёт с учётом месяцев и дней (для точности до дня)
  • 🔹 Метод с ДАТАРАЗН (самый надёжный для сложных случаев)
  • 🔹 Автоматическое обновление возраста при открытии файла
  • 🔹 Обработку ошибок для некорректных дат рождения
📊 Какой метод расчёта возраста вы используете чаще?
Ручной ввод
Простая формула вычитания
Функция ДАТАРАЗН
VBA-скрипты
Не знаю, как считать

Метод 1: Простая формула для целых лет (без месяцев и дней)

Если вам нужно только количество полных лет (без учёта месяцев и дней), используйте эту комбинацию функций:

=ЦЕЛОЕ((ТДАТА()-A2)/365,25)

Где A2 — ячейка с датой рождения. Почему именно 365,25? Потому что Excel учитывает високосные годы (в среднем +1 день каждые 4 года). Округление через ЦЕЛОЕ гарантирует, что человек, родившийся 31 декабря, не будет "молодеть" на год раньше времени.

Пример: если сегодня 15 мая 2026 года, а дата рождения — 20 декабря 1990 года, формула вернёт 33 (потому что 34-й день рождения ещё не наступил).

☑️ Проверка корректности формулы

Выполнено: 0 / 4
⚠️ Внимание: Эта формула не учитывает месяцы и дни. Если вам нужно знать, сколько человеку лет, месяцев и дней — читайте следующий раздел.

Метод 2: Точный расчёт с месяцами и днями (формат "18 лет 3 месяца 15 дней")

Для детального расчёта используйте вложенные функции:

=ДАТАРАЗН(A2;ТДАТА();"y") & " лет, " & ДАТАРАЗН(A2;ТДАТА();"ym") & " мес, " & ДАТАРАЗН(A2;ТДАТА();"md") & " дн."

Разберём параметры ДАТАРАЗН:

  • 📅 "y" — полные годы между датами
  • 🗓️ "ym" — полные месяцы после вычета полных лет
  • 🕒 "md" — дни после вычета лет и месяцев

Эта формула автоматически адаптируется к текущей дате. Например, для даты рождения 15 февраля 2000 года:

Текущая датаРезультат формулы
14 февраля 202623 лет, 11 мес, 30 дн.
15 февраля 202624 лет, 0 мес, 0 дн.
16 февраля 202624 лет, 0 мес, 1 дн.
⚠️ Внимание: Функция ДАТАРАЗН доступна только в Excel 2013 и новее. Для старых версий используйте метод с ЕСЛИ (см. раздел 4).
=ДАТАРАЗН(A2;ТДАТА();"y") — для лет, =ДАТАРАЗН(A2;ТДАТА();"ym") — для месяцев, =ДАТАРАЗН(A2;ТДАТА();"md") — для дней.-->

Метод 3: Автоматическое обновление возраста при открытии файла

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

  1. Создайте формулу в ячейке (например, =ДАТАРАЗН(A2;ТДАТА();"y")).
  2. Перейдите в Файл → Параметры → Формулы.
  3. В разделе Параметры вычислений выберите Автоматически, кроме таблиц данных.
  4. Нажмите OK.

Теперь возраст будет пересчитываться каждый раз при открытии файла. Это особенно полезно для HR-отделов, где актуальность данных критична.

Как заставить Excel обновлять даты вручную?

Нажмите F9 — это принудительно пересчитает все формулы в книге, включая ТДАТА(). Если нужно обновить только один лист, выделите его и нажмите Shift+F9.

Метод 4: Альтернатива для Excel 2010 и старше (без ДАТАРАЗН)

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

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

Эта формула проверяет:

  1. Если текущий месяц больше месяца рождения → возраст = разница лет.
  2. Если месяцы равны, но текущий день больше или равен дню рождения → тоже разница лет.
  3. Во всех остальных случаях вычитаем 1 (потому что день рождения ещё не наступил).

Критическая особенность: Эта формула не учитывает високосные годы при расчёте дней. Для точности до дня в старых версиях Excel придётся использовать VBA-скрипты.

Метод 5: Обработка ошибок для некорректных дат

Что делать, если в ячейке с датой рождения ошибочно введено значение 32.01.2000 или текст "неизвестно"? Чтобы избежать ошибок #ЗНАЧ!, оберните формулу в ЕЧИСЛО:

=ЕСЛИ(ЕЧИСЛО(A2); ДАТАРАЗН(A2;ТДАТА();"y"); "Дата некорректна")

Дополнительные проверки:

  • 🔍 =ЕДАТА(A2) — вернёт ИСТИНА, если в ячейке действительно дата.
  • 📊 =ЕПУСТО(A2) — проверяет пустые ячейки.
  • 📝 =ТИП(A2)=1 — проверяет, что значение является числом (даты в Excel хранятся как числа).

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

Иногда требуется указать возраст не целым числом, а с точностью до десятых или сотых (например, 18,5 лет для медицинских или статистических расчётов). Используйте:

=ДАТАРАЗН(A2;ТДАТА();"y") + (ДАТАРАЗН(A2;ТДАТА();"yd")/365)

Где:

  • 🔢 ДАТАРАЗН(A2;ТДАТА();"y") — целые годы.
  • 🔄 ДАТАРАЗН(A2;ТДАТА();"yd") — дни между датами без учёта лет.
  • 📊 Деление на 365 преобразует дни в доли года.

Пример: если с последнего дня рождения прошло 182 дня, формула добавит 182/365 ≈ 0,5 к целому количеству лет.

⚠️ Внимание: Для высокой точности замените 365 на 365,25, чтобы учесть високосные годы. Однако это может давать незначительные расхождения (порядка 0,01 года) для больших временных промежутков.

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

Почему формула показывает возраст на год меньше, чем нужно?

Это происходит, если текущая дата раньше дня рождения в этом году. Например, если день рождения 30 декабря, а сегодня 1 января, человек ещё не отметил свой день рождения. Используйте формулы с ДАТАРАЗН или ЕСЛИ (см. методы 2 и 4).

Как посчитать возраст на конкретную дату (не текущую)?

Замените ТДАТА() на фиксированную дату в формате ДАТА(год;месяц;день). Пример:

=ДАТАРАЗН(A2;ДАТА(2026;6;15);"y")

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

Можно ли автоматически подсвечивать ячейки с совершеннолетними?

Да, используйте условное форматирование:

  1. Выделите ячейки с возрастом.
  2. Перейдите в Главная → Условное форматирование → Создать правило.
  3. Выберите Использовать формулу... и введите =B2>=18 (где B2 — ячейка с возрастом).
  4. Задайте цвет заливки (например, зелёный).
Как посчитать средний возраст в группе людей?

Используйте функцию СРЗНАЧ для столбца с возрастом:

=СРЗНАЧ(B2:B100)

Убедитесь, что в диапазоне B2:B100 нет текстовых значений или ошибок — иначе результат будет некорректным.

Почему в некоторых ячейках вместо возраста отображается ######?

Это означает, что ширина столбца слишком мала для отображения результата. Расширьте столбец или уменьшите размер шрифта. Также проверьте, что ячейка не отформатирована как Дата (должен быть формат Общий или Числовой).