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

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

Мы рассмотрим 5 проверенных способов — от базовых формул до продвинутых функций, которые автоматически обновляют возраст при открытии файла. Особое внимание уделим типичным ошибкам, например, когда Excel возвращает дату вместо числа или округляет результат некорректно. Все примеры адаптированы для Excel 2010–2023 и Microsoft 365, включая веб-версию.

Почему нельзя просто вычесть даты

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

  • 📅 Високосные годы: 29 февраля добавляет сложности в расчётах.
  • 🔄 Автоматическое обновление: формула должна динамически использовать текущую дату.
  • 📊 Формат вывода: возраст может требоваться в годах, месяцах и днях или только в полных годах.

Кроме того, если просто разделить разницу на 365, результат будет неточным из-за варьирующего количества дней в году. Например, человек, родившийся 1 марта 2000 года, на 1 марта 2026 года прожил ровно 24 года, но формула =РАЗНДАТ(A2;ТДАТА();"y") вернёт 23, если не учитывать високосный 2020 год.

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

Способ 1: Функция РАЗНДАТ (самый надёжный метод)

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

=РАЗНДАТ(дата_рождения; ТДАТА(); "y")

Пример: если в ячейке A2 указана дата 15.05.1990, формула вернёт текущий возраст в полных годах. Чтобы вывести годы, месяцы и дни в одной ячейке, комбинируйте функцию с текстом:

=РАЗНДАТ(A2;ТДАТА();"y") & " лет, " & РАЗНДАТ(A2;ТДАТА();"ym") & " мес., " & РАЗНДАТ(A2;ТДАТА();"md") & " дн."
  • Плюсы: учитывает високосные годы, работает во всех версиях Excel.
  • ⚠️ Минусы: не документирована в справочнике Excel (начинается с =РАЗН, дальше подсказка не появляется).

Убедитесь, что дата рождения в формате даты (не текст)|Проверьте региональные настройки (точка или запятая в формулах)|Используйте ТДАТА() для динамического обновления|Для точности комбинируйте с "ym" и "md"

-->

Способ 2: Формула с ЦЕЛОЕ и ГОД

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

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

Здесь 365,25 — среднее количество дней в году с учётом високосных. Формула округляет результат до ближайшего целого числа. Для более точного расчёта (с учётом точного количества дней) добавьте проверку на месяц и день:

=ЕСЛИ(И(МЕСЯЦ(ТДАТА())>МЕСЯЦ(A2); ДЕНЬ(ТДАТА())>=ДЕНЬ(A2)); ГОД(ТДАТА())-ГОД(A2); ГОД(ТДАТА())-ГОД(A2)-1)
⚠️ Внимание: Эта формула может давать погрешность ±1 день в високосные годы. Для критических расчётов (например, медицинских данных) используйте РАЗНДАТ.

Способ 3: Вывод возраста в годах, месяцах и днях

Часто требуется детализированный вывод, например: 32 года, 5 месяцев, 14 дней. Для этого комбинируем несколько функций:

=РАЗНДАТ(A2;ТДАТА();"y") & " г., " & РАЗНДАТ(A2;ТДАТА();"ym") & " м., " & РАЗНДАТ(A2;ТДАТА();"md") & " д."

Расшифровка параметров:

ПараметрОписаниеПример результата
"y"Полные годы25
"ym"Месяцы с последнего дня рождения3
"md"Дни с последнего месяца20
"d"Общее количество дней9125

Для корректного отображения на русском языке добавьте функцию ЕСЛИ для склонения:

=РАЗНДАТ(A2;ТДАТА();"y") & " " & ЕСЛИ(РАЗНДАТ(A2;ТДАТА();"y")=1;"год";ЕСЛИ(И(РАЗНДАТ(A2;ТДАТА();"y")>1;РАЗНДАТ(A2;ТДАТА();"y")<5);"года";"лет"))

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

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

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте этот код в модуль ThisWorkbook:
    Private Sub Workbook_Open()
    

    Application.CalculateFull

    End Sub

  3. Сохраните файл как .xlsm (с поддержкой макросов).

Теперь при каждом открытии файла все формулы с ТДАТА() будут пересчитаны. Это единственный способ гарантировать актуальность данных без ручного обновления (клавиша F9).

⚠️ Внимание: Макросы могут быть заблокированы настройками безопасности Excel. Чтобы разрешить их выполнение, перейдите в Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Параметры макросов и выберите Включить все макросы (не рекомендуется для файлов из ненадёжных источников).

Способ 5: Расчёт возраста на конкретную дату

Если нужно узнать возраст не на сегодня, а на определённую дату (например, на 31.12.2023), замените ТДАТА() на фиксированную дату в формате ДАТА(год;месяц;день):

=РАЗНДАТ(A2; ДАТА(2023;12;31); "y")

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

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

Это полезно для:

  • 📅 Расчёта возраста на дату события (приём на работу, медицинский осмотр).
  • 📈 Аналитики по возрастным группам на историческую дату.
  • 🎓 Определения возраста учеников на 1 сентября учебного года.
Как Excel хранит даты?

Excel преобразует даты в последовательные числа, где 1 соответствует 1 января 1900 года (в Windows) или 1 января 1904 года (в Mac по умолчанию). Например, 15.05.1990 — это число 32892. Такое представление позволяет выполнять арифметические операции (сложение/вычитание дней) и сравнения.

Типичные ошибки и как их избежать

Даже опытные пользователи допускают ошибки при расчёте возраста. Вот самые распространённые:

  1. Текст вместо даты: Если в ячейке с датой рождения стоит апостроф (например, '15.05.1990), Excel воспринимает её как текст. Исправьте формат через Формат ячеек → Дата.
  2. Региональные настройки: В русскоязычной версии Excel используется запятая в формулах (=РАЗНДАТ(A2;ТДАТА();"y")), а в английской — точка с запятой (=DATEDIF(A2;TODAY();"y")).
  3. Округление в меньшую сторону: Формула =ЦЕЛОЕ((ТДАТА()-A2)/365) не учитывает високосные годы. Используйте 365,25 или РАЗНДАТ.

Проверьте корректность данных с помощью функции ДАТАЗНАЧ:

=ЕСЛИ(ЕОШ(ДАТАЗНАЧ(A2)); "Некорректная дата"; "Дату можно использовать")

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

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

Да, используйте комбинацию =ЦЕЛОЕ((ТДАТА()-A2)/365,25) для приблизительного результата или формулу с ГОД, МЕСЯЦ и ДЕНЬ для точного расчёта. Однако РАЗНДАТ надёжнее для учёта високосных годов.

Почему Excel показывает возраст в формате даты (например, 45678)?

Это происходит, если ячейка отформатирована как Дата. Измените формат на Общий или Числовой. Также проверьте, не используется ли формула без деления на 365 (например, просто =ТДАТА()-A2).

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

В Google Sheets используйте те же формулы, но с английским синтаксисом:

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

Функция ТДАТА() в Google Таблицах называется TODAY().

Можно ли автоматически обновлять возраст без макросов?

Без макросов возраст будет обновляться только при изменении данных в книге или принудительном пересчёте (F9). Для автоматического обновления при открытии файла требуется VBA.

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

Используйте параметр "m" в РАЗНДАТ:

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

Для вывода в формате 5 месяцев 15 дней комбинируйте с "md".