Расчет возраста и стажа в Excel: точные формулы без ошибок
Чтобы посчитать полные годы (возраст) в Excel, используйте функцию =DATEDIF(дата_начала; дата_конца; "Y"). Для расчета на текущий момент вторым аргументом ставьте TODAY(). Эта формула автоматически учитывает високосные годы и возвращает только целое количество прошедших лет, игнорируя неполный текущий год.
Почему обычное вычитание дат не подходит
Новички часто пытаются просто вычесть одну дату из другой (=B2-A2) и разделить результат на 365. Этот метод ошибочен, так как не учитывает високосные годы (366 дней), что приводит к погрешности в расчетах возраста или трудового стажа.
Встроенная функция DATEDIF (от англ. Date Difference) создана специально для таких задач. Несмотря на то, что она скрыта из списка подсказок в новых версиях Excel, она остается самым надежным инструментом для работы с периодами времени.
Формат записи: В русской версии Excel разделителем аргументов является точка с запятой (;). В английской — запятая (,).
Точный расчет возраста на сегодня
Самый частый сценарий — определение возраста человека по дате рождения на текущую дату.
Формула:
=DATEDIF(A2; TODAY(); "Y")
Где:
A2— ячейка с датой рождения.TODAY()— функция, возвращающая сегодняшнюю дату (обновляется автоматически при открытии файла)."Y"— параметр, указывающий, что результат нужен в полных годах (Years).
Пример:
Если дата рождения 15.07.1990, а сегодня 11.04.2026, формула вернет 35. Полные 36 лет исполнятся только в июле.
Расчет стажа или разницы между двумя датами
Если нужно вычислить срок действия договора, трудовой стаж или время между двумя историческими событиями, вместо TODAY() подставляется конкретная конечная дата.
Формула:
=DATEDIF(A2; B2; "Y")
Где B2 — дата окончания периода.
Порядок дат важен: Дата начала всегда должна быть первой. Если дата окончания раньше даты начала, функция вернет ошибку #NUM!.
Детализация до месяцев и дней
Часто требуется узнать не только годы, но и остаток в месяцах или днях (например, для точного расчета больничного или отпуска). Для этого комбинируют несколько вызовов функции с разными кодами единиц измерения:
| Код единицы | Описание | Пример использования |
|---|---|---|
| "Y" | Полные годы | DATEDIF(A2;B2;"Y") |
| "YM" | Полные месяцы без учета лет | DATEDIF(A2;B2;"YM") |
| "MD" | Полные дни без учета лет и месяцев | DATEDIF(A2;B2;"MD") |
Формула для красивого вывода ("35 лет, 8 мес., 27 дн."):
=DATEDIF(A2; B2; "Y") & " лет, " & DATEDIF(A2; B2; "YM") & " мес., " & DATEDIF(A2; B2; "MD") & " дн."
Знак & соединяет числовые результаты с текстом.
Альтернативный метод: функция YEARFRAC
Если вам нужно не целое число лет, а дробное значение (например, для финансовых расчетов процентов), используйте функцию YEARFRAC.
Формула:
=YEARFRAC(A2; B2; 1)
Третий аргумент 1 указывает на фактическое количество дней в году (учет високосных лет). Результат будет выглядеть как 35.75. Чтобы получить целое число, оберните формулу в INT:
=INT(YEARFRAC(A2; B2; 1))
Однако для кадрового учета и паспортов метод DATEDIF предпочтительнее, так как он работает логически понятнее для человека (считает полные периоды).
Частые ошибки и способы их устранения
-
Ошибка #ИМЯ? (#NAME?)
- Причина: Опечатка в названии функции или использование английской версии функции в русском Excel (и наоборот).
- Решение: Проверьте написание
DATEDIF(илиРАЗНДАТв очень старых локализованных версиях, ноDATEDIFуниверсальнее).
-
Дата воспринимается как текст
- Причина: Ячейка отформатирована как "Текстовый", поэтому Excel не может выполнить математическую операцию.
- Решение: Выделите столбец с датами, перейдите на вкладку Данные → Текст по столбцам → Далее → Далее → Выберите формат Дата (ГМД) → Готово.
-
Отрицательный результат или ошибка #ЧИСЛО!
- Причина: Дата окончания меньше даты начала.
- Решение: Используйте проверку:
=ЕСЛИ(B2<A2; "Ошибка"; DATEDIF(A2; B2; "Y")).
FAQ
Можно ли посчитать возраст в днях?
Да, используйте код "D": =DATEDIF(A2; TODAY(); "D"). Это вернет общее количество дней жизни.
Работает ли это в Excel для Mac?
Да, функция DATEDIF полностью поддерживается в версиях для macOS, Windows и веб-версии Office 365.
Как рассчитать возраст, если ячейка с датой рождения пустая?
Чтобы избежать ошибок в столбце, добавьте условие:
=ЕСЛИ(A2=""; ""; DATEDIF(A2; TODAY(); "Y")). Формула вернет пустую ячейку, пока дата не будет введена.