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

Введение: почему расчёт возраста в Excel — не тривиальная задача

На первый взгляд, показать возраст в Microsoft Excel кажется простой операцией: вычесть дату рождения из текущей даты. Но на практике пользователи сталкиваются с массой нюансов: от некорректного отображения месяцев до ошибок при переходе через границу года. Например, если сегодня 15 марта 2026, а дата рождения — 20 марта 2000, то простая формула =ГОД(СЕГОДНЯ())-ГОД(A1) выдаст 24 года, хотя на самом деле человеку ещё только 23.

Проблема усложняется, когда нужно учитывать точные дни (например, для медицинских карт или страховых полисов), или когда даты хранятся в нестандартном формате (например, 20.05.1995 вместо 20-мая-1995). В этой статье мы разберём 7 рабочих методов — от элементарных до профессиональных, — а также типичные ошибки, которые портят результаты даже опытным пользователям.

1. Базовый метод: вычитание дат и функция DATEDIF

Самый надёжный способ посчитать возраст — использовать скрытую функцию DATEDIF (от англ. Date Difference). Она не отображается в списке функций Excel, но работает во всех версиях, начиная с Excel 2000. Синтаксис:

=DATEDIF(дата_рождения; сегодня; "Y")

Где "Y" — это код для вычисления полных лет. Например, для даты рождения в ячейке A2 формула будет:

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

Чтобы получить возраст в месяцах или днях, замените "Y" на:

  • 📅 "M" — полные месяцы (без учёта лет)
  • 📆 "D" — полные дни (без учёта месяцев и лет)
  • 📊 "YM" — месяцы с учётом лет (например, 2 года и 3 месяца → вернёт 3)
  • 📈 "MD" — дни с учётом месяцев (например, 1 месяц и 15 дней → вернёт 15)

Пример комбинированной формулы для вывода возраста в формате "X лет, Y месяцев, Z дней":

=DATEDIF(A2;СЕГОДНЯ();"Y") & " лет, " & DATEDIF(A2;СЕГОДНЯ();"YM") & " мес., " & DATEDIF(A2;СЕГОДНЯ();"MD") & " дн."
📊 Какой формат возраста вам нужнее?
Только годы (25 лет)
Годы и месяцы (25 лет 3 мес)
Полные дни (9125 дней)
Другой вариант

2. Функция YEARFRAC: точный расчёт с дробными годами

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

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

Третий аргумент (1) определяет метод расчёта:

  • 🔢 0 или опущен — американский метод (30/360)
  • 🔢 1 — фактическое количество дней в месяце / фактическое количество дней в году
  • 🔢 3 — европейский метод (30/360, но с поправками)

Пример: если дата рождения 15.06.1990, то формула вернёт примерно 33.75 (то есть 33 года и 9 месяцев). Чтобы преобразовать дробь в годы и месяцы, умножьте дробную часть на 12:

=ЦЕЛОЕ(YEARFRAC(A2;СЕГОДНЯ();1)) & " лет и " & ОКРУГЛ((YEARFRAC(A2;СЕГОДНЯ();1)-ЦЕЛОЕ(YEARFRAC(A2;СЕГОДНЯ();1)))*12;0) & " мес."
Почему YEARFRAC может давать неточности?

Функция учитывает високосные годы, но в некоторых методах (например, 0) округляет месяцы до 30 дней. Для медицинских или юридических документов лучше использовать DATEDIF или комбинацию функций.

3. Автоматическое обновление возраста с функцией ТЕКДАТА (SEGODNYA)

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

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

Важно: если вы отправляете файл кому-то другому, убедитесь, что у получателя правильные настройки даты в системе. Например, если ваш файл создан в формате ДД.ММ.ГГГГ, а у получателя стоит ММ/ДД/ГГГГ, Excel может неправильно интерпретировать даты (например, 05.06.1990 станет 6 мая вместо 5 июня).

Убедиться, что даты в ячейках отформатированы как Дата (а не текст)|

Проверить региональные настройки (Файл → Параметры → Язык → Региональные параметры)|

Использовать функцию ДАТАЗНАЧ для преобразования текста в дату (если нужно)|

Сохранить файл в формате .xlsx (а не .csv, где форматирование теряется)

-->

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

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

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

Или ссылайтесь на ячейку с датой:

=DATEDIF(A2; B2; "Y")

Если дата указана в текстовом формате (например, "15 июля 2020"), сначала преобразуйте её в дату с помощью ДАТАЗНАЧ:

=DATEDIF(A2; ДАТАЗНАЧ(B2); "Y")

5. Ошибки и как их избежать

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

Ошибка Причина Решение
#ИМЯ? Опечатка в названии функции (например, DATADIF вместо DATEDIF) Проверьте синтаксис. Функция DATEDIF пишется без пробелов.
#ЗНАЧ! Ячейка содержит текст вместо даты (например, "1990" вместо 15.05.1990) Используйте ДАТАЗНАЧ или отформатируйте ячейку как Дата.
Неверный возраст (на 1 год больше) Формула не учитывает, что день рождения ещё не наступил Используйте DATEDIF с кодом "Y", а не простое вычитание лет.
Даты отображаются как числа (например, 44197) Excel хранит даты как количество дней с 1900 года Выделите ячейку → Формат ячеек → Дата.
⚠️ Внимание: Если вы копируете даты из внешних источников (например, с сайтов или PDF), Excel может воспринимать их как текст. Чтобы исправить это, выделите ячейки и выберите Данные → Текст по столбцам → Готово (даже если разделителей нет).

6. Продвинутые приёмы: условное форматирование и динамические диаграммы

Excel позволяет визуализировать возраст с помощью условного форматирования или диаграмм. Например, можно выделить цветом ячейки с возрастом старше 18 лет:

  1. Выделите диапазон с возрастом.
  2. Перейдите в Главная → Условное форматирование → Создать правило.
  3. Выберите Использовать формулу... и введите:
=DATEDIF(A2;СЕГОДНЯ();"Y")>=18
  1. Задайте формат (например, зелёный фон).

Для создания гистограммы распределения возрастов:

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

7. Альтернативы Excel: Google Sheets и Power Query

Если вы работаете в Google Таблицах, все описанные функции работают аналогично, за исключением:

  • 📑 Функция TODAY() пишется без скобок в некоторых локализациях.
  • 📑 Для преобразования текста в дату используйте =DATEVALUE() (аналог ДАТАЗНАЧ).

Для обработки больших массивов дат (например, в HR-отчётах) удобно использовать Power Query:

  1. Перейдите в Данные → Получить данные → Из таблицы/диапазона.
  2. В редакторе Power Query добавьте столбец с формулой:
=DateTime.LocalNow() - [Дата_рождения]
  1. Преобразуйте результат в годы с помощью Duration.Days и деления на 365.
⚠️ Внимание: В Power Query даты обрабатываются как временные метки, поэтому для точного расчёта возраста в годах используйте функцию DateTime.Date, чтобы игнорировать время.

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

Можно ли посчитать возраст в Excel Online?

Да, все функции (DATEDIF, YEARFRAC, TODAY) работают в Excel Online так же, как и в десктопной версии. Однако некоторые продвинутые инструменты (например, Power Query) могут быть ограничены.

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

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

=ЦЕЛОЕ((СЕГОДНЯ()-A2)/365) & " лет и " & ЦЕЛОЕ(MOD(СЕГОДНЯ()-A2;365)/30) & " мес."

Обратите внимание: этот метод приблизительный (месяцы округляются до 30 дней).

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

Скорее всего, ваша дата рождения сохранена в формате XX век (например, 1990 вместо 2090). Проверьте формат ячейки: выделите её → Формат ячеек → Дата и выберите правильный тип (например, 14.03.1990).

Как посчитать возраст в днях с учётом високосных лет?

Просто вычтите дату рождения из текущей даты:

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

Excel автоматически учитывает високосные годы. Чтобы отформатировать результат как дни, выберите формат Общий или Числовой.

Можно ли автоматически обновлять возраст в закрытом файле?

Нет. Функция СЕГОДНЯ() пересчитывается только при открытии файла или принудительном обновлении (F9). Если вам нужно фиксировать возраст на определённую дату, используйте CTRL+C → Специальная вставка → Значения.