Как посчитать количество дней между датами в Excel: календарные дни, разница дат и остаток до срока
Чтобы быстро узнать количество дней между двумя датами в Excel, просто вычтите одну дату из другой (например, =B2-A2). Для учета только рабочих дней используйте функцию ЧИСТРАБДНИ (NETWORKDAYS), а для точного расчета возраста или стажа — скрытую функцию РАЗНДАТ (DATEDIF). Выбор метода зависит от того, нужно ли вам включать выходные, праздники и саму дату начала в расчет.
Главное правило: В Excel даты хранятся как порядковые номера. Поэтому математическое вычитание одной даты из другой автоматически дает разницу в днях. Убедитесь, что ячейки с результатами имеют «Общий» числовой формат, а не формат даты.
Простой расчет календарных дней
Самый базовый сценарий — узнать, сколько суток прошло между двумя событиями, учитывая все дни недели (включая субботы, воскресенья и праздники).
Базовая формула вычитания
Если в ячейке A2 дата начала, а в B2 дата конца:
=B2 - A2
Эта формула покажет количество полных дней между датами.
Включение обеих дат в расчет
Часто в бизнесе требуется посчитать длительность периода, включая день начала и день окончания (например, длительность отпуска или аренды). Для этого к разнице нужно прибавить единицу:
=B2 - A2 + 1
Проверка формата: Если вместо числа вы видите дату (например, 05.01.1900), измените формат ячейки с результатом на «Общий» или «Числовой» через вкладку «Главная» -> группа «Число».
Расчет рабочих дней (без выходных и праздников)
Для планирования проектов, расчета сроков исполнения заказов или больничных листов важно учитывать только рабочие дни. Стандартная пятидневка (суббота и воскресенье — выходные) обрабатывается функцией ЧИСТРАБДНИ.
Синтаксис функции
=ЧИСТРАБДНИ(нач_дата; кон_дата; [праздники])
- нач_дата — дата начала периода.
- кон_дата — дата окончания периода.
- [праздники] — необязательный диапазон ячеек, содержащий даты государственных праздников, которые также не считаются рабочими.
Пример с учетом праздников
Допустим, период с A2 по B2, а список праздничных дней находится в диапазоне E2:E10:
=ЧИСТРАБДНИ(A2; B2; E2:E10)
Функция автоматически исключит все субботы, воскресенья и даты из списка праздников.
Важно: Функция ЧИСТРАБДНИ не знает о переносах выходных дней (когда суббота становится рабочей, а понедельник — выходным). Такие нюансы придется корректировать вручную или использовать сложные формулы с СУММПРОИЗВ.
Точный расчет компонентов: годы, месяцы, дни
Если вам нужно узнать не просто общую разницу, а конкретную структуру (например, «2 года, 3 месяца и 5 дней»), используйте функцию РАЗНДАТ (DATEDIF). Она официально не отображается в списке подсказок Excel, но полностью поддерживается во всех версиях.
Синтаксис
=РАЗНДАТ(нач_дата; кон_дата; "единица_измерения")
Коды единиц измерения
| Код | Что возвращает | Пример использования |
|---|---|---|
"d" | Полное количество дней | Стаж работы в днях |
"m" | Полное количество месяцев | Возраст ребенка в месяцах |
"y" | Полное количество лет | Возраст сотрудника |
"ym" | Остаток месяцев после вычета полных лет | "Сколько месяцев сверх полных лет" |
"md" | Остаток дней после вычета полных месяцев | "Сколько дней сверх полных месяцев" |
Пример сложного расчета стажа: Чтобы получить текст вида «5 лет, 4 мес., 12 дн.», объедините три формулы:
=РАЗНДАТ(A2; B2; "y") & " лет, " & РАЗНДАТ(A2; B2; "ym") & " мес., " & РАЗНДАТ(A2; B2; "md") & " дн."
Как рассчитать остаток дней до дедлайна
Для отслеживания сроков удобно использовать функцию СЕГОДНЯ() (TODAY()), которая всегда возвращает текущую дату.
Дней осталось (календарных)
Если дедлайн указан в ячейке C2:
=C2 - СЕГОДНЯ()
Результат: Положительное число — дней осталось, отрицательное — просрочка, 0 — срок сегодня.
Рабочих дней осталось
Если нужно понять, сколько рабочих дней есть у сотрудника на выполнение задачи до даты в C2:
=ЧИСТРАБДНИ(СЕГОДНЯ(); C2)
Примечание: Эта формула включает сегодняшний день. Если задача должна быть выполнена к концу сегодняшнего дня и считается уже начатой, формула верна. Если нужно исключить сегодня, используйте СЕГОДНЯ()+1 в качестве даты начала.
Частые ошибки при работе с датами
- Даты сохранены как текст.
- Симптом: Формула возвращает ошибку
#ЗНАЧ!или неверный результат. Выравнивание текста в ячейке по левому краю. - Решение: Выделите столбец, перейдите в «Данные» -> «Текст по столбцам» -> «Готово». Или используйте формулу
=ЗНАЧЕН(A2)для преобразования.
- Симптом: Формула возвращает ошибку
- Неверный порядок аргументов в РАЗНДАТ.
- Ошибка:
=РАЗНДАТ(B2; A2; "d"), где B2 раньше A2. - Результат: Ошибка
#ЧИСЛО!. Дата начала всегда должна быть меньше или равна дате окончания.
- Ошибка:
- Учет времени в датах.
- Проблема: Ячейки содержат время (например,
13.04.2026 15:30). При вычитании14.04.2026 09:00минус13.04.2026 15:30получится не 1 день, а 0.729. - Решение: Используйте функцию
ЦЕЛОЕдля отсечения времени:=ЦЕЛОЕ(B2) - ЦЕЛОЕ(A2).
- Проблема: Ячейки содержат время (например,
FAQ
Как посчитать разницу в днях, если даты в разных часовых поясах? В самом Excel нет понятия часовых поясов для обычных ячеек. Вам нужно предварительно привести даты к единому временному стандарту (например, к московскому времени) с помощью простых арифметических операций (прибавление/вычитание доли суток), прежде чем считать разницу.
Можно ли сделать так, чтобы при наступлении даты дедлайна ячейка окрашивалась в красный?
Да, используйте «Условное форматирование». Выделите ячейку с формулой остатка дней, создайте правило «Формула» и введите условие =A1<0 (где A1 — ячейка с остатком). Выберите красный цвет заливки.
Почему функция РАЗНДАТ не появляется в подсказках при вводе? Это историческая особенность Excel для совместимости с Lotus 1-2-3. Функция работает корректно, даже если редактор формул её не подсказывает. Просто вводите название вручную.