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

Расчёт возраста по дате рождения — одна из самых востребованных задач в Microsoft Excel и Google Таблицах. Нужно ли определить возраст клиента для CRM-системы, рассчитать стаж сотрудника или просто узнать, сколько лет исполнилось родственнику — без точных формул не обойтись. Проблема в том, что стандартные функции вроде СЕГОДНЯ() или DATEDIF часто используют неправильно, из-за чего результат получается с ошибками (например, лишний год до дня рождения).

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

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

📊 Для чего вам нужно рассчитать возраст в Excel?
Для личных целей (семья, друзья)
Для работы (HR, кадровый учёт)
Для бизнеса (клиенты, аналитика)
Для учёбы (статистика, исследования)
Другое

1. Самый простой способ: формула для полных лет

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

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

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

где A2 — ячейка с датой рождения.

Пример: если сегодня 15 мая 2026 года, а дата рождения — 20 марта 1990 года, формула вернёт 34 (даже если день рождения ещё не наступил в этом году).

  • Плюсы: максимально просто, работает везде.
  • Минусы: не учитывает месяц и день рождения — может завышать возраст на 1 год.

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

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

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

2. Универсальная функция DATEDIF: годы, месяцы и дни

Функция DATEDIF (от англ. DATE DIFFerence) специально создана для расчёта разницы между датами. Она скрыта в списке функций Excel, но работает во всех версиях, включая Excel 365 и Google Таблицы.

Синтаксис:

=DATEDIF(дата_рождения; СЕГОДНЯ(); "Y")

где "Y" — код для вывода полных лет. Другие варианты:

- "M" — полные месяцы (без учёта лет),

- "D" — полные дни (без учёта месяцев и лет),

- "YM" — месяцы с учётом лет (например, 3 года и 5 месяцев вернёт 5),

- "MD" — дни с учётом месяцев (например, 2 месяца и 10 дней вернёт 10).

Пример для вывода возраста в формате "34 года, 2 месяца, 5 дней":

=DATEDIF(A2; СЕГОДНЯ(); "Y") & " года, " & DATEDIF(A2; СЕГОДНЯ(); "YM") & " месяцев, " & DATEDIF(A2; СЕГОДНЯ(); "MD") & " дней"
  • 📅 Для чего подходит: расчёт стажа, возраста с точным указанием месяцев/дней.
  • ⚠️ Ограничение: не работает с датами до 1900 года (Excel их не поддерживает).
Почему DATEDIF скрыта в Excel?

Функция DATEDIF была добавлена для совместимости с Lotus 1-2-3 — старым табличным редактором. Microsoft не рекомендует её использовать в новых проектах, но она остаётся самой точной для расчёта возраста.

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

Если вы хотите, чтобы возраст пересчитывался каждый раз при открытии книги, используйте комбинацию СЕГОДНЯ() с волатильными функциями. Волатильные функции (например, СЕГОДНЯ(), СЛУЧМЕЖДУ()) пересчитываются при любом изменении в книге или её открытии.

Инструкция:

  1. В ячейке B2 укажите дату рождения (например, 25.07.1985).
  2. В ячейке C2 введите формулу:
    =DATEDIF(B2; СЕГОДНЯ(); "Y")
  3. Сохраните файл в формате .xlsx или .xlsm (если используете макросы).

Теперь при каждом открытии файла возраст будет актуальным на текущую дату.

Ячейка с датой рождения в формате Дата (не текст)|Формула использует СЕГОДНЯ(), а не фиксированную дату|Файл сохранён в формате .xlsx (не .csv или .txt)|В настройках Excel включен автоматический пересчёт (Формулы → Параметры вычислений → Автоматически)

-->

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

4. Расчёт возраста с учётом високосных лет

Високосные годы (например, 2020, 2026) добавляют лишний день в феврале, что может искажать расчёты, если использовать простые формулы. Чтобы избежать ошибок, комбинируйте DATEDIF с проверкой на високосность.

Формула для точного расчёта дней с учётом високосных лет:

=DATEDIF(A2; СЕГОДНЯ(); "D")

Эта функция автоматически учитывает количество дней в каждом месяце, включая февраль.

Если нужно вывести возраст в формате "X лет, Y месяцев, Z дней" с учётом високосных лет, используйте:

=DATEDIF(A2; СЕГОДНЯ(); "Y") & " лет, " & DATEDIF(A2; СЕГОДНЯ(); "YM") & " мес., " & DATEDIF(A2; СЕГОДНЯ(); "MD") & " дн."
Дата рождения Текущая дата Формула DATEDIF(..;"D") Результат (дни)
29.02.2020 29.02.2026 =DATEDIF("29.02.2020"; "29.02.2026"; "D") 1461 (точный учёт високосного дня)
01.03.2020 01.03.2026 =DATEDIF("01.03.2020"; "01.03.2026"; "D") 1460 (2026 — високосный, но февраль уже прошёл)
15.05.1995 15.05.2026 =DATEDIF("15.05.1995"; "15.05.2026"; "D") 10585

Для проверки високосного года можно использовать отдельную формулу:

=ЕСЛИ(ИЛИ(ОСТАТ(ГОД(A2); 400)=0; И(ОСТАТ(ГОД(A2); 4)=0; ОСТАТ(ГОД(A2); 100)<>0)); "Високосный"; "Не високосный")

5. Расчёт возрастной группы (классификация по возрасту)

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

- 0–18 лет — дети/подростки,

- 19–35 лет — молодёжь,

- 36–55 лет — зрелый возраст,

- 56+ лет — старшее поколение.

Для этого используйте функцию ВПР (или XLOOKUP в новых версиях Excel).

Пример:

  1. Создайте таблицу с границами возрастных групп (см. ниже).
  2. В ячейке с классификацией введите:
    =ВПР(D2; $A$10:$B$13; 2; ИСТИНА)

    где D2 — ячейка с возрастом в годах, а $A$10:$B$13 — диапазон с границами и категориями.

Возраст (лет) Категория
0 Ребёнок
18 Молодёжь
35 Зрелый возраст
55 Старшее поколение

Альтернатива для Excel 365: функция XLOOKUP с поиском последнего подходящего значения:

=XLOOKUP(D2; $A$10:$A$13; $B$10:$B$13; "Ребёнок"; -1)
⚠️ Внимание: Если возраст равен верхней границе (например, ровно 18 лет), он попадёт в следующую категорию. Чтобы этого избежать, корректируйте границы (например, вместо 18 укажите 17.999).

6. Ошибки и их решения: почему формулы не работают

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

  • 🔴 #ИМЯ? — Excel не распознаёт название функции. Проверьте:
    • Правильность написания (например, DATEDIF, а не DATEIF).
    • Язык интерфейса Excel (в русской версии используйте ДАТАРАЗН вместо DATEDIF).
  • 🔴 #ЗНАЧ! — неверный формат данных. Убедитесь, что:
    • Дата рождения введена как дата, а не текст (проверьте выравнивание ячейки — даты выравниваются по правому краю).
    • Нет пробелов или скрытых символов (используйте =ЧИСТ() для очистки).
  • 🔴 Неправильный возраст — формула завышает или занижает результат. Причины:
    • Не учтён текущий месяц/день (используйте DATEDIF с параметром "YM" или "MD").
    • Дата рождения в будущем (добавьте проверку =ЕСЛИ(A2>СЕГОДНЯ(); "Ошибка"; формула)).

Как проверить формат ячейки:

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

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

Можно ли рассчитать возраст без функции DATEDIF?

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

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

Здесь 365,25 — среднее количество дней в году с учётом високосных лет. Точность ниже, чем у DATEDIF, но для большинства задач достаточно.

Как посчитать возраст на конкретную дату (не сегодня)?

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

=DATEDIF(A2; "31.12.2023"; "Y")

Дату можно ввести в отдельную ячейку и ссылаться на неё.

Почему Excel показывает возраст на 1 год меньше?

Скорее всего, день рождения ещё не наступил в этом году. Используйте формулу с проверкой:

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

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

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

  • Функция DATEDIF доступна, но её нужно вводить вручную (она не отображается в списке).
  • Для автоматического обновления используйте =TODAY() вместо СЕГОДНЯ().
  • Формат даты может отличаться (например, MM/DD/YYYY вместо DD.MM.YYYY).

Можно ли рассчитать возраст в Power Query?

Да, в Power Query (инструмент для обработки данных в Excel) возраст считается через создание пользовательского столбца. Пример кода на языке M:

= Date.From(DateTime.LocalNow()) - [Дата рождения]

Затем преобразуйте результат в годы с помощью Duration.Days и деления на 365.