Вы когда-нибудь сталкивались с задачей быстро рассчитать возраст десятков или сотен людей по их датам рождения? Ручное вычитание года из текущего — утомительное и чреватое ошибками занятие, особенно если нужно учитывать, прошёл ли уже день рождения в этом году. К счастью, Microsoft Excel предлагает несколько автоматизированных способов решить эту задачу — от простейших формул до универсальных функций, которые учитывают месяцы и дни.
В этой статье мы разберём 5 рабочих методов, как посчитать возраст в Excel — от базового вычитания до сложных формул с учётом високосных годов и текущей даты. Вы узнаете, как избежать распространённых ошибок (например, когда человек ещё не отметил день рождения в этом году), как оформить результаты в удобном виде и даже как автоматически обновлять возраст при открытии файла. А для тех, кто работает с большими массивами данных, мы покажем, как применить формулы ко всему столбцу за несколько кликов.
Метод 1: Простейшее вычитание года (без учёта месяца и дня)
Самый быстрый, но и самый неточный способ — просто вычесть год рождения из текущего года. Этот метод подходит, если вам нужны приблизительные данные (например, для статистики) и не важно, отметил ли человек день рождения в 2026 году.
Формула выглядит так:
=ГОД(СЕГОДНЯ()) - ГОД(A2)
Где A2 — ячейка с датой рождения. Например, если в A2 указана дата 15.07.1990, формула вернёт 34 (2026 - 1990).
- ✅ Плюсы: максимально простая формула, работает даже в старых версиях Excel.
- ❌ Минусы: не учитывает, прошёл ли день рождения в текущем году. Например, если сегодня
10.01.2026, а день рождения15.07.1990, формула покажет34, хотя человеку ещё33.
⚠️ Внимание: Этот метод даёт завышенные результаты для тех, кто ещё не отметил день рождения в текущем году. Используйте его только для ориентировочных расчётов!
Метод 2: Точный расчёт с учётом месяца и дня (функция ДАТАРАЗН)
Функция ДАТАРАЗН (DATEDIF) — скрытая жемчужина Excel, которая специально создана для расчёта разницы между датами. Она учитывает не только годы, но и месяцы, и дни, что делает её идеальной для точного определения возраста.
Синтаксис функции:
=ДАТАРАЗН(A2; СЕГОДНЯ(); "Y")
Где:
A2— ячейка с датой рождения;СЕГОДНЯ()— текущая дата;"Y"— параметр, указывающий, что нас интересует разница в полных годах.
Пример: если сегодня 10.01.2026, а дата рождения 15.07.1990, формула вернёт 33 (поскольку день рождения ещё не наступил). После 15.07.2026 результат автоматически обновится до 34.
| Дата рождения | Текущая дата | Формула | Результат |
|---|---|---|---|
| 15.07.1990 | 10.01.2026 | =ДАТАРАЗН(A2; СЕГОДНЯ(); "Y") |
33 |
| 15.07.1990 | 16.07.2026 | =ДАТАРАЗН(A2; СЕГОДНЯ(); "Y") |
34 |
| 29.02.2000 | 01.03.2026 | =ДАТАРАЗН(A2; СЕГОДНЯ(); "Y") |
24 |
Функция ДАТАРАЗН корректно обрабатывает високосные годы (например, 29.02.2000) и автоматически обновляет результат при изменении текущей даты.
Почему функция ДАТАРАЗН скрыта в Excel?
Функция ДАТАРАЗН не отображается в мастер-функций Excel, так как является наследием программы Lotus 1-2-3. Однако она полностью работоспособна и поддерживается Microsoft для обеспечения совместимости.
Метод 3: Универсальная формула с ЕСЛИ и И
Если вам нужна формула, которая не только считает возраст, но и учитывает дополнительные условия (например, выделяет несовершеннолетних), комбинируйте ДАТАРАЗН с логическими функциями.
Пример формулы, которая возвращает возраст и добавляет пометку для лиц младше 18 лет:
=ЕСЛИ(ДАТАРАЗН(A2; СЕГОДНЯ(); "Y")<18; ДАТАРАЗН(A2; СЕГОДНЯ(); "Y") & " (несовершеннолетний)"; ДАТАРАЗН(A2; СЕГОДНЯ(); "Y"))
Как это работает:
- Сначала рассчитывается возраст с помощью
ДАТАРАЗН. - Функция
ЕСЛИпроверяет, меньше ли результат 18. - Если да — добавляет текст
" (несовершеннолетний)".
Эту формулу можно адаптировать для других целей, например:
- 🎂 Выделение юбиляров (
=ЕСЛИ(ОСТАТ(ДАТАРАЗН(A2; СЕГОДНЯ(); "Y"); 5)=0; "Юбилей!"; "")). - 👶 Отметка новорождённых (
=ЕСЛИ(ДАТАРАЗН(A2; СЕГОДНЯ(); "Y")=0; "Новорождённый"; "")). - 🎓 Фильтрация выпускников (
=ЕСЛИ(ДАТАРАЗН(A2; СЕГОДНЯ(); "Y")>=17; "Выпускник"; "")).
Метод 4: Автоматическое обновление возраста при открытии файла
По умолчанию Excel не обновляет формулы с СЕГОДНЯ() в реальном времени — они пересчитываются только при открытии файла или ручном нажатии F9. Если вам нужно, чтобы возраст всегда был актуальным на текущую дату, используйте комбинацию из СЕГОДНЯ() и ДАТАРАЗН с принудительным пересчётом.
Шаги для настройки автоматического обновления:
- Вставьте формулу
=ДАТАРАЗН(A2; СЕГОДНЯ(); "Y")в нужную ячейку. - Перейдите в
Файл → Параметры → Формулы. - В разделе Параметры вычислений выберите
Автоматически, кроме таблиц. - Поставьте галочку
Пересчитывать книгу при сохранении.
Теперь возраст будет обновляться:
- 📅 При каждом открытии файла.
- 💾 При сохранении (
Ctrl + S). - 🔄 При ручном пересчёте (
F9).
⚠️ Внимание: Если файл открыт постоянно (например, на сервере), Excel не будет обновлять СЕГОДНЯ() в реальном времени. Для этого потребуется VBA-скрипт или Power Query.
Вставить формулу с ДАТАРАЗН и СЕГОДНЯ|Открыть Параметры Excel (Файл → Параметры)|Выбрать "Автоматически, кроме таблиц"|Включить "Пересчитывать книгу при сохранении"|Сохранить файл-->
Метод 5: Расчёт возраста с учётом месяцев и дней (полный разбор)
Иногда недостаточно знать только полные годы — например, для медицинских карт или кадрового учёта требуется указать возраст в формате 33 года 5 месяцев 10 дней. Для этого модифицируем функцию ДАТАРАЗН, добавив параметры "YM" (месяцы) и "MD" (дни).
Формула для полного разбора:
=ДАТАРАЗН(A2; СЕГОДНЯ(); "Y") & " г. " & ДАТАРАЗН(A2; СЕГОДНЯ(); "YM") & " м. " & ДАТАРАЗН(A2; СЕГОДНЯ(); "MD") & " д."
Расшифровка параметров ДАТАРАЗН:
"Y"— полные годы."YM"— месяцы с учётом полных лет (например, если разница 1 год и 2 месяца, вернёт2)."MD"— дни с учётом полных лет и месяцев.
Пример результата для даты рождения 15.07.1990 при текущей дате 10.01.2026:
33 г. 5 м. 26 д.
Эту формулу можно адаптировать под нужный формат:
- 📅 Для краткости:
=ДАТАРАЗН(A2; СЕГОДНЯ(); "Y") & " лет". - 📊 Для отчётов:
=ДАТАРАЗН(A2; СЕГОДНЯ(); "Y") & " г., " & ДАТАРАЗН(A2; СЕГОДНЯ(); "YM") & " м.". - 🩺 Для медицины: добавьте проверку на неполные месяцы (
ЕСЛИ(ДАТАРАЗН(A2; СЕГОДНЯ(); "MD")>0; " + дней"; "")).
Распространённые ошибки и как их избежать
Даже с правильными формулами в расчёте возраста можно допустить ошибки. Вот TOP-5 проблем и их решения:
- Ошибка #1: Формат ячейки с датой рождения не распознан.
Excel может воспринимать дату как текст (например,
15.07.1990отображается как15-Июл). Решение: выделите столбец →Формат ячеек → Дата. - Ошибка #2: Формула не обновляется.
Если
СЕГОДНЯ()не меняется, проверьте настройки вычислений (Формулы → Вычислить сейчасилиF9). - Ошибка #3: Неправильный результат для 29 февраля.
ДАТАРАЗНкорректно обрабатывает високосные годы, но если дата введена как текст ("29.02.2000"), формула вернёт ошибку. Решение: используйте функциюДАТАЗНАЧдля преобразования текста в дату:=ДАТАРАЗН(ДАТАЗНАЧ(A2); СЕГОДНЯ(); "Y") - Ошибка #4: Формула копируется с ошибками.
При протягивании формулы вниз Excel может неправильно изменить ссылки. Решение: используйте абсолютные ссылки (
$A2) или таблицы Excel. - Ошибка #5: Разница в часовых поясах.
Если даты рождения вводятся в разных часовых поясах,
СЕГОДНЯ()может дать неточный результат. Решение: используйте фиксированную дату (=ДАТА(2026; 1; 1)) вместоСЕГОДНЯ()для отчётов.
Критическая ошибка: если дата рождения в будущем (например, опечатка 15.07.2030 вместо 1990), формула вернёт отрицательное значение. Добавьте проверку: =ЕСЛИ(ДАТАРАЗН(A2; СЕГОДНЯ(); "Y")<0; "Ошибка даты"; ДАТАРАЗН(A2; СЕГОДНЯ(); "Y")).
Практические примеры применения
Расчёт возраста в Excel полезен не только для личных нужд, но и в профессиональных задачах. Вот несколько реальных кейсов с готовыми решениями:
| Задача | Формула | Пример результата |
|---|---|---|
| Определение возрастной группы (до 18, 18–30, 30+) | =ЕСЛИ(ДАТАРАЗН(A2;СЕГОДНЯ();"Y")<18;"Детская";ЕСЛИ(ДАТАРАЗН(A2;СЕГОДНЯ();"Y")<=30;"Молодёжь";"Взрослые")) |
"Молодёжь" |
| Расчёт стажа работы (даты приёма и увольнения) | =ДАТАРАЗН(B2; C2; "Y") & " лет " |
"5 лет 2 месяца" |
| Проверка на юбилей (кратный 5 годам) | =ЕСЛИ(ОСТАТ(ДАТАРАЗН(A2;СЕГОДНЯ();"Y");5)=0;"Юбилей!";"") |
"Юбилей!" |
| Фильтрация пенсионеров (женщины 55+, мужчины 60+) | =ЕСЛИ(И(ДАТАРАЗН(A2;СЕГОДНЯ();"Y")>=55; B2="Ж");"Пенсионер";ЕСЛИ(И(ДАТАРАЗН(A2;СЕГОДНЯ();"Y")>=60; B2="М");"Пенсионер";"")) |
"Пенсионер" |
Для автоматизации рутинных задач (например, ежемесячной рассылки поздравлений) комбинируйте формулы с условным форматированием:
- Выделите столбец с возрастом.
- Перейдите в
Главная → Условное форматирование → Создать правило. - Выберите
Форматировать только ячейки, которые содержат. - Установите условие:
Значение равно = "Юбилей!"и задайте цвет (например, золотой).
FAQ: Ответы на частые вопросы
Можно ли посчитать возраст без функции ДАТАРАЗН?
Да, например, так:
=ЦЕЛОЕ((СЕГОДНЯ()-A2)/365,25)
Эта формула делит разницу в днях между текущей датой и датой рождения на среднюю продолжительность года (365,25 дней с учётом високосных лет). Однако она менее точна, чем ДАТАРАЗН, особенно для дат в феврале.
Как посчитать возраст на конкретную дату (не сегодня)?
Замените СЕГОДНЯ() на фиксированную дату, например:
=ДАТАРАЗН(A2; ДАТА(2026;12;31); "Y")
Эта формула покажет, сколько лет человеку будет на 31.12.2026.
Почему Excel показывает ошибку #ИМЯ? вместо возраста?
Ошибка #ИМЯ? возникает, если:
- Функция
ДАТАРАЗНвведена с опечаткой (проверьте регистр:ДАТАРАЗН, а неДатаРазн). - Ячейка с датой рождения пустая или содержит текст (например,
"15 июля"вместо15.07.1990). - В вашей версии Excel отключена поддержка скрытых функций (решается обновлением программы).
Как посчитать возраст в Google Таблицах?
В Google Sheets используйте ту же функцию DATEDIF (она там официально поддерживается):
=DATEDIF(A2; TODAY(); "Y")
Альтернатива — формула:
=YEAR(TODAY()) - YEAR(A2) - IF(OR(MONTH(TODAY())
Можно ли автоматически отправлять поздравления по дате рождения?
Да, для этого:
- Создайте столбец с формулой, проверяющей совпадение месяца и дня:
=И(МЕСЯЦ(A2)=МЕСЯЦ(СЕГОДНЯ()); ДЕНЬ(A2)=ДЕНЬ(СЕГОДНЯ())) - Настройте условное форматирование для выделения строк с
ИСТИНА. - Используйте Power Automate (Microsoft) или Apps Script (Google) для автоматической отправки email.