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

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

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

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

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

Самый очевидный метод — вычесть дату рождения из сегодняшней даты. В Excel это делается с помощью функции СЕГОДНЯ() (или TODAY() в английской версии). Формула выглядит так:

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

где B2 — ячейка с датой рождения. Однако результат будет в днях, а не в годах. Чтобы преобразовать дни в полные годы, разделите результат на 365:

=ЦЕЛОЕ((СЕГОДНЯ()-B2)/365)

Этот способ работает, но имеет критическую ошибку: он не учитывает високосные годы (где 366 дней). Например, если человек родился 29 февраля, формула даст неверный результат в невисокосный год.

⚠️ Внимание: Деление на 365 без учёта високосных лет даёт погрешность до 1 дня на каждые 4 года. Для точных расчётов (например, в медицине или юриспруденции) этот метод не подходит.
  • Плюсы: Простота, работает во всех версиях Excel.
  • Минусы: Погрешность из-за високосных годов, не учитывает месяцы и дни.
  • 📌 Когда использовать: Для приблизительных расчётов (например, сегментация клиентов по возрастным группам).

2. Точный расчёт с функцией ДАТАРАЗН() (DATEDIF)

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

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

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

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

Где "Y" — это код для лет ("M" — месяцы, "D" — дни). Преимущество метода в том, что он автоматически учитывает високосные годы и корректно обрабатывает даты вроде 29 февраля.

Единица измерения Код Пример результата
Полные годы "Y" Для даты рождения 15.03.1990 и сегодня 10.03.2026 вернёт 34 (не 35, т.к. день рождения ещё не наступил).
Полные месяцы "M" Для даты 15.03.1990 и сегодня 10.03.2026 вернёт 419 месяцев.
Дни "D" Для даты 15.03.1990 и сегодня 10.03.2026 вернёт 12 784 дня.
Годы и месяцы "YM" Для даты 15.03.1990 и сегодня 10.03.2026 вернёт 11 месяцев (разница между полными годами).

Функция ДАТАРАЗН() не документирована в официальной справке Microsoft, но работает во всех версиях Excel с 2000 года. Её главный недостаток — не поддерживает отрицательные даты (если дата конца раньше даты начала, вернёт ошибку #ЧИСЛО!).

Убедитесь, что дата рождения в формате даты (не текст)|Проверьте, что сегодняшняя дата не раньше даты рождения|Используйте английскую версию функции (DATEDIF), если русская не работает|Для точности комбинируйте с функцией СЕГОДНЯ()-->

3. Расчёт возраста с учётом дней до следующего дня рождения

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

=ДАТАРАЗН(B2; СЕГОДНЯ(); "Y") & " лет, " & ДАТАРАЗН(B2; СЕГОДНЯ(); "YM") & " мес., " & ДАТАРАЗН(B2; СЕГОДНЯ(); "MD") & " дн."

Где:

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

Пример результата для даты рождения 15.05.1990 и сегодняшней даты 10.03.2026:

34 лет, 9 мес., 23 дн.

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

Почему ДАТАРАЗН с "MD" иногда возвращает неверные дни?

Функция ДАТАРАЗН() с параметром "MD" считает разницу в днях между текущей датой и датой рождения в этом году. Например, если сегодня 10 марта, а день рождения 15 мая, результат будет отрицательным (покажет дни до дня рождения). Чтобы исправить это, используйте формулу:

=ЕСЛИ(ДАТАРАЗН(B2;СЕГОДНЯ();"MD")<0; ДАТАРАЗН(B2;СЕГОДНЯ();"MD")+30; ДАТАРАЗН(B2;СЕГОДНЯ();"MD"))

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

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

  1. Перейдите в Файл → Параметры → Формулы.
  2. В разделе "Параметры вычислений" выберите Автоматически.
  3. Убедитесь, что флажок Пересчитывать книгу при сохранении снят (иначе возраст будет фиксироваться при сохранении).

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

="Внимание! Для корректного отображения возраста включите автоматический пересчёт формул (Файл → Параметры → Формулы → Автоматически)."

Раз в день|Раз в неделю|Раз в месяц|Только при ручном открытии файла|Другой вариант-->

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

Иногда требуется узнать, сколько человеку было лет на конкретную дату в прошлом или будущем. Например, для исторических исследований или планирования событий. Замените СЕГОДНЯ() на фиксированную дату:

=ДАТАРАЗН(B2; ДАТА(2020;12;31); "Y")

Эта формула вернёт возраст на 31 декабря 2020 года. Чтобы сделать расчёт динамичным, поместите целевую дату в отдельную ячейку (например, C2) и ссылайтесь на неё:

=ДАТАРАЗН(B2; C2; "Y")

Такой подход полезен для:

  • 📅 Исторических данных: расчёт возраста персонажей на момент событий.
  • 🎓 Образовательных целей: определение возраста студентов на момент поступления.
  • 📊 Аналитики: сегментация клиентов по возрасту на дату покупки.
⚠️ Внимание: Если целевая дата раньше даты рождения, ДАТАРАЗН() вернёт ошибку #ЧИСЛО!. Чтобы избежать этого, добавьте проверку:
=ЕСЛИ(C2

6. Продвинутые методы: учёт временных зон и локальных форматов дат

При работе с международными данными могут возникнуть проблемы из-за разных форматов дат. Например, в США дата записывается как MM/DD/YYYY, а в Европе — DD/MM/YYYY. Если Excel неправильно интерпретирует дату рождения, используйте функцию ДАТАЗНАЧ() (или DATEVALUE()), чтобы привести текст к формату даты:

=ДАТАЗНАЧ(ПОДСТАВИТЬ(B2; "."; "/"))

Эта формула заменяет точки на слэши и преобразует текст в дату. Для учёта временных зон (если даты рождения приходят из разных стран) используйте комбинацию функций ДАТА() и ВРЕМЯ() с корректировкой на разницу в часах.

Пример: если дата рождения в ячейке B2 указана по UTC, а вам нужно привести её к московскому времени (+3 часа):

=ДАТАЗНАЧ(B2) + ВРЕМЯ(3;0;0)

Это актуально для:

  • 🌍 Мультинациональных компаний: унификация дат рождения сотрудников из разных стран.
  • ✈️ Авиаперевозок: расчёт возраста пассажиров по данным паспортов с разными временными зонами.
  • 📱 Мобильных приложений: импорт данных из внешних источников с нестандартными форматами.

Частые ошибки и как их исправить

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

Ошибка Причина Решение
#ЧИСЛО! в ДАТАРАЗН() Дата конца раньше даты начала. Добавьте проверку: =ЕСЛИ(СЕГОДНЯ()
Неверный возраст для 29 февраля Формула не учитывает високосный год. Используйте ДАТАРАЗН() вместо деления на 365.
Возраст не обновляется Отключён автоматический пересчёт. Включите в Параметры → Формулы → Автоматически.
Дата воспринимается как текст Неверный формат ячейки. Примените функцию ДАТАЗНАЧ() или измените формат на "Дата".

Ещё одна типичная ошибка — использование функции РАЗНДАТ(). Такой функции в Excel не существует (её часто путают с ДАТАРАЗН()). Если вы видите #ИМЯ?, проверьте правильность названия функции.

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

  1. Выделите ячейку с ошибкой.
  2. Перейдите в Формулы → Зависимости формул → Вычислить формулу.
  3. Проверьте, на каком этапе возникает сбой.

FAQ: Ответы на популярные вопросы

Можно ли рассчитать возраст в Google Таблицах?

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

Как посчитать возраст в годах с десятичными (например, 25.5 лет)?

Используйте формулу:

=ДАТАРАЗН(B2; СЕГОДНЯ(); "Y") + (ДАТАРАЗН(B2; СЕГОДНЯ(); "YM") + ДАТАРАЗН(B2; СЕГОДНЯ(); "MD")/30)/12

Она преобразует месяцы и дни в доли года.

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

Это внутренний формат хранения дат в Excel (количество дней с 1 января 1900 года). Чтобы исправить, выделите ячейку → Главная → Формат → Формат ячеек → Дата.

Как посчитать возраст для большого списка дат рождения?

Примените формулу ко всему столбцу:

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

Для ускорения используйте таблицы Excel (Вставка → Таблица), которые автоматически протягивают формулы.

Можно ли рассчитать возраст с учётом только рабочих дней?

Да, но для этого потребуется комбинация функций ДАТАРАЗН() и ЧИСТРАБДНИ() (NETWORKDAYS). Пример:

=ЧИСТРАБДНИ(B2; СЕГОДНЯ())/260

где 260 — среднее количество рабочих дней в году (5 дней × 52 недели).