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

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

Эта статья поможет разобраться во всех тонкостях. Мы рассмотрим 5 рабочих способов — от простейших формул до универсальных решений, которые учитывают все исключения. Вы узнаете, как избежать ошибки #ЗНАЧ!, почему иногда возраст отображается в виде даты (45678 вместо 32), и как автоматизировать расчёты для тысяч строк. Особое внимание уделим проверке корректности данных — ведь одна опечатка в дате рождения может испортить всю таблицу.

Если вы работаете с персональными данными (например, в HR или медицине), то точность здесь критична. Даже один неправильно посчитанный год может привести к серьёзным последствиям — от ошибок в отчётности до проблем с законом. Поэтому мы не просто дадим формулы, но и объясним, как их адаптировать под конкретные задачи.

1. Базовый способ: простая разность дат

Начнём с самого очевидного метода — вычитания даты рождения из текущей даты. В большинстве случаев это сработает, но есть подводные камни.

Формула выглядит так:

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

где A2 — ячейка с датой рождения. Однако этот метод не учитывает месяц и день. Например, если сегодня 15.05.2026, а дата рождения 20.05.1990, формула вернёт 34, хотя на самом деле человеку ещё только 33.

  • Плюсы: максимально простая формула, подходит для быстрых прикидок.
  • Минусы: неточный результат, если день рождения ещё не наступил в текущем году.

Чтобы исправить это, добавим проверку с помощью функции ЕСЛИ:

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

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

Для точного расчёта возраста с учётом всех нюансов используйте комбинацию функций ДАТА, ЕСЛИ и ДРОБЬ:

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

Эта формула делит разницу между датами на среднее количество дней в году (365,25 — с учётом високосных лет) и округляет результат до целого числа. Такой подход точнее, чем простое вычитание годов, но всё равно может давать погрешность в ±1 день из-за особенностей календаря.

Для абсолютной точности применяйте этот вариант:

=ДРОБЬ(ГОД(СЕГОДНЯ)-ГОД(A2)-1+(МЕСЯЦ(СЕГОДНЯ)>МЕСЯЦ(A2))+(МЕСЯЦ(СЕГОДНЯ)=МЕСЯЦ(A2))*(ДЕНЬ(СЕГОДНЯ)>=ДЕНЬ(A2)))
⚠️ Внимание: Если в ячейке с датой рождения указано значение вроде 45678 вместо 12.03.2026, Excel воспринимает его как количество дней с 01.01.1900. Перед расчётами убедитесь, что формат ячейки — «Дата», а не «Общий» или «Числовой».
ФормулаПример результатаТочностьСложность
=ГОД(СЕГОДНЯ)-ГОД(A2)32 (если день рождения уже был)НизкаяПростая
=ЦЕЛОЕ((СЕГОДНЯ-A2)/365)31 или 32 в зависимости от днейСредняяСредняя
=ДРОБЬ(ГОД(СЕГОДНЯ)-ГОД(A2)-1+...)32 (точный)ВысокаяСложная
=РАЗНДАТ(A2;СЕГОДНЯ;"y")32ВысокаяПростая

3. Функция РАЗНДАТ: скрытый инструмент Excel

Мало кто знает, но в Excel есть специальная функция для расчёта разницы между датами — РАЗНДАТ (DATEDIF в английской версии). Она не документирована в справочной системе, но работает во всех версиях программы.

Синтаксис:

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

Для возраста используйте единицу "y" (years):

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

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

  • 🔹 Автоматически учитывает месяцы и дни.
  • 🔹 Работает даже с будущими датами (вернёт отрицательное значение).
  • 🔹 Поддерживает другие единицы: "m" (месяцы), "d" (дни).
⚠️ Внимание: В Google Таблицах функция РАЗНДАТ называется DATEDIF и работает аналогично. Но если вы переносите файл из Excel в Google Sheets, формулу может потребоваться перезаписать.
📊 Какой способ расчёта возраста вы используете чаще?
Простое вычитание лет
Формула с учётом месяцев и дней
Функция РАЗНДАТ
Другой вариант

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

Часто требуется узнать возраст не на текущий момент, а на определённую дату — например, на 31.12.2023 для отчётности или на 01.09.2026 для планирования. В этом случае замените СЕГОДНЯ на фиксированную дату.

Примеры:

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

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

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

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

Формат ячейки с датой рождения —"Дата"|Формат ячейки с целевой датой —"Дата"|Нет пустых ячеек в диапазоне|Целевая дата не раньше даты рождения (иначе возраст отрицательный)-->

Для массового расчёта (например, для списка сотрудников) протяните формулу вниз. Если в какой-то строке появится ошибка #ЧИСЛО!, это значит, что целевая дата раньше даты рождения — проверьте данные.

5. Автоматизация: возраст в годах, месяцах и днях

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

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

Результат будет выглядеть так: 32 лет, 5 мес., 14 дн.. Обратите внимание на параметры:

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

Если вам нужны только месяцы или дни, используйте:

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

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

Почему иногда месяцы считаются неправильно?

Функция РАЗНДАТ с параметром "m" возвращает полное количество месяцев между датами, а не остаток после вычета лет. Например, разница между 01.01.2020 и 01.03.2020 составит 2 месяца, даже если в годах это 0. Чтобы получить месяцы"сверх полных лет", используйте "ym"

6. Ошибки и их исправление

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

ОшибкаПричинаРешение
#ИМЯ?Опечатка в названии функции (например, РАЗНДАТА вместо РАЗНДАТ)Проверьте синтаксис. В английской версии Excel используйте DATEDIF.
#ЗНАЧ!Ячейка содержит текст вместо даты или пустаяУбедитесь, что в ячейке корректная дата. Используйте ЕЧИСЛО(A2) для проверки.
Отрицательный возрастЦелевая дата раньше даты рожденияПоменяйте местами даты в формуле или добавьте АБС для модуля.
Возраст в формате даты (45678)Ячейка с результатом имеет формат"Дата"Измените формат ячейки на"Общий" или"Числовой".

Чтобы избежать большинства ошибок, используйте проверку данных:

=ЕСЛИ(ЕЧИСЛО(A2); РАЗНДАТ(A2; СЕГОДНЯ;"y");"Ошибка: неверная дата")

Эта формула вернёт возраст только если в A2 корректная дата. В противном случае выведет сообщение об ошибке.

7. Продвинутые приёмы: возраст в условиях и массивы

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

Пример 1. Разделение по возрастным группам:

=ЕСЛИ(РАЗНДАТ(A2;СЕГОДНЯ;"y")<18;"Несовершеннолетний";

ЕСЛИ(РАЗНДАТ(A2;СЕГОДНЯ;"y")<30;"18-29";

ЕСЛИ(РАЗНДАТ(A2;СЕГОДНЯ;"y")<50;"30-49";"50+")))

Пример 2. Расчёт среднего возраста для диапазона:

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

Но учтите: это массивная формула. В старых версиях Excel её нужно вводить через Ctrl+Shift+Enter.

Пример 3. Подсчёт количества людей старше 40 лет:

=СЧЁТЕСЛИ(РАЗНДАТ(A2:A100; СЕГОДНЯ;"y");">40")
Как ускорить расчёты для больших таблиц?

Если у вас тысячи строк, избегайте вложенных ЕСЛИ — они тормозят Excel. Вместо этого:

1. Сначала рассчитайте возраст в отдельном столбце.

2. Затем используйте ВПР или ИНДЕКС/ПОИСКПОЗ для категоризации.

Это уменьшит нагрузку и ускорит пересчёт.

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

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

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

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

Она учитывает високосные годы и даёт результат с точностью до дня. Однако для абсолютной точности лучше комбинировать ГОД, МЕСЯЦ и ДЕНЬ, как показано в разделе 2.

Почему функция РАЗНДАТ не работает в Google Таблицах?

В Google Sheets функция называется DATEDIF (без перевода). Синтаксис идентичен:

=DATEDIF(A2; TODAY;"y")

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

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

Используйте комбинацию:

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

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

=РАЗНДАТ(A2; СЕГОДНЯ;"m")
Можно ли автоматически обновлять возраст при изменении даты?

Да, если в формуле используется СЕГОДНЯ или ссылка на ячейку с текущей датой. Excel пересчитает значение при:

  • 🔄 Открытии файла.
  • 🔄 Ручном пересчёте (F9).
  • 🔄 Изменении любой ячейки в таблице (если включён автоматический пересчёт).

Чтобы отключить автоматический пересчёт (например, для больших файлов), перейдите в Формулы → Параметры вычислений → Вручную.

Как посчитать возраст в Excel Online или на Mac?

Формулы работают одинаково во всех версиях Excel, включая:

  • 🖥️ Excel для Windows.
  • 🍎 Excel для Mac.
  • ☁️ Excel Online.
  • 📱 Excel для Android/iOS.

Единственное отличие — в Excel для Mac функция РАЗНДАТ может не поддерживать кириллицу. В этом случае используйте английскую версию: =DATEDIF(A2; TODAY;"y").