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

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

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

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

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

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

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

Где:

  • 📅 дата_рождения — ячейка с датой рождения (например, A2).
  • 📅 текущая_дата — ячейка с датой, на которую нужно посчитать возраст (например, ТДАТА для сегодняшнего дня).
  • 🔢 "Y" — параметр, указывающий, что результат нужно вернуть в полных годах.

Пример: если в ячейке A2 указана дата 15.05.1990, а сегодня 20.07.2026, формула вернёт 34 — даже если до дня рождения ещё 9 месяцев. Это стандартный подход для большинства анкет и отчётов, где требуется целое число лет.

⚠️ Внимание: Функция РАЗНДАТ не документирована в официальной справке Excel, но работает во всех версиях программы. В Google Таблицах она доступна как DATEDIF.

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

=РАЗНДАТ(A2; ТДАТА;"Y")
📊 Как часто вам нужно считать возраст в Excel?
Ежедневно
Раз в неделю
Редко
Никогда

2. Точный возраст в годах, месяцах и днях

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

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

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

  • 🔢 "Y" — полные годы.
  • 🔢 "YM" — полные месяцы свыше полных лет (например, если прошло 1 год и 3 месяца, вернёт 3).
  • 🔢 "MD" — дни свыше полных месяцев (например, если прошло 1 месяц и 15 дней, вернёт 15).

Результат будет выглядеть как строка: "34 лет, 2 мес., 5 дн.". Для разделения частей можно использовать запятые, тире или перевод строки (с помощью функции СЦЕПИТЬ или ТЕКСТСЦЕП в новых версиях Excel).

⚠️ Внимание: Если дата рождения позже текущей даты (например, ошибка ввода), Excel вернёт ошибку #ЧИСЛО!. Чтобы избежать этого, добавьте проверку:
=ЕСЛИ(A2>ТДАТА;"Ошибка даты"; РАЗНДАТ(A2; ТДАТА;"Y") &" лет")

Убедитесь, что ячейки с датами имеют формат Дата (не Текст или Общий)

Используйте ТДАТА для автоматического обновления

Проверьте, что дата рождения не позже текущей даты

Для точности используйте комбинацию "Y", "YM", "MD"

-->

3. Альтернативный метод: деление разницы дней на 365

Если функция РАЗНДАТ по какой-то причине недоступна (например, в старых версиях Excel), можно воспользоваться арифметическим подходом. Логика простая:

  1. Вычислить разницу между датами в днях: =ТДАТА-A2.
  2. Разделить результат на 365 и округлить до целого числа: =ЦЕЛОЕ((ТДАТА-A2)/365).

Однако этот метод неточен из-за високосных годов (366 дней). Чтобы учесть их, используйте:

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

Здесь 365,2425 — среднее количество дней в году с учётом високосных лет (по григорианскому календарю).

Для Google Таблиц формула будет идентичной, но можно также использовать функцию ROUNDDOWN вместо ЦЕЛОЕ:

=ROUNDDOWN((TODAY-A2)/365.2425)
Почему 365.2425 дней в году?

Средняя продолжительность года по григорианскому календарю — 365,2425 суток. Это значение учитывает, что:

- Обычный год = 365 дней.

- Високосный год (каждые 4 года) = 366 дней.

- Исключения: годы, кратные 100, не являются високосными, кроме тех, что кратны 400 (например, 2000 год был високосным).

Таким образом, формула автоматически корректирует погрешность за счёт дробной части.

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

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

  • 🎓 Сколько лет было при поступлении в вуз (01.09.2010).
  • 🏆 Возраст спортсмена на день соревнований (15.08.2026).
  • 📜 Возраст на момент заключения договора.

Для этого замените ТДАТА на ячейку с нужной датой. Пример:

=РАЗНДАТ(A2; B2;"Y") &" лет на" & ТЕКСТ(B2;"DD.MM.YYYY")

Где B2 — ячейка с произвольной датой.

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

=РАЗНДАТ(A2; ДАТА(2030;1;1);"Y")
⚠️ Внимание: При работе с будущими датами убедитесь, что в настройках Excel включён формат даты с четырёхзначным годом (например, DD.MM.YYYY). Иначе программа может интерпретировать 30 как 1930 год.
Цель расчёта Формула Пример результата
Возраст на сегодня =РАЗНДАТ(A2; ТДАТА;"Y") 34
Возраст на 01.01.2026 =РАЗНДАТ(A2; ДАТА(2026;1;1);"Y") 35
Точный возраст (года, месяцы, дни) =РАЗНДАТ(A2; ТДАТА;"Y") &" л," & РАЗНДАТ(A2; ТДАТА;"YM") &" м" 34 л, 2 м
Дни до следующего дня рождения =ДАТА(ГОД(ТДАТА); МЕСЯЦ(A2); ДЕНЬ(A2))-ТДАТА 269 (дней)

5. Продвинутый метод: функция ДОЛЯГОДА для дробных лет

В некоторых случаях возраст нужно указать не в целых годах, а с дробной частью (например, 34,5 лет для страховых расчётов). Для этого подходит функция ДОЛЯГОДА (или YEARFRAC):

=ДОЛЯГОДА(A2; ТДАТА; 1)

Параметры функции:

  • 📅 A2 — дата рождения.
  • 📅 ТДАТА — текущая дата.
  • 🔢 1 — метод расчёта (по фактическому количеству дней в году).

Результат будет в формате десятичной дроби (например, 34,416 — 34 года и ~5 месяцев). Чтобы округлить до одного знака после запятой:

=ОКРУГЛ(ДОЛЯГОДА(A2; ТДАТА; 1); 1)

Функция ДОЛЯГОДА учитывает високосные годы точнее, чем деление на 365.2425, так как оперирует реальным количеством дней между датами.

- Месяцы: 0,416 * 12 ≈ 5 месяцев.

- Дни: 0,416 * 365 ≈ 152 дня.

-->

6. Автоматизация: динамический расчёт для списка дат

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

  1. Введите даты рождения в столбце A (начиная с A2).
  2. В ячейку B2 введите формулу:
    =РАЗНДАТ(A2; ТДАТА;"Y")
  3. Растяните формулу на весь столбец B (двойной клик по маркеру автозаполнения).

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

=ЕСЛИОШИБКА(ЕСЛИ(A2="";""; ЕСЛИ(A2>ТДАТА;"Дата в будущем"; РАЗНДАТ(A2; ТДАТА;"Y")));"Ошибка")

Для вывода возраста в формате "XX лет (на DD.MM.YYYY)" комбинируйте функции:

=РАЗНДАТ(A2; ТДАТА;"Y") &" лет (на" & ТЕКСТ(ТДАТА;"DD.MM.YYYY") &")"

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

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

  • Возраст на год меньше реального.
    Причина: Дата рождения введена как текст (например, "15.05.1990" в кавычках).
    Решение: Преобразуйте текст в дату с помощью ДАТАЗНАЧ(A2) или измените формат ячейки на Дата.
  • Ошибка #ИМЯ? при использовании РАЗНДАТ.
    Причина: В английской версии Excel функция называется DATEDIF.
    Решение: Замените РАЗНДАТ на DATEDIF или используйте локализованную версию.
  • Некорректный результат для февраля в високосный год.
    Причина: Формула не учитывает, что в високосном году 29 дней в феврале.
    Решение: Используйте РАЗНДАТ с параметром "MD" или ДОЛЯГОДА.

Ещё одна распространённая ошибка — неверный регион даты. Например, в американском формате MM/DD/YYYY дата 05.06.1990 будет интерпретирована как 5 июня, а в европейском — как 6 мая. Чтобы избежать путаницы:

  1. Выделите столбец с датами.
  2. Нажмите Ctrl+1 (или правая кнопка → Формат ячеек).
  3. Выберите формат Дата и укажите локаль (например, 14.03.2001 для России).

FAQ: Ответы на частые вопросы

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

Да, используйте комбинацию функций ГОД, МЕСЯЦ и ДЕНЬ:

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

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

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

Все формулы из статьи работают и в Google Таблицах, но:

  • Функция ТДАТА заменяется на TODAY.
  • Функция РАЗНДАТ называется DATEDIF.
  • Для разделения текста используйте & или CONCATENATE.

Пример:

=DATEDIF(A2; TODAY;"Y")
Почему Excel показывает возраст на год больше?

Это происходит, если дата рождения введена как 31 декабря, а текущая дата — 1 января следующего года. Excel воспринимает это как полный год, хотя фактически прошёл всего 1 день. Чтобы исправить, используйте точный расчёт с РАЗНДАТ и параметром "Y".

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

Комбинируйте параметры "Y" и "YM":

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

Если месяцев 0, можно добавить условие:

=РАЗНДАТ(A2; ТДАТА;"Y") &" лет" & ЕСЛИ(РАЗНДАТ(A2; ТДАТА;"YM")>0;"" & РАЗНДАТ(A2; ТДАТА;"YM") &" мес.";"")
Можно ли посчитать возраст в Excel Online?

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