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

Формула =РАЗНДАТ(сегодня();ДатаРождения;Y) не работает в Excel — потому что функции РАЗНДАТ не существует в таком виде. Правильный синтаксис: =DATEDIF(ДатаРождения;TODAY();"Y"), но даже он не учитывает, прошел ли день рождения в текущем году. Если вы ввели формулу и получили неверный возраст (например, на 1 год больше или меньше), проблема в игнорировании текущей даты или формате ячейки.

В 90% случаев ошибка возникает из-за двух причин: ячейка с датой рождения отформатирована как текст (Excel воспринимает 15.05.1990 как строку, а не дату), либо используется устаревшая версия Excel с ограничениями на DATEDIF. Ниже — 5 рабочих формул для точного расчета возраста, включая учет дня рождения, а также инструкции по исправлению типичных ошибок.

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

Функция DATEDIF в Excel скрыта в списке мастер-функций, но работает во всех версиях программы. Однако она не учитывает, наступил ли день рождения в текущем году. Например, если сегодня 10 марта 2026 года, а дата рождения — 15 марта 1990, формула =DATEDIF(B2;TODAY();"Y") вернет 34, хотя человеку еще только 33.

Вторая распространенная проблема — формат ячейки. Если дата рождения введена как текст (например, скопирована из внешнего источника), Excel не распознает ее как дату. Проверить это можно по выравниванию: текстовые данные по умолчанию выравниваются по левому краю, а даты — по правому. Чтобы исправить:

  • 📅 Выделите ячейку с датой рождения → перейдите на вкладку Главная → в выпадающем списке Формат ячеек выберите Дата.
  • 🔄 Если дата отображается как число (например, 44197), это внутренний формат Excel. Используйте =ДАТАЗНАЧ(B2), чтобы преобразовать текст в дату.
  • ⚠️ Если после преобразования формула все равно выдает ошибку, проверьте региональные настройки: в некоторых локалях Excel ожидает формат ММ/ДД/ГГГГ вместо ДД.ММ.ГГГГ.
📊 Какой формат даты вы чаще используете в Excel?
ДД.ММ.ГГГГ
ММ/ДД/ГГГГ
ГГГГ-ММ-ДД
Другой

Третья ловушка — использование функции TODAY() без учета времени. Если файл открыт в полночь до дня рождения, формула может показать возраст на 1 год меньше. Решение: оберните TODAY() в =ЦЕЛОЕ(TODAY()), чтобы отсечь время.

5 формул для расчета возраста в Excel

Формула Описание Пример результата
(дата рождения: 15.05.1990, сегодня: 10.03.2026)
=DATEDIF(B2;TODAY();"Y") Базовая формула (не учитывает день рождения в текущем году) 34 (неверно, т.к. день рождения не наступил)
=DATEDIF(B2;TODAY();"Y") - (TODAY() < ДАТА(ГОД(TODAY());МЕСЯЦ(B2);ДЕНЬ(B2))) Корректировка с учетом дня рождения 33 (верно)
=ЦЕЛОЕ((TODAY()-B2)/365,25) Универсальная формула (учитывает високосные годы) 33
=ГОД(TODAY())-ГОД(B2)-(ДАТА(ГОД(TODAY());МЕСЯЦ(B2);ДЕНЬ(B2))>TODAY()) Альтернатива DATEDIF (работает во всех версиях Excel) 33
=РАЗНДАТ(B2;TODAY();"Y") (для русскоязычной версии Excel) Локализованный аналог DATEDIF 33 (если день рождения не наступил)

Для точного расчета с учетом дня рождения рекомендуется использовать вторую или четвертую формулу из таблицы. Они автоматически вычитают 1 год, если текущая дата меньше даты рождения в этом году. Например, для человека, родившегося 29 февраля, формулы корректно обработают високосный год.

Выделите ячейку с датой рождения и убедитесь, что она отформатирована как Дата|Проверьте, что в ячейке нет лишних пробелов или символов (например, "15.05.1990 ")|Используйте =ЕЧИСЛО(B2), чтобы подтвердить, что Excel распознает дату как число|Если работаете с русскоязычной версией Excel, замените DATEDIF на РАЗНДАТ

-->

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

Если требуется вывести возраст в формате "33 года, 9 месяцев, 25 дней", используйте комбинацию функций DATEDIF с разными аргументами:

=DATEDIF(B2;TODAY();"Y") & " года, " & DATEDIF(B2;TODAY();"YM") & " месяцев, " & DATEDIF(B2;TODAY();"MD") & " дней"

Эта формула:

  • 📌 "Y" — возвращает полные годы.
  • 📌 "YM" — возвращает полные месяцы без учета лет.
  • 📌 "MD" — возвращает дни без учета месяцев и лет.

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

=DATEDIF(B2;TODAY();"Y") & " г. " & ТЕКСТ(DATEDIF(B2;TODAY();"YM");"0 месяцев " & DATEDIF(B2;TODAY();"MD") & " дн.")

Она корректно обработает переходы между месяцами с разным количеством дней.-->

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

Если нужно узнать, сколько лет было человеку на конкретную дату (например, на 01.01.2020), замените TODAY() на фиксированную дату:

=DATEDIF(B2;ДАТА(2020;1;1);"Y") - (ДАТА(2020;1;1) < ДАТА(2020;МЕСЯЦ(B2);ДЕНЬ(B2)))

Примеры применения:

  • 🎓 Расчет возраста студента на дату поступления.
  • 📊 Анализ возрастной структуры сотрудников на отчетную дату.
  • 🏆 Определение возраста спортсмена на день соревнований.

Для динамического расчета (например, возраст на конец каждого месяца) создайте столбец с датами и протяните формулу вниз. Чтобы автоматизировать процесс, используйте ЕСЛИОШИБКА для обработки будущих дат:

=ЕСЛИОШИБКА(DATEDIF($B2;C2;"Y") - (C2 < ДАТА(ГОД(C2);МЕСЯЦ($B2);ДЕНЬ($B2)));"Дата в будущем")

Типичные ошибки и как их исправить

Ошибки при расчете возраста в Excel делятся на 3 категории: формат данных, синтаксис формул и логические ошибки. Рассмотрим каждую с решениями.

⚠️ Внимание: Если формула возвращает #ИМЯ?, проверьте регистр функций. В русскоязычной версии Excel DATEDIF не работает — используйте РАЗНДАТ.
Ошибка Причина Решение
#ЗНАЧ! Ячейка с датой рождения содержит текст или пуста Используйте =ДАТАЗНАЧ(B2) или отформатируйте ячейку как дату
#ЧИСЛО! Дата рождения позже текущей даты Проверьте корректность даты или используйте =ЕСЛИ(B2>TODAY();"Ошибка";формула)
Неверный возраст (на 1 год больше/меньше) Не учтен день рождения в текущем году Добавьте корректировку: - (TODAY() < ДАТА(ГОД(TODAY());МЕСЯЦ(B2);ДЕНЬ(B2)))
#ИМЯ? Опечатка в названии функции или неверный разделитель Для русскоязычного Excel замените ; на , и DATEDIF на РАЗНДАТ

Если возраст рассчитывается для большого массива данных (например, 1000 строк), используйте условное форматирование, чтобы выделить ошибки. Выделите столбец с формулами → ГлавнаяУсловное форматированиеПравила выделения ячеекТекст содержит → введите #. Это выделит все ячейки с ошибками.

Альтернативы для Google Таблиц и других программ

В Google Таблицах функция DATEDIF работает аналогично Excel, но есть нюансы:

  • 🔹 Формула =DATEDIF(B2;TODAY();"Y") вернет возраст без учета дня рождения (как в Excel).
  • 🔹 Для корректного расчета используйте:
    =DATEDIF(B2;TODAY();"Y") - (TODAY() < DATE(YEAR(TODAY());MONTH(B2);DAY(B2)))
  • 🔹 В Google Таблицах разделитель аргументов — запятая (,), даже в русскоязычной версии.

В LibreOffice Calc и Apache OpenOffice используйте:

=DATEDIF(B2;TODAY();"Y")

Но учтите, что в этих программах DATEDIF может не поддерживать аргумент "YM" для месяцев. Альтернатива:

=FLOOR((TODAY()-B2)/365;1)
Расчет возраста в Python (для автоматизации)

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

```python

from datetime import datetime

birth_date = datetime.strptime("15.05.1990", "%d.%m.%Y")

today = datetime.today()

age = today.year - birth_date.year - ((today.month, today.day) < (birth_date.month, birth_date.day))

print(age) # Выведет: 33 (если сегодня 10.03.2026)

```

Автоматизация: расчет возраста для списка дат

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

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

    Если даты импортированы как текст (например, из CSV), используйте:

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

    Затем скопируйте результат и вставьте как Значения (правый клик → Специальная вставка).

  3. Динамический возраст:

    Чтобы возраст обновлялся автоматически при открытии файла, используйте TODAY() без фиксированных дат.

Для визуализации возрастной структуры создайте гистограмму:

  1. Выделите столбец с возрастом.
  2. Перейдите на вкладку ВставкаГистограмма.
  3. Настройте группы возрастов (например, 18-25, 26-35 и т.д.) через Анализ данныхГистограмма.

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

❓ Почему формула возвращает отрицательный возраст?

Это происходит, если дата рождения указана позже текущей даты (например, опечатка в годе: 1990 вместо 1980). Проверьте данные или добавьте проверку:

=ЕСЛИ(B2>TODAY();"Ошибка даты";DATEDIF(B2;TODAY();"Y"))
❓ Как рассчитать возраст в месяцах для ребенка до года?

Используйте аргумент "M":

=DATEDIF(B2;TODAY();"M")

Для вывода в формате "5 месяцев и 10 дней":

=DATEDIF(B2;TODAY();"M") & " мес. " & DATEDIF(B2;TODAY();"MD") & " дн."
❓ Можно ли рассчитать возраст с точностью до часов?

Да, но для этого нужно учитывать время рождения. Если в ячейке B2 указана дата и время (например, 15.05.1990 14:30), используйте:

=ТЕКСТ(TODAY()-B2;"г ммм д ч:мм")

Формат выведет возраст в виде "33 г 9 м 25 д 12:45".

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

В веб-версии Excel формулы работают так же, как в десктопной. Единственное отличие — TODAY() обновляется только при открытии файла или принудительном пересчете (ФормулыПересчитать лист).

❓ Почему в русском Excel не работает DATEDIF?

В русскоязычной версии функция называется РАЗНДАТ. Замените название, но сохраните английские аргументы ("Y", "M" и т.д.). Пример:

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

Обратите внимание: TODAY() в русском Excel — это СЕГОДНЯ().