Расчет интервалов между датами в Excel

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

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

Подсчет количества дней

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

Синтаксис: =DAYS(конечная_дата; начальная_дата)

Пример: Если в ячейке A1 стоит 01.01.2026, а в B1 — 13.04.2026: =DAYS(B1; A1) вернет результат 103.

Для старых версий Excel (до 2013): Функция DAYS может отсутствовать. Используйте простое вычитание: =B1 - A1. Важно: Убедитесь, что ячейка с результатом имеет «Общий» числовой формат, а не «Дата», иначе вы увидите дату вместо числа дней.

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

МетодФормулаОсобенности
Стандартный=DAYS(B1; A1)Работает в Excel 2013 и новее
Универсальный=B1 - A1Работает везде, требует проверки формата ячеек
Только рабочие дни=СЕТЬРАБДНЕЙ(A1; B1)Исключает субботы и воскресенья
С учетом праздников=СЕТЬРАБДНЕЙ(A1; B1; праздники)Исключает выходные и даты из списка праздников

Расчет полных месяцев и лет (DATEDIF)

Для более сложных расчетов (месяцы, годы, стаж) используется скрытая, но мощная функция DATEDIF. Она не отображается в списке автоподстановки, поэтому её нужно вводить вручную.

Синтаксис: =DATEDIF(начальная_дата; конечная_дата; "единица_измерения")

Коды единиц измерения:

  • "Y" — полные годы.
  • "M" — полные месяцы.
  • "D" — полные дни (аналог вычитания).
  • "YM" — разница в месяцах без учета лет (полезно для стажа).
  • "MD" — разница в днях без учета месяцев и лет.
  • "YD" — разница в днях без учета лет.

Примеры использования:

  • Полные месяцы между 01.01.2026 и 13.04.2026: =DATEDIF(A1; B1; "M")3.
  • Полные годы между 01.01.2020 и 13.04.2026: =DATEDIF(A1; B1; "Y")6.

Порядок дат критичен. В функции DATEDIF начальная дата должна быть меньше конечной. Если даты перепутаны, функция вернет ошибку #ЧИСЛО!. Для защиты можно использовать конструкцию: =ЕСЛИ(A1>B1; DATEDIF(B1; A1; "M"); DATEDIF(A1; B1; "M"))

Комплексный расчет: годы, месяцы и дни одновременно

Часто требуется вывести результат в читаемом виде, например: «5 лет 3 месяца 12 дней». Для этого комбинируют несколько вызовов DATEDIF через оператор сцепки &.

Готовая формула:

=DATEDIF(A1; B1; "Y") & " г. " & DATEDIF(A1; B1; "YM") & " мес. " & DATEDIF(A1; B1; "MD") & " дн."

Эта формула последовательно считает полные годы, затем оставшиеся полные месяцы и, наконец, остаток дней.

Пример расчета трудового стажа

СотрудникДата приема (A)Дата увольнения (B)Формула стажаРезультат
Иванов И.И.10.02.201814.04.2026=DATEDIF(A2;B2;"Y")&" г. "&DATEDIF(A2;B2;"YM")&" мес."8 г. 2 мес.
Петров П.П.01.06.202514.04.2026=DATEDIF(A3;B3;"M")&" мес."10 мес.

Работа с рабочими днями и календарем

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

Используйте функцию СЕТЬРАБДНЕЙ (или NETWORKDAYS в английской версии): =СЕТЬРАБДНЕЙ(начало; конец; [праздники])

  • Третий аргумент [праздники] — это диапазон ячеек с датами государственных праздников, которые также нужно исключить из расчета.
  • Функция автоматически игнорирует субботу и воскресенье.

Високосные годы: Все рассмотренные функции (DAYS, DATEDIF, СЕТЬРАБДНЕЙ) автоматически учитывают високосные годы. Вам не нужно добавлять дополнительные условия для февраля 29 числа.

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

При работе с датами пользователи часто сталкиваются с типовыми проблемами. Вот как их исправить:

  • Результат отображается как дата (например, 05.01.1900).
    • Причина: Ячейке с формулой присвоен формат «Дата».
    • Решение: Выделите ячейку → нажмите Ctrl+1 → выберите формат «Общий» или «Числовой».
  • Ошибка #ЗНАЧ! при вычитании.
    • Причина: Одна из дат записана как текст (Excel не видит в ней дату).
    • Решение: Проверьте формат исходных ячеек. Используйте функцию ДАТА(год; месяц; день) для гарантированного создания даты.
  • Ошибка #ЧИСЛО! в DATEDIF.
    • Причина: Дата начала позже даты конца.
    • Решение: Поменяйте ячейки местами в формуле или используйте функцию ЕСЛИ для проверки.
  • Неверный разделитель в формуле.
    • Причина: В русской локализации аргументы разделяются точкой с запятой ;, а не запятой ,.
    • Решение: Замените запятые на точки с запятой.

FAQ

Как посчитать возраст человека по дате рождения? Используйте формулу: =DATEDIF(A1; СЕГОДНЯ(); "Y"), где A1 — дата рождения. Функция СЕГОДНЯ() автоматически подставит текущую дату.

Можно ли добавить дни к дате? Да, просто используйте сложение. Чтобы прибавить 30 дней к дате в ячейке A1: =A1 + 30. Чтобы прибавить месяц, лучше использовать =ДАТАМЕС(A1; 1).

Почему DATEDIF не появляется в подсказках? Это устаревшая функция, оставленная для совместимости с Lotus 1-2-3. Microsoft не рекомендует её для новых разработок, но она полностью работоспособна и является стандартом для расчета стажа. Вводите её название вручную.