Расчет интервалов между датами в Excel
Чтобы вычислить разницу между двумя датами в днях, просто вычтите одну ячейку из другой (например, =B1-A1) или используйте функцию =DAYS(B1; A1). Для расчета полных лет и месяцев применяется скрытая функция DATEDIF, а для исключения выходных дней — NETWORKDAYS. Все эти методы работают мгновенно и не требуют сложных макросов.
Базовый расчет количества дней
Самый простой способ узнать количество дней между двумя событиями — арифметическое вычитание. Введите дату начала в одну ячейку (например, A1), дату окончания в другую (B1) и в третьей напишите формулу:
=B1 - A1
Excel автоматически отобразит результат в днях. Если вместо числа вы видите дату (например, «05.01.1900»), измените формат ячейки с результатом на «Числовой» или «Общий».
Для явного указания задачи используйте функцию DAYS:
=DAYS(конец; начало)
Эта функция удобна тем, что она игнорирует время (часы и минуты), содержащееся в ячейках, и возвращает целое число дней. Она также корректно обрабатывает даты, записанные как текст, если система их распознает.
Если даты содержат время (например, 10.04.2026 14:30), обычное вычитание даст дробное число. Используйте =INT(B1-A1), чтобы отбросить время и получить полные дни.
Точный расчет лет, месяцев и дней (DATEDIF)
Для кадрового учета (стаж, возраст) простого вычитания недостаточно, так как нужно учитывать високосные годы и разную длину месяцев. Здесь на помощь приходит функция DATEDIF. Несмотря на то, что она не отображается в списке подсказок мастера функций, она полностью рабочая во всех версиях Excel.
Синтаксис: =DATEDIF(начальная_дата; конечная_дата; "единица_измерения")
Параметры единицы измерения:
- "Y" — количество полных лет.
- "M" — количество полных месяцев.
- "D" — количество дней.
- "YM" — разница в месяцах без учета лет (остаток).
- "MD" — разница в днях без учета лет и месяцев (остаток).
- "YD" — разница в днях без учета лет.
Пример расчета точного стажа: Допустим, сотрудник принят 15.06.2020 (ячейка A1), а сегодня 10.04.2026 (ячейка B1). Чтобы получить строку вида «5 лет 9 мес. 26 дн.», используйте комбинацию:
=DATEDIF(A1; B1; "Y") & " лет " & DATEDIF(A1; B1; "YM") & " мес. " & DATEDIF(A1; B1; "MD") & " дн."
Функция DATEDIF может вернуть ошибку #NUM!, если дата окончания раньше даты начала. Всегда проверяйте порядок дат или используйте проверку: =IF(B1<A1; 0; DATEDIF(A1;B1;"Y")).
Учет выходных и праздников (NETWORKDAYS)
В проектном менеджменте важно считать именно рабочие дни. Функция NETWORKDAYS автоматически исключает субботы и воскресенья из расчета.
Формула: =NETWORKDAYS(начало; конец; [праздники])
Третий аргумент необязателен. Вы можете указать диапазон ячеек, где перечислены даты государственных праздников, которые также не должны учитываться в рабочем графике.
Если в вашей организации нестандартная рабочая неделя (например, выходные только воскресенье или сменная работа 2/2), используйте расширенную версию NETWORKDAYS.INTL. Она позволяет задать код выходных дней третьим аргументом.
| Функция | Что считает | Пример использования |
|---|---|---|
DAYS / - | Все календарные дни | Срок годности продукта, длительность отпуска |
DATEDIF | Полные периоды (годы, месяцы) | Возраст человека, трудовой стаж |
NETWORKDAYS | Рабочие дни (Пн-Пт) | Сроки выполнения проекта, оплата по дням |
DAYS360 | Дни в финансовом году (360) | Расчет банковских процентов |
Финансовый расчет (метод 360 дней)
В банковской сфере и бухгалтерии часто используется метод расчета, где год считается равным 360 дням, а месяц — 30 дням. Это упрощает начисление процентов. Для этого предназначена функция DAYS360.
=DAYS360(начало; конец; [метод])
- Метод 0 (или ЛОЖЬ) — Европейский метод. Если дата выпадает на 31 число, она приравнивается к 30-му.
- Метод 1 (или ИСТИНА) — Американский метод (NASD). Имеет более сложные правила обработки конца месяца.
Частые ошибки при работе с датами
- Результат отображается как дата.
- Симптом: Вместо числа «15» вы видите «15.01.1900».
- Решение: Выделите ячейку с формулой, нажмите
Ctrl+1и выберите формат «Числовой» или «Общий».
- Ошибка #ЗНАЧ! (#VALUE!).
- Симптом: Дата записана как текст (например, «десятое апреля») или в неверном формате для вашей системы.
- Решение: Преобразуйте текст в дату функцией
ДАТАЗНАЧ(«DATEVALUE») или перепечатайте дату, используя разделители, принятые в системе (точки или дефисы).
- Отрицательное значение.
- Симптом: Дата окончания меньше даты начала.
- Решение: Поменяйте ячейки местами в формуле или оберните расчет в функцию
ABS(модуль числа), если важен только интервал, а не направление.
FAQ
Можно ли посчитать разницу в часах?
Да. Вычтите дату с временем из другой даты с временем и умножьте результат на 24: =(B1-A1)*24. Не забудьте установить числовой формат для ячейки результата.
Почему DATEDIF не появляется при вводе? Это историческая особенность Excel. Функция осталась для совместимости со старыми версиями (Lotus 1-2-3), поэтому она скрыта из списка автодополнения, но работает корректно при ручном вводе.
Как рассчитать возраст на конкретную дату?
Используйте формулу =DATEDIF(дата_рождения; текущая_дата; "Y"). Если нужно считать возраст «на сегодня», вместо текущей даты можно использовать функцию СЕГОДНЯ() (TODAY()): =DATEDIF(A1; СЕГОДНЯ(); "Y").