Расчет интервалов между датами в Excel
Чтобы узнать количество дней, месяцев или лет между двумя датами в 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.2018 | 14.04.2026 | =DATEDIF(A2;B2;"Y")&" г. "&DATEDIF(A2;B2;"YM")&" мес." | 8 г. 2 мес. |
| Петров П.П. | 01.06.2025 | 14.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 не рекомендует её для новых разработок, но она полностью работоспособна и является стандартом для расчета стажа. Вводите её название вручную.