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

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

В этой статье вы найдете 5 проверенных способов рассчитать возраст с учетом всех нюансов: от базовых формул до автоматизированных решений с функцией ДАТАРАЗН. Мы разберем типичные ошибки (например, когда Excel возвращает отрицательное число), покажем, как обновить возраст автоматически при открытии файла, и даже научимся выводить возраст в формате "23 года, 5 месяцев, 10 дней". Готовы? Тогда приступим!

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

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

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

где A2 — ячейка с датой рождения. Однако этот метод дает погрешность ±1 год, если день рождения еще не наступил в текущем году. Например, для человека, родившегося 15 июля 1990 года, формула вернет 34 года уже 1 января 2026 года, хотя фактически ему еще 33.

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

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

Эта формула сравнивает текущую дату с датой рождения в этом году. Если день рождения еще не наступил — отнимает 1 год.

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

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

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

где:

  • 📅 A2 — ячейка с датой рождения;
  • 📅 СЕГОДНЯ() — текущая дата;
  • 🔤 "Y" — код для вывода полных лет (другие варианты: "M" — месяцы, "D" — дни).

Преимущество этого метода — автоматическое обновление возраста при открытии файла. Однако у ДАТАРАЗН есть особенность: она не документирована в справке Excel, поэтому ее имя не подсказывается при вводе. Введите функцию вручную или скопируйте из этой статьи.

Почему ДАТАРАЗН не видна в списке функций?

Функция ДАТАРАЗН была добавлена для совместимости с Lotus 1-2-3 и не включена в официальную документацию. Она работает во всех версиях Excel, но не отображается в мастере функций.

3. Учет месяца и дня рождения: полный возраст

Чтобы вывести возраст в формате "X лет, Y месяцев, Z дней", комбинируйте несколько функций ДАТАРАЗН:

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

Здесь:

  • 🔢 "Y" — полные годы;
  • 📆 "YM" — месяцы с момента последнего дня рождения;
  • 📅 "MD" — дни с момента последнего месяца.

Обратите внимание: если дата рождения — 29 февраля, а текущий год не високосный, Excel автоматически сдвигает дату на 28 февраля или 1 марта. Это может исказить расчет дней. Чтобы избежать ошибки, используйте проверку:

=ЕСЛИ(ДЕНЬ(A2)=29; ЕСЛИ(МЕСЯЦ(A2)=2; "Уточните дату"; [формула выше]); [формула выше])
📊 Какой формат возраста вам нужнее?
Только годы
Годы и месяцы
Полный формат (года, месяцы, дни)
Зависит от задачи

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

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

  1. Перейдите в Файл → Параметры → Формулы.
  2. В разделе Параметры вычислений выберите Автоматически, кроме таблиц данных.
  3. Нажмите OK и сохраните файл.

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

Ячейка с датой рождения имеет формат Дата|Формула возвращает целое число (без дробной части)|При изменении текущей даты (вручную через СЕГОДНЯ()+365) возраст увеличивается на 1|Проверены крайние случаи: 29 февраля, 31 декабря-->

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

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

=ДАТАРАЗН(A2; ДАТА(2020;1;1); "Y")

Для динамического выбора даты:

  1. Создайте отдельную ячейку (например, B2) с нужной датой.
  2. Используйте формулу: =ДАТАРАЗН(A2; B2; "Y").

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

  • 📊 Аналитики возрастного состава сотрудников на отчетную дату;
  • 🎓 Расчета возраста учеников на 1 сентября;
  • 📅 Юридических документов, где важен возраст на момент события.

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

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

Ошибка Причина Решение
Возвращается #ИМЯ? Опечатка в названии функции (например, ДАТРАЗН вместо ДАТАРАЗН) Проверьте синтаксис. Функция чувствительна к регистру в английской версии (DATEDIF)
Отрицательный возраст Дата рождения позже текущей даты (например, 2050 год) Добавьте проверку: =ЕСЛИ(A2>СЕГОДНЯ(); "Ошибка даты"; ДАТАРАЗН(A2;СЕГОДНЯ();"Y"))
Возраст не обновляется Режим вычислений установлен в Вручную Переключите на Автоматически в Параметры → Формулы
Некорректный месяц для 29 февраля Excel сдвигает дату на 28 февраля в невисокосные годы Используйте условную проверку (см. раздел 3)
⚠️ Внимание: Если вы импортируете даты рождения из внешних источников (например, 1C или SQL), убедитесь, что они распознаются как даты, а не как текст. Для проверки выделите ячейку и посмотрите формат в строке состояния. Текстовые даты (например, "01.01.2000") не будут корректно обрабатываться функциями ДАТАРАЗН или ГОД.

7. Продвинутые приемы: возраст в годах с десятичной дробью

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

=ДАТАРАЗН(A2; СЕГОДНЯ(); "Y") + (СЕГОДНЯ() - ДАТА(ГОД(СЕГОДНЯ()); МЕСЯЦ(A2); ДЕНЬ(A2))) / 365

Эта формула:

  1. Считает полные годы (ДАТАРАЗН);
  2. Вычисляет разницу в днях между текущей датой и днем рождения в этом году;
  3. Делит дни на 365, чтобы получить дробную часть.

Для более точного расчета (с учетом високосных лет) замените 365 на:

=365 + (ГОД(СЕГОДНЯ()) = ГОД(ДАТА(ГОД(СЕГОДНЯ()); 2; 29)))

Эта конструкция добавляет 1 день, если текущий год високосный.

8. Альтернативные методы: Power Query и VBA

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

  • 🔄 Power Query: Импортируйте данные, добавьте столбец с формулой =Date.From(DateTime.LocalNow()) - [BirthDate], затем извлеките годы из результата.
  • 🤖 VBA: Создайте пользовательскую функцию:
    Function Age(birthDate As Date) As Integer
    

    Age = DateDiff("yyyy", birthDate, Date) - (DateSerial(Year(Date), Month(birthDate), Day(birthDate)) > Date)

    End Function

    Теперь в ячейке можно использовать =Age(A2).

Эти методы полезны для:

  • 📈 Обработки больших массивов данных (HR-отчеты, медицинские карты);
  • 🔄 Регулярного обновления возраста без ручного пересчета;
  • 📊 Интеграции с другими системами (например, 1C или SQL).
⚠️ Внимание: При использовании Power Query учитывайте, что даты в исходных данных должны быть в формате, распознаваемом Excel. Если даты импортируются как текст (например, "01-01-2000"), предварительно преобразуйте их с помощью Date.From или DateTime.From.

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

🔹 Почему формула возвращает #ЗНАЧ! вместо возраста?

Эта ошибка возникает, если ячейка с датой рождения:

  • Пустая;
  • Содержит текст вместо даты (например, "01.01.2000" без формата Дата);
  • Имеет некорректный формат (например, "2000/01/01" при региональных настройках, где разделитель — точка).

Решение: проверьте формат ячейки (Главная → Формат → Формат ячеек → Дата) и при необходимости преобразуйте текст в дату с помощью ДАТАЗНАЧ.

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

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

  • =DATEDIF(A2; TODAY(); "Y") — полные годы;
  • =YEAR(TODAY()) - YEAR(A2) — разница в годах (без учета месяца/дня).

Обратите внимание: в Google Таблицах функция TODAY() обновляется автоматически каждые 30 минут.

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

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

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

Однако этот метод дает погрешность в високосные годы. Для точности замените 365 на:

=365,25

или используйте проверку на високосный год (см. раздел 7).

🔹 Как вывести возраст в формате "23 года 5 месяцев"?

Комбинируйте ДАТАРАЗН с текстом:

=ДАТАРАЗН(A2;СЕГОДНЯ();"Y") & " года " & ДАТАРАЗН(A2;СЕГОДНЯ();"YM") & " мес."

Для корректного склонения ("год", "года", "лет") используйте функцию ВЫБОР:

=ДАТАРАЗН(A2;СЕГОДНЯ();"Y") & " " & ВЫБОР(МОД(ДАТАРАЗН(A2;СЕГОДНЯ();"Y");100); "год"; "года"; "года"; "года"; "лет"; "лет"; "лет"; "лет"; "лет")
🔹 Почему возраст не обновляется при изменении даты рождения?

Вероятные причины:

  • Режим вычислений установлен в Вручную (см. раздел 4);
  • Формула использует абсолютные ссылки (например, $A$2 вместо A2);
  • Дата рождения введена как текст, а не как дата.

Решение: проверьте настройки вычислений и формат ячеек.