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

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

Выбор подходящего способа зависит от ваших целей. Например, для быстрого одноразового расчёта подойдёт простая формула, а для динамических отчётов, где даты обновляются ежедневно, потребуется комбинация функций ДАТАРАЗН и СЕГОДНЯ. Мы также рассмотрим, как избежать типичных ошибок, например, когда Excel показывает возраст на год меньше из-за неверного формата ячеек.

Особое внимание уделим работе с массивами данных — когда нужно посчитать возраст для сотен строк одновременно. Здесь пригодятся функции ГОД, МЕСЯЦ и ДЕНЬ, а также условное форматирование для выделения несовершеннолетних или пенсионеров. В конце статьи вы найдёте уникальную таблицу с готовыми формулами для копирования, которая сэкономит время на ручных вычислениях.

1. Базовый метод: вычитание дат

Самый простой способ — вычесть дату рождения из текущей даты. Для этого введите в ячейку формулу:

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

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

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

Минус такого подхода — неучёт високосных лет. Например, человек, родившийся 29 февраля 2000 года, по этой формуле будет "моложе" на 1 день каждые 4 года. Для точности лучше использовать специализированные функции.

⚠️ Внимание: Если дата рождения введена как текст (например, "01.01.1990"), Excel воспримет её как строку, а не как дату. Перед расчётами проверьте формат ячейки: выделите её, нажмите Ctrl+1 и выберите категорию "Дата".

Для быстрой проверки формата используйте функцию ЕЧИСЛО:

=ЕЧИСЛО(A2)

Если результат ЛОЖЬ, значит, данные хранятся как текст, и их нужно преобразовать с помощью ДАТАЗНАЧ:

=ДАТАЗНАЧ(A2)
📊 Как часто вам нужно рассчитывать возраст в Excel?
Ежедневно
Несколько раз в месяц
Рядом
Никогда

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

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

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

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

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

Преимущества метода:

  • 🔹 Учитывает високосные годы автоматически.
  • 🔹 Работает даже если текущая дата раньше даты рождения (вернёт отрицательное значение).
  • 🔹 Позволяет вычислять возраст в месяцах ("m") или днях ("d").

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

=ДАТАРАЗН(A2;СЕГОДНЯ();"y") & " лет, " & ДАТАРАЗН(A2;СЕГОДНЯ();"ym") & " мес., " & ДАТАРАЗН(A2;СЕГОДНЯ();"md") & " дн."
⚠️ Внимание: Функция ДАТАРАЗН не документирована в официальной справке Excel, но работает во всех версиях программы. В Excel 365 и Excel 2019 её поддерживают, однако в некоторых локализациях может потребоваться ввод на английском: =DATEDIF(A2,TODAY(),"y").

3. Расчёт возраста с учётом месяца и дня рождения

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

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

Эта формула проверяет:

  1. Сравнивает месяцы: если текущий месяц позже месяца рождения, возраст увеличивается на 1 год.
  2. Если месяцы совпадают, сравниваются дни рождения.

Для наглядности создайте вспомогательные столбцы:

Дата рожденияТекущая датаГодыМесяцыДниВозраст
15.03.1990=СЕГОДНЯ()=ГОД(СЕГОДНЯ())-ГОД(A2)=ЕСЛИ(МЕСЯЦ(СЕГОДНЯ())>=МЕСЯЦ(A2); МЕСЯЦ(СЕГОДНЯ())-МЕСЯЦ(A2); 12+МЕСЯЦ(СЕГОДНЯ())-МЕСЯЦ(A2))=ЕСЛИ(ДЕНЬ(СЕГОДНЯ())>=ДЕНЬ(A2); ДЕНЬ(СЕГОДНЯ())-ДЕНЬ(A2); ДЕНЬ(EOMONTH(СЕГОДНЯ();-1))-ДЕНЬ(A2)+ДЕНЬ(СЕГОДНЯ())=ЦЕЛОЕ((СЕГОДНЯ()-A2)/365,25)

Введите текущую дату вручную для теста|Сравните результаты с калькулятором возраста онлайн|Проверьте формат ячеек с датами|Убедитесь, что нет отрицательных значений для будущих дат-->

4. Автоматизация с Power Query

Для обработки больших массивов данных (например, списков сотрудников) удобно использовать Power Query — инструмент для импорта и преобразования данных. Алгоритм действий:

  1. Выделите таблицу с датами рождения и перейдите на вкладку "Данные"Из таблицы/диапазона.
  2. В редакторе Power Query добавьте пользовательский столбец с формулой:
    =Date.From(DateTime.LocalNow()) - [Дата рождения]

    Затем преобразуйте результат в годы, разделив на 365.25 (с учётом високосных лет).

  3. Загрузите данные обратно в Excel.

Преимущества Power Query:

  • 🔹 Обработка тысяч строк за секунды.
  • 🔹 Автоматическое обновление при изменении исходных данных.
  • 🔹 Возможность интеграции с внешними источниками (базы данных, CSV).
⚠️ Внимание: При импорте дат из внешних файлов (например, CSV) Excel может неправильно распознать формат. Всегда проверяйте первые 5–10 строк на корректность отображения дат. При необходимости используйте параметр Локаль в настройках импорта.
Как исправить ошибку #ЗНАЧ! в Power Query?

Ошибка #ЗНАЧ! обычно возникает, если столбец с датой содержит пустые ячейки или текст. Решение:

1. В редакторе Power Query выделите столбец с датой.

2. На вкладке "Преобразование" выберите "Заменить значения" и удалите пустые ячейки или замените их на валидную дату (например, 01.01.1900).

3. Преобразуйте столбец в тип "Дата" через контекстное меню.

5. Условное форматирование для визуализации возрастных групп

Чтобы быстро выделять людей определённого возраста (например, несовершеннолетних или пенсионеров), используйте условное форматирование:

  1. Выделите столбец с возрастом.
  2. Перейдите на вкладку "Главная"Условное форматированиеСоздать правило.
  3. Выберите тип правила "Форматировать ячейки, которые содержат".
  4. Задайте условие, например: "меньше 18" для несовершеннолетних или "больше или равно 65" для пенсионеров.
  5. Выберите цвет заливки (например, красный для <18, зелёный для >65).

Для более сложных условий (например, выделение людей от 25 до 40 лет) используйте формулу в правиле условного форматирования:

=И(A2>=25; A2<=40)

Пример визуализации:

ФИОДата рожденияВозраст
Иванов П.С.15.05.201013
Петрова А.И.22.11.198538
Сидоров К.Л.03.07.195568

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

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

Ошибка 1: Отрицательный возраст

Причина: Текущая дата в формуле зафиксирована (например, =СЕГОДНЯ()-A2 была введена вчера, а сегодня дата обновилась). Решение — всегда используйте СЕГОДНЯ() без фиксации или обновляйте данные вручную (F9).

Ошибка 2: Неточный расчёт из-за времени

Если в ячейке с датой рождения хранится не только дата, но и время (например, 01.01.1990 12:00:00), Excel может округлять результат. Решение — используйте функцию ЦЕЛЧИСЛО для обрезки времени:

=ДАТАРАЗН(ЦЕЛЧИСЛО(A2); СЕГОДНЯ(); "y")

Ошибка 3: Неучёт региональных настроек

В разных странах форматы дат отличаются (например, ММ/ДД/ГГГГ в США vs ДД.ММ.ГГГГ в России). Если Excel неправильно интерпретирует дату, измените региональные настройки:

  1. Перейдите в Файл → Параметры → Дополнительно.
  2. В разделе "Параметры редактирования" снимите флажок "Автоматическое определение форматов дат".
  3. Введите даты вручную в формате ДД.ММ.ГГГГ.

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

Можно ли рассчитать возраст на конкретную дату, а не на сегодня?

Да, замените СЕГОДНЯ() на фиксированную дату в формате ДАТА(год;месяц;день). Например, для расчёта возраста на 31.12.2026:

=ДАТАРАЗН(A2; ДАТА(2026;12;31); "y")
Как посчитать возраст в Excel Online или Google Sheets?

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

=DATEDIF(A2, TODAY(), "y")

В Excel Online все формулы работают так же, как в десктопной версии.

Почему функция ДАТАРАЗН возвращает #ИМЯ?

Ошибка #ИМЯ! означает, что Excel не распознаёт имя функции. Возможные причины:

  • 🔹 Опечатка в названии (например, ДАТРАЗН вместо ДАТАРАЗН).
  • 🔹 Английская версия Excel требует ввода DATEDIF.
  • 🔹 В настройках региона отключена поддержка скрытых функций (редко).

Решение: проверьте синтаксис или используйте альтернативную формулу с ГОД/МЕСЯЦ/ДЕНЬ.

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

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

=ДАТАРАЗН(A2;СЕГОДНЯ();"y") & " лет и " & ДАТАРАЗН(A2;СЕГОДНЯ();"ym") & " мес."

Для точности до дней добавьте:

& " " & ДАТАРАЗН(A2;СЕГОДНЯ();"md") & " дн."
Можно ли автоматически обновлять возраст при открытии файла?

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

  1. Формулы → Вычислить → Вычислить лист.
  2. Или сочетание клавиш Shift+F9.