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

Расчёт возраста в Microsoft Excel — одна из самых востребованных задач при работе с датами.hether вы ведёте кадровый учёт, анализируете демографические данные или просто хотите узнать, сколько лет прошло с момента покупки оборудования, без корректного вычисления возраста не обойтись. Проблема в том, что Excel не имеет встроенной функции "ВОЗРАСТ", а стандартные операции с датами часто дают сбой из-за форматов ячеек или особенностей календаря (например, високосных лет).

Многие пользователи допускают критическую ошибку: вычитают год рождения из текущего года и получают неверный результат. Такой подход игнорирует месяцы и дни, из-за чего возраст может быть завышен на 1 год. Например, если сегодня 1 марта 2026, а дата рождения — 15 декабря 2000, простая формула `=2026-2000` даст 24 года, хотя на самом деле человеку ещё только 23. В этой статье разберём 5 надёжных способов посчитать возраст в Excel — от базовых формул до автоматизированных решений с учётом текущей даты.

1. Базовый расчёт возраста: функция DATEDIF

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

=DATEDIF(дата_начала; дата_конца; единица_измерения)

Где единица_измерения может принимать значения:

  • 📅 "Y" — полные годы (игнорирует месяцы и дни)
  • 📆 "M" — полные месяцы (игнорирует дни)
  • 🕒 "D" — полные дни
  • 📊 "YM" — месяцы без учёта годов
  • 📈 "MD" — дни без учёта месяцев и годов
  • 🔢 "YD" — дни без учёта годов (с учётом месяцев)

Для расчёта возраста в годах используйте:

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

Где B2 — ячейка с датой рождения, а TODAY() — текущая дата. Если нужно учесть месяцы и дни (например, "23 года, 5 месяцев, 10 дней"), комбинируйте функции:

=DATEDIF(B2; TODAY(); "Y") & " лет, " & DATEDIF(B2; TODAY(); "YM") & " мес., " & DATEDIF(B2; TODAY(); "MD") & " дн."

2. Альтернативные формулы: YEARFRAC и комбинации функций

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

=YEARFRAC(дата_начала; дата_конца; [базис])

Аргумент [базис] определяет метод расчёта (по умолчанию = 0):

  • 📏 0 или опущен — американский метод (NASD), 30/360
  • 📐 1 — фактический/фактический
  • 📌 2 — фактический/360
  • 📍 3 — фактический/365
  • 📎 4 — европейский метод, 30/360

Пример для возраста в годах с одной цифрой после запятой:

=ROUND(YEARFRAC(B2; TODAY(); 1); 1)

Для целых лет можно использовать комбинацию функций YEAR, MONTH и DAY:

=YEAR(TODAY())-YEAR(B2)-IF(OR(MONTH(TODAY())
📊 Какой способ расчёта возраста вы используете чаще?
Функция DATEDIF
Формула с YEAR/MONTH/DAY
YEARFRAC
Другой вариант

3. Автоматический расчёт с учётом текущей даты

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

ЗадачаФормулаПример результата
Возраст в полных годах=DATEDIF(B2; TODAY(); "Y")23
Возраст в годах и месяцах=DATEDIF(B2; TODAY(); "Y") & " г. " & DATEDIF(B2; TODAY(); "YM") & " мес."23 г. 5 мес.
Дни до следующего дня рождения=DATE(YEAR(TODAY()); MONTH(B2); DAY(B2))-TODAY()120
Возраст на конкретную дату=DATEDIF(B2; "31.12.2026"; "Y")24

Важно: TODAY() не обновляется в реальном времени — только при пересчёте листа (например, после ввода данных или нажатия F9). Чтобы принудительно обновить все даты, используйте комбинацию Ctrl + Alt + F9.

Как зафиксировать текущую дату, чтобы она не менялась?

Используйте сочетание клавиш Ctrl + ; (точка с запятой) — это вставит в ячейку статическую дату, которая не будет обновляться.

4. Расчёт стажа работы или возраста объектов

Алгоритм для вычисления стажа работы или возраста оборудования идентичен расчёту возраста человека, но есть нюансы:

  • 📅 Для стажа используйте дату приёма на работу (например, 01.07.2015).
  • 🏢 Для возраста здания/техники — дату ввода в эксплуатацию.
  • ⚙️ Если нужно учитывать только рабочие дни (например, для гарантийного срока), используйте NETWORKDAYS:
=NETWORKDAYS(B2; TODAY())

Пример для гарантийного срока: если гарантия действует 24 месяца с даты покупки (B2), формула проверки:

=IF(DATEDIF(B2; TODAY(); "M")<=24; "Гарантия действует"; "Гарантия истекла")

Ячейка с датой начала имеет формат "Дата"|Формула учитывает високосные годы|Для текущей даты используется TODAY()|Проверены граничные случаи (например, 29 февраля)

-->

5. Ошибки и их исправление

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

⚠️ Внимание: Если формула возвращает #ЧИСЛО!, проверьте, что обе даты в формате "Дата". Часто пользователи вводят дату как текст (например, 01.01.2000 без преобразования в дату).
ОшибкаПричинаРешение
#ИМЯ?Опечатка в названии функцииПроверьте регистр: DATEDIF, а не Datedif
#ЗНАЧ!Дата конца раньше даты началаПоменяйте местами аргументы или исправьте даты
Некорректный возрастФормат ячейки — "Общий" или "Текст"Выделите ячейку → Формат ячеек → Дата
Возраст на 1 год большеНе учтён месяц/день рожденияИспользуйте DATEDIF с параметром "Y"

Критическая ошибка: если дата рождения введена как текст (например, скопирована из внешнего источника), Excel не распознаёт её как дату. Чтобы исправить, выделите ячейку → Данные → Текст по столбцам → Готово.

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

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

  1. Выделите диапазон с возрастом.
  2. Перейдите в Главная → Условное форматирование → Правила выделения ячеек → Больше....
  3. Введите условие: =$C2>50 (где C2 — первая ячейка с возрастом).
  4. Выберите цвет заливки (например, красный).

Для динамических отчётов используйте сводные таблицы:

  • 📊 Создайте таблицу с данными (ФИО, дата рождения, возраст).
  • 🔍 Вставьте сводную таблицу (Вставка → Сводная таблица).
  • 📈 Перетащите поле "Возраст" в область Значения и настройте группировку (например, по диапазонам: 18-25, 26-35 и т.д.).

7. Расчёт возраста в Google Таблицах

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

  • 📱 Функция DATEDIF доступна, но может требовать ручного ввода (не подсказывается автозаполнением).
  • 🌐 Для текущей даты используйте =TODAY() или =NOW() (включает время).
  • 🔄 Формулы обновляются автоматически при каждом изменении листа.

Пример для Google Таблиц:

=ARRAYFORMULA(IF(B2:B=""; ""; DATEDIF(B2:B; TODAY(); "Y") & " лет, " & DATEDIF(B2:B; TODAY(); "YM") & " мес."))

Эта формула обработает весь столбец B и вернёт возраст в формате "X лет, Y мес." для каждой заполненной ячейки.

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

Как посчитать возраст, если дата рождения в формате "дд.мм.гггг" (текст)?

Используйте функцию ДАТАЗНАЧ (или DATEVALUE в английской версии), чтобы преобразовать текст в дату:

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

Если дата в формате "дд-мм-гггг", замените разделители на точки через ПОДСТАВИТЬ:

=DATEDIF(ДАТАЗНАЧ(ПОДСТАВИТЬ(B2; "-"; ".")); TODAY(); "Y")
Можно ли посчитать возраст в Excel Online?

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

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

Замените TODAY() на фиксированную дату в формате ДАТА(год; месяц; день):

=DATEDIF(B2; ДАТА(2020; 12; 31); "Y")

Это вернёт возраст на 31 декабря 2020 года.

Почему функция DATEDIF даёт неверный результат для 29 февраля?

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

=IF(DAY(B2)=29; IF(MONTH(B2)=2; IF(OR(YEAR(TODAY())=YEAR(B2); NOT(МОД(YEAR(TODAY()); 4)=0))); "Проверьте дату"; DATEDIF(B2; TODAY(); "Y")); DATEDIF(B2; TODAY(); "Y")))
Как посчитать средний возраст группы людей?

Сначала рассчитайте возраст каждого человека в отдельном столбце (например, C), затем используйте СРЗНАЧ:

=СРЗНАЧ(C2:C100)

Для медианного возраста используйте =МЕДИАНА(C2:C100).