Расчет интервалов между датами в Excel: точные формулы для стажа и сроков
Чтобы узнать количество полных лет и месяцев между двумя датами в Excel, используйте скрытую функцию =DATEDIF(нач_дата; кон_дата; "единица"). Для получения дробных значений (например, 5,5 лет) применяйте =YEARFRAC(нач_дата; кон_дата). Эти инструменты позволяют мгновенно рассчитать трудовой стаж, срок кредита или возраст без ручного пересчета календаря.
Функция DATEDIF: расчет полных периодов
Функция DATEDIF (от англ. Date Difference) — основной инструмент для вычисления целых промежутков времени. Она не отображается в списке подсказок при вводе, но работает во всех версиях Excel, начиная с 2010 года.
Синтаксис формулы:
=DATEDIF(начальная_дата; конечная_дата; "код_единицы")
Коды единиц измерения:
- "Y" — количество полных лет.
- "M" — общее количество полных месяцев.
- "D" — количество дней.
- "YM" — разница в месяцах без учета лет (остаток после вычисления полных лет).
- "MD" — разница в днях без учета месяцев и лет.
Пример расчета трудового стажа:
Допустим, дата приема на работу (ячейка A1) — 15.03.2020, а дата увольнения (ячейка B1) — 08.04.2026.
- Полные годы:
=DATEDIF(A1; B1; "Y")→ Результат: 6. - Оставшиеся месяцы:
=DATEDIF(A1; B1; "YM")→ Результат: 1. - Общее число месяцев:
=DATEDIF(A1; B1; "M")→ Результат: 73.
Для красивого вывода стажа в одну ячейку объедините формулы через амперсанд:
=DATEDIF(A1;B1;"Y") & " г. " & DATEDIF(A1;B1;"YM") & " мес."
Результат: "6 г. 1 мес."
Точный расчет с дробными значениями (YEARFRAC)
Если вам нужны не целые числа, а точные десятичные дроби (например, для начисления процентов по кредиту или сложной системы оплаты труда), функция DATEDIF не подойдет. Используйте YEARFRAC.
Формула: =YEARFRAC(нач_дата; кон_дата)
Эта функция возвращает долю года между датами, учитывая високосные годы. По умолчанию используется американский стандарт (360 дней в году), но для максимальной точности в российских реалиях рекомендуется явно указывать базис 1 (фактическое количество дней):
=YEARFRAC(A1; B1; 1)
Сравнение методов расчета для периода 15.03.2020 – 08.04.2026:
| Метод | Формула | Результат | Где применять |
|---|---|---|---|
| Полные годы | DATEDIF(...;"Y") | 6 | Трудовой стаж, возраст |
| Полные месяцы | DATEDIF(...;"M") | 73 | Аренда, подписки |
| Дробные годы | YEARFRAC(...;1) | 6,07 | Проценты, пени, бонусы |
| Дни | B1-A1 | 2216 | Срок действия договора |
В русской версии Excel разделителем аргументов является точка с запятой (;). Использование запятой (,) приведет к ошибке #ЗНАЧ!.
Сложные сценарии: учет рабочих дней и текущей даты
Автоматический расчет до сегодняшнего дня
Чтобы стаж или срок действия документа обновлялся автоматически каждый день, вместо конечной даты используйте функцию СЕГОДНЯ():
=DATEDIF(A1; СЕГОДНЯ(); "Y") & " лет"
Исключение выходных и праздников
Для расчета количества рабочих дней между датами (например, для соблюдения сроков поставки по договору) применяется функция ЧИСТРАБДНИ (или NETWORKDAYS в английской версии).
=ЧИСТРАБДНИ(нач_дата; кон_дата; [праздники])
Третий аргумент позволяет указать диапазон ячеек с датами государственных праздников, которые также будут исключены из подсчета.
Обработка ошибок
Если конечная дата меньше начальной, DATEDIF вернет ошибку #ЧИСЛО!. Чтобы избежать этого, оберните формулу в проверку:
=ЕСЛИ(B1<A1; "Дата в будущем"; DATEDIF(A1; B1; "Y"))
Частые ошибки
- Даты сохранены как текст. Если формула возвращает
#ЗНАЧ!, проверьте формат ячеек. Даты должны быть выровнены по правому краю. Используйте функциюДАТАЗНАЧ()для конвертации текста в дату. - Неверный порядок аргументов. В
DATEDIFпервая дата всегда должна быть раньше второй. В функцииДНИ(DAYS) порядок обратный: сначала конечная, потом начальная. - Игнорирование високосных лет. При простом делении количества дней на 365 вы получите погрешность. Для финансовых расчетов всегда используйте
YEARFRACс базисом 1.
FAQ
Как посчитать возраст человека в годах и месяцах?
Используйте связку: =DATEDIF(A1; СЕГОДНЯ(); "Y") & " лет " & DATEDIF(A1; СЕГОДНЯ(); "YM") & " мес.", где A1 — дата рождения.
Можно ли использовать эти формулы в Google Таблицах?
Да, функции DATEDIF, YEARFRAC, ЧИСТРАБДНИ и СЕГОДНЯ полностью поддерживаются в Google Sheets с идентичным синтаксисом.
Как рассчитать разницу во времени (часы и минуты)?
Просто вычтите одну дату из другой (=B1-A1) и примените к ячейке пользовательский формат [ч]:мм. Квадратные скобки позволят суммировать часы свыше 24.