Вычисление возраста и интервалов дат в Excel

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

Чтобы быстро рассчитать возраст человека или количество дней между двумя датами в Excel, используйте функцию DATEDIF для лет и простое вычитание ячеек для дней. Например, формула =DATEDIF(A2; TODAY(); "Y") вернет полный возраст в годах, а =B2-A2 покажет разницу в днях. Ниже приведены подробные инструкции, альтернативные методы и способы избежать типичных ошибок.

Почему важно правильно работать с датами

Точный расчет временных интервалов критичен в кадровом учете (стаж, отпуск), финансовом планировании (проценты, сроки) и проектной деятельности (дедлайны). Ошибка в один день может исказить отчетность или привести к неверным выводам. Excel хранит даты как порядковые номера (целые числа), что позволяет выполнять над ними арифметические операции, но требует правильного форматирования ячеек.

Как хранятся даты: В Windows Excel считает даты начиная с 1 января 1900 года. Ячейка с датой «12.04.2026» внутри содержит число 45759. Изменение формата ячейки меняет только внешний вид, но не значение.

Расчет точного возраста

Самый надежный способ узнать возраст — использовать скрытую, но стабильную функцию DATEDIF. Она специально создана для вычисления разницы между датами в разных единицах измерения.

Полных лет

Для получения количества полных лет используйте код "Y" (Year):

=DATEDIF(Дата_рождения; TODAY(); "Y")

Где Дата_рождения — ссылка на ячейку с датой рождения (например, A2), а TODAY() автоматически подставляет текущую дату.

Лет, месяцев и дней

Если нужен детальный возраст (например, для медицинских карт или детских учреждений), объедините три вызова функции:

=DATEDIF(A2; TODAY(); "Y") & " лет " & DATEDIF(A2; TODAY(); "YM") & " мес. " & DATEDIF(A2; TODAY(); "MD") & " дн."
  • "Y" — полные годы.
  • "YM" — оставшиеся месяцы после вычета лет.
  • "MD" — оставшиеся дни после вычета месяцев.

Функция DATEDIF не отображается в списке подсказок Excel и считается устаревшей документально, но она полностью работоспособна во всех современных версиях. Игнорируйте предупреждения о совместимости.

Расчет количества дней между датами

Выбор метода зависит от того, нужно ли учитывать выходные дни или только календарный срок.

Календарные дни

Простейший вариант — вычесть одну дату из другой:

=Конечная_дата - Начальная_дата

Если необходимо включить в расчет и первый, и последний день (например, длительность мероприятия), добавьте единицу:

=Конечная_дата - Начальная_дата + 1

Рабочие дни

Для бизнес-задач, где выходные не учитываются, используйте функцию NETWORKDAYS:

=NETWORKDAYS(Начало; Конец)

По умолчанию она исключает субботы и воскресенья. Если в вашей организации другие выходные или есть список праздников, добавьте третий аргумент — диапазон с датами праздников:

=NETWORKDAYS(A2; B2; Праздники)

Гибкие выходные: Используйте NETWORKDAYS.INTL, если выходные дни отличаются от стандартных. Код "0000011" означает выходные в субботу и воскресенье, а "1111100" — работу только в выходные (понедельник–пятница нерабочие).

Таблица сравнения методов расчета

ЗадачаФормулаРезультат
Полный возраст (лет)=DATEDIF(A2; TODAY(); "Y")Число (напр., 35)
Возраст (лет, мес, дни)=DATEDIF(...;"Y")&...Текст (напр., "35 лет 2 мес.")
Разница в днях=B2 - A2Число дней
Рабочие дни=NETWORKDAYS(A2; B2)Число рабочих дней
Дробный возраст (годы)=YEARFRAC(A2; TODAY())Десятичная дробь (напр., 35.4)

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

  1. Формула возвращает #####: Ширина столбца слишком мала для отображения даты или числа. Расширьте столбец.
  2. Результат равен 0 или ошибке: Ячейки с датами сохранены как текст. Проверьте выравнивание (текст обычно по левому краю). Преобразуйте их через «Данные» → «Текст по столбцам» или используйте функцию DATEVALUE.
  3. Неверный возраст на день рождения: Функция DATEDIF считает полные годы. Если сегодня день рождения человека, он получит +1 год только завтра. Это корректное поведение для большинства юридических задач.
  4. Отрицательное значение: Конечная дата раньше начальной. Используйте функцию ABS для получения модуля числа: =ABS(B2-A2).

FAQ

Как рассчитать возраст на конкретную дату в прошлом или будущем? Замените функцию TODAY() на ссылку на ячейку с нужной датой или запишите дату вручную в кавычках: =DATEDIF(A2; "31.12.2030"; "Y").

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

Как учесть високосные годы при расчете дней? При обычном вычитании (B2-A2) Excel автоматически учитывает високосные годы, так как оперирует порядковыми номерами дней. Дополнительных настроек не требуется.

Почему DATEDIF не работает в моей версии Excel? Убедитесь, что разделитель аргументов соответствует настройкам системы (точка с запятой ; для русской локали или запятая , для английской). Также проверьте, что даты в ячейках распознаны корректно.