Все способы вычислить интервал между датами в Excel
Чтобы посчитать разницу между датами в Excel, используйте простую формулу вычитания =B2-A2 для получения количества дней или функцию =DATEDIF(A2;B2;"Y") для расчета полных лет и месяцев. Выбор конкретного метода зависит от того, нужен ли вам результат в днях, рабочих днях, месяцах или годах.
Базовый расчет: простое вычитание
Самый быстрый способ узнать количество дней между двумя событиями — вычесть одну дату из другой. Введите в ячейку формулу:
=Конечная_дата - Начальная_дата
Например, если дата начала проекта в ячейке A2, а дата завершения в B2, формула =B2-A2 вернет число дней.
Важно: Если вместо числа отображается дата (например, «янв.00»), измените формат ячейки с результатом на «Общий» или «Числовой». Нажмите Ctrl+1, выберите категорию «Числовой» и уберите десятичные знаки.
Точный расчет стажа и возраста: функция DATEDIF
Для сложных расчетов, где нужно разделить интервал на годы, месяцы и дни (например, для расчета возраста сотрудника или срока договора), используется скрытая, но надежная функция DATEDIF.
Синтаксис: =DATEDIF(нач_дата; кон_дата; "единица")
Третий аргумент определяет единицу измерения:
| Код | Что считает | Пример использования |
|---|---|---|
| "Y" | Полные годы | Возраст человека |
| "M" | Полные месяцы | Срок аренды |
| "D" | Дни | Длительность проекта |
| "YM" | Месяцы без учета лет | Остаток месяцев после полных лет |
| "MD" | Дни без учета лет и месяцев | Остаток дней после полных месяцев |
Пример расчета полного стажа:
Чтобы получить строку вида «5 лет 3 мес.», объедините две функции:
=DATEDIF(A2;B2;"Y") & " лет " & DATEDIF(A2;B2;"YM") & " мес."
Функция DATEDIF не появляется в подсказках автозаполнения Excel, но работает во всех версиях программы. Просто впишите её название вручную.
Специализированные функции для дней и лет
Если стандартного вычитания недостаточно, воспользуйтесь встроенными функциями для специфических задач:
=DAYS(кон_дата; нач_дата)— аналог вычитания, но с явным указанием аргументов. Удобна, если даты вводятся прямо в формулу текстом.=YEARFRAC(нач_дата; кон_дата)— возвращает долю года. Используется в финансовых расчетах (например, для начисления процентов за неполный год). Результат 0.5 означает полгода.
Подсчет рабочих дней (NETWORKDAYS)
Для бизнес-задач часто требуется исключить выходные и праздники. Функция NETWORKDAYS считает только рабочие дни (с понедельника по пятницу).
Формула: =NETWORKDAYS(нач_дата; кон_дата; [праздники])
- Укажите диапазон дат начала и конца.
- (Опционально) Выделите отдельный диапазон ячеек с датами государственных праздников, чтобы функция их тоже исключила.
Если функция NETWORKDAYS возвращает ошибку #ИМЯ?, убедитесь, что установлен надстройкой «Пакет анализа» (в старых версиях) или проверьте правильность написания функции (в некоторых локализованных версиях она может называться ЧИСТРАБДНИ).
Частые ошибки при работе с датами
- Результат
#####: Ячейка слишком узкая для отображения числа. Расширьте столбец. - Отрицательное значение: Дата начала позже даты окончания. Проверьте порядок аргументов.
- Дата распознается как текст: Формула не работает, возвращая
#ЗНАЧ!. Убедитесь, что исходные ячейки имеют формат «Дата», а не «Текст». Часто это случается при копировании данных из других источников.
FAQ
Как посчитать разницу в часах и минутах?
Вычтите дату со временем из другой даты со временем (=B2-A2) и примените к ячейке результата пользовательский формат [ч]:мм. Квадратные скобки позволяют суммировать часы свыше 24.
Можно ли считать разницу от текущей даты?
Да. Используйте функцию =СЕГОДНЯ() (или =TODAY()) в качестве одного из аргументов. Например: =DATEDIF(A2;СЕГОДНЯ();"Y") покажет полный возраст на сегодняшний день.
Почему DATEDIF не видна в списке функций? Это устаревшая функция, оставленная для совместимости с Lotus 1-2-3. Microsoft не рекомендует её для новых разработок, но для разовых расчетов она остается самым удобным инструментом.