Расчет возраста и стажа в Excel: точные формулы без ошибок

Иван Корнев·11.04.2026·3 мин

Чтобы посчитать полные годы (возраст) в 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 предпочтительнее, так как он работает логически понятнее для человека (считает полные периоды).

Частые ошибки и способы их устранения

  1. Ошибка #ИМЯ? (#NAME?)

    • Причина: Опечатка в названии функции или использование английской версии функции в русском Excel (и наоборот).
    • Решение: Проверьте написание DATEDIF (или РАЗНДАТ в очень старых локализованных версиях, но DATEDIF универсальнее).
  2. Дата воспринимается как текст

    • Причина: Ячейка отформатирована как "Текстовый", поэтому Excel не может выполнить математическую операцию.
    • Решение: Выделите столбец с датами, перейдите на вкладку ДанныеТекст по столбцам → Далее → Далее → Выберите формат Дата (ГМД) → Готово.
  3. Отрицательный результат или ошибка #ЧИСЛО!

    • Причина: Дата окончания меньше даты начала.
    • Решение: Используйте проверку: =ЕСЛИ(B2<A2; "Ошибка"; DATEDIF(A2; B2; "Y")).

FAQ

Можно ли посчитать возраст в днях? Да, используйте код "D": =DATEDIF(A2; TODAY(); "D"). Это вернет общее количество дней жизни.

Работает ли это в Excel для Mac? Да, функция DATEDIF полностью поддерживается в версиях для macOS, Windows и веб-версии Office 365.

Как рассчитать возраст, если ячейка с датой рождения пустая? Чтобы избежать ошибок в столбце, добавьте условие: =ЕСЛИ(A2=""; ""; DATEDIF(A2; TODAY(); "Y")). Формула вернет пустую ячейку, пока дата не будет введена.