Расчет возраста в Microsoft Excel или Google Таблицах — одна из самых востребованных задач при работе с персональными данными, кадровым учетом или аналитикой. Казалось бы, что может быть проще: вычесть дату рождения из текущей даты? Но на практике пользователи сталкиваются с ошибками вроде некорректного отображения месяцев, игнорирования високосных лет или проблем с отрицательными значениями. Эта статья поможет разобраться, какую формулу поставить в Excel, чтобы вычислить возраст точно — с учетом всех нюансов календаря.
Мы рассмотрим не только базовые методы (вроде простого вычитания дат), но и продвинутые функции: ДАТАРАЗН, ГОД, МЕСЯЦ, ДЕНЬ, а также комбинации с СЕГОДНЯ() и ДАТА(). Особое внимание уделим распространенным ошибкам, из-за которых Excel показывает возраст на год меньше или больше реального. Все примеры протестированы в актуальных версиях Excel 2019–2026 и Google Таблиц.
Если вам нужно быстро получить результат — используйте готовые шаблоны формул из таблицы ниже. Для глубокого понимания механики расчетов читайте статью полностью: здесь есть пояснения, почему одна и та же дата рождения может давать разный возраст в зависимости от выбранного метода.
1. Базовый метод: вычитание дат и его подводные камни
Самый очевидный способ вычислить возраст — вычесть дату рождения из текущей даты. В Excel это делается так:
=СЕГОДНЯ()-A2
где A2 — ячейка с датой рождения. Но результат вас удивит: вместо возраста в годах вы получите количество дней между датами (например, 12456). Почему так происходит?
Дело в том, что Excel хранит даты как порядковые номера, где 1 соответствует 1 января 1900 года. Вычитание двух дат дает разницу в днях, а не в годах. Чтобы преобразовать дни в годы, нужно разделить результат на 365:
=ЦЕЛОЕ((СЕГОДНЯ()-A2)/365)
Но и этот метод неточен: он не учитывает високосные годы (где 366 дней) и может давать погрешность ±1 год.
⚠️ Внимание: Формула =ЦЕЛОЕ((СЕГОДНЯ()-A2)/365) ошибается для людей, родившихся после 29 февраля в високосном году. Например, если дата рождения 1 марта 2020, а сегодня 28 февраля 2026, Excel покажет возраст на 1 год меньше реального.
Чтобы избежать этой ошибки, используйте функцию ДАТАРАЗН (о ней — в следующем разделе). А пока запомните: простое деление на 365 подходит только для приблизительных расчетов, например, для оценки возрастной группы (18–25, 26–35 и т.д.).
2. Функция ДАТАРАЗН: самый точный способ
Функция ДАТАРАЗН (или DATEDIF в английской версии) специально создана для расчета разницы между датами в годах, месяцах или днях. Ее синтаксис:
=ДАТАРАЗН(дата_начала; дата_конца; единица_измерения)
Для возраста в полных годах используйте:
=ДАТАРАЗН(A2; СЕГОДНЯ(); "Y")
где:
- 📅
A2— ячейка с датой рождения; - 📅
СЕГОДНЯ()— текущая дата; - 🔢
"Y"— флаг для вывода полных лет.
Преимущества ДАТАРАЗН:
- ✅ Учитывает високосные годы;
- ✅ Корректно обрабатывает даты до/после 29 февраля;
- ✅ Работает во всех версиях Excel (начиная с 2007 года).
Если нужно вывести возраст с месяцами и днями, комбинируйте флаги:
=ДАТАРАЗН(A2; СЕГОДНЯ(); "Y") & " лет, " & ДАТАРАЗН(A2; СЕГОДНЯ(); "YM") & " мес., " & ДАТАРАЗН(A2; СЕГОДНЯ(); "MD") & " дн."
Эта формула вернет строку вида: "25 лет, 3 мес., 14 дн.".
3. Альтернативные формулы: ГОД, МЕСЯЦ, ДЕНЬ
Если функция ДАТАРАЗН по какой-то причине недоступна (например, в некоторых локализациях Excel), используйте комбинацию функций ГОД, МЕСЯЦ и ДЕНЬ:
=ГОД(СЕГОДНЯ())-ГОД(A2)-ЕСЛИ(ИЛИ(МЕСЯЦ(СЕГОДНЯ())<МЕСЯЦ(A2); И(МЕСЯЦ(СЕГОДНЯ())=МЕСЯЦ(A2); ДЕНЬ(СЕГОДНЯ())<ДЕНЬ(A2))); 1; 0)
Разберем, как это работает:
- 📅
ГОД(СЕГОДНЯ())-ГОД(A2)— разница в годах; - 🔄
ЕСЛИ(...)— проверка, прошел ли день рождения в текущем году:- Если текущий месяц < месяца рождения или (текущий месяц = месяцу рождения и текущий день < дня рождения), то вычитаем 1 год.
Эта формула точна, но громоздка. Для удобства создайте именованный диапазон или сохраните ее в Ошибка #ИМЯ? возникает, если в вашей версии Excel функция называется не Вставка → Формула → Сохранить как новую формулу.
Почему формула возвращает #ИМЯ?
ДАТАРАЗН, а DATEDIF. Попробуйте заменить название или проверьте регион в настройках: Файл → Параметры → Язык.
4. Расчет возраста на конкретную дату (не текущую)
Часто требуется узнать возраст человека не на сегодня, а на определенную дату — например, на момент трудоустройства или получения права. Замените СЕГОДНЯ() на фиксированную дату в формате ДАТА(год; месяц; день):
=ДАТАРАЗН(A2; ДАТА(2026; 6; 30); "Y")
Эта формула вернет возраст на 30 июня 2026 года.
Если дата указана в отдельной ячейке (например, B2), используйте:
=ДАТАРАЗН(A2; B2; "Y")
Пример применения:
| Дата рождения | Дата события | Возраст на дату | Формула |
|---|---|---|---|
| 15.05.1990 | 01.09.2023 | 33 | =ДАТАРАЗН(A2; B2; "Y") |
| 29.02.2000 | 28.02.2026 | 23 | =ДАТАРАЗН(A3; B3; "Y") |
| 31.12.1985 | 01.01.2026 | 39 | =ДАТАРАЗН(A4; B4; "Y") |
⚠️ Внимание: Если дата события раньше даты рождения, Excel вернет ошибку#ЧИСЛО!. Чтобы избежать этого, добавьте проверку:=ЕСЛИ(B2
5. Автоматическое обновление возраста при изменении даты
Если вы работаете с динамическими данными (например, в кадровой базе), важно, чтобы возраст пересчитывался автоматически при открытии файла или изменении даты. Для этого:
- 🔄 Используйте
СЕГОДНЯ()— она обновляется при каждом открытии файла или пересчете листа (F9). - ⚙️ Настройте автоматический пересчет:
Формулы → Параметры вычислений → Автоматически. - 📊 Для больших таблиц (10 000+ строк) отключите автоматический пересчет и обновляйте возраст вручную (
F9), чтобы не тормозить Excel. - 🔴 Ошибка #ИМЯ? — проверьте название функции (
ДАТАРАЗНилиDATEDIF) и регион в настройках Excel. - 🔴 Возраст на 1 год меньше реального — скорее всего, день рождения еще не наступил в текущем году. Используйте
ДАТАРАЗНвместо деления на 365. - 🔴 Отрицательный возраст — дата события раньше даты рождения. Добавьте проверку
ЕСЛИ. - 🔴 Некорректный формат ячейки — дата рождения должна иметь формат "Дата" (
Главная → Формат → Формат ячеек → Дата). - 🔴 Excel не распознает дату — проверьте разделители (точка или косая черта) в настройках региона.
- 📅 Возраст в полных месяцах:
=ДАТАРАЗН(A2; СЕГОДНЯ(); "M")Подходит для расчета стажа или возраста младенцев.
- 📅 Возраст в днях:
=СЕГОДНЯ()-A2Используйте для медицинских целей (например, срок беременности).
- ⏰ Возраст в часах:
=(СЕГОДНЯ()-A2)*24Актуально для логистики или производственных процессов.
- 📊 Возраст в годах с десятичными:
=ДАТАРАЗН(A2; СЕГОДНЯ(); "Y") + ДАТАРАЗН(A2; СЕГОДНЯ(); "YM")/12Например,
25,5вместо25 лет 6 месяцев.
Если возраст нужно зафиксировать (например, для отчетности), скопируйте результаты формул и вставьте как значения (Правка → Специальная вставка → Значения).
Ячейка с датой рождения имеет формат "Дата"|Формула учитывает високосные годы|Возраст обновляется при изменении текущей даты|Нет ошибок #ЧИСЛО! или #ЗНАЧ!
-->
6. Распространенные ошибки и как их избежать
Даже опытные пользователи Excel допускают ошибки при расчете возраста. Вот TOP-5 проблем и их решения:
Если возраст все равно считается неправильно, попробуйте преобразовать дату рождения в числовой формат с помощью функции ДАТАЗНАЧ:
=ДАТАРАЗН(ДАТАЗНАЧ(A2); СЕГОДНЯ(); "Y")
Это помогает, когда дата введена как текст (например, после импорта из CSV).
7. Продвинутые сценарии: возраст в месяцах, днях, часах
Иногда возраст нужно посчитать не в годах, а в других единицах. Вот готовые формулы:
Для визуализации возрастных групп используйте условное форматирование:
- Выделите столбец с возрастом.
- Перейдите в
Главная → Условное форматирование → Правила выделения ячеек. - Задайте правила, например:
- 🔴 Возраст < 18 — красный фон;
- 🟢 Возраст 18–30 — зеленый;
- 🔵 Возраст > 30 — синий.
FAQ: Частые вопросы о расчете возраста в Excel
🔹 Почему Excel показывает возраст на 1 год меньше?
Это происходит, если на момент расчета день рождения в текущем году еще не наступил. Например, если человек родился 15 декабря, а сегодня 10 декабря, то по факту ему еще не исполнилось полных лет. Чтобы исправить это, используйте функцию ДАТАРАЗН — она автоматически учитывает такой нюанс.
🔹 Как посчитать возраст в Google Таблицах?
В Google Sheets формулы работают так же, как в Excel. Используйте:
=DATEDIF(A2; TODAY(); "Y")
Обратите внимание: в английской версии функция называется DATEDIF, а не ДАТАРАЗН.
🔹 Можно ли рассчитать возраст без функции ДАТАРАЗН?
Да, но формула будет сложнее:
=ГОД(СЕГОДНЯ())-ГОД(A2)-ЕСЛИ(ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(A2);ДЕНЬ(A2))>СЕГОДНЯ();1;0)
Эта формула создает "виртуальную" дату в текущем году с месяцем и днем рождения, а затем сравнивает ее с сегодняшним днем.
🔹 Как вывести возраст в формате "25 лет, 3 месяца"?
Используйте комбинацию функций ДАТАРАЗН с разными флагами:
=ДАТАРАЗН(A2;СЕГОДНЯ();"Y") & " лет, " & ДАТАРАЗН(A2;СЕГОДНЯ();"YM") & " мес."
Для дней добавьте & " и " & ДАТАРАЗН(A2;СЕГОДНЯ();"MD") & " дн.".
🔹 Почему Excel не распознает дату рождения?
Чаще всего это происходит из-за неверного формата ячейки. Проверьте:
- Ячейка отформатирована как "Дата" (
Формат ячеек → Дата). - Разделители даты соответствуют региональным настройкам (например,
15.05.1990для России или15/05/1990для Европы). - Дата не введена как текст (попробуйте
=ДАТАЗНАЧ(A2)).