Как в Excel посчитать количество дней между датами, включая конечную дату: формулы и лайфхаки

Работа с датами в Microsoft Excel — одна из самых востребованных задач, особенно когда нужно рассчитать продолжительность проектов, сроки выполнения задач или разницу между событиями. Но стандартные функции часто исключают конечную дату из подсчёта, что приводит к ошибкам в отчётах. Например, если проект стартовал 1 января и закончился 3 января, логично ожидать, что его длительность — 3 дня, а не 2.

В этой статье вы узнаете, как правильно вычислить количество дней между двумя датами включая обе границы, избегая типичных ошибок. Мы разберём базовые формулы, продвинутые функции для учёта выходных, а также нюансы работы с временными зонами и некорректными данными. Особое внимание уделим случаям, когда Excel возвращает неожиданные результаты — например, отрицательные числа или ошибку #ЗНАЧ!.

———

Почему стандартная разница дат в Excel не включает конечную дату

По умолчанию Excel воспринимает даты как последовательные числа, где 1 января 1900 года — это число 1, а каждая последующая дата увеличивает счётчик на единицу. Когда вы вычитаете одну дату из другой (например, =B2-A2), программа просто считает разницу между этими числами.

Проблема в том, что такая операция возвращает количество полных дней между датами, исключая конечную. Например:

  • 📅 =ДАТА(2026;1;3) - ДАТА(2026;1;1) вернёт 2 (1 и 2 января), хотя логически период включает три дня: 1, 2 и 3 января.
  • 🔄 Если поменять даты местами (=ДАТА(2026;1;1) - ДАТА(2026;1;3)), результат станет отрицательным (-2), что тоже не всегда удобно для анализа.

Это поведение заложено в архитектуру Excel, но его легко обойти с помощью простых корректировок формул. Главное — понимать, что включение конечной даты требует прибавления единицы к результату.

📊 Как часто вы работаете с датами в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

Способ 1: Простая формула с прибавлением +1

Самый быстрый метод — использовать стандартное вычитание дат и вручную добавить единицу. Формула будет выглядеть так:

=КОНДАТА - НАЧДАТА + 1

Где:

  • 📌 КОНДАТА — ячейка с конечной датой (например, B2).
  • 📌 НАЧДАТА — ячейка с начальной датой (например, A2).

Пример: если в A2 указана дата 05.05.2026, а в B207.05.2026, формула =B2-A2+1 вернёт 3 (5, 6 и 7 мая).

Способ 2: Функция ДНИ (DAYS) с корректировкой

Excel предлагает специальную функцию ДНИ (англ. DAYS), которая возвращает разницу между двумя датами. Однако, как и в случае с вычитанием, она не включает конечную дату. Чтобы это исправить, добавьте единицу к результату:

=ДНИ(КОНДАТА; НАЧДАТА) + 1

Синтаксис функции:

  • 🔹 ДНИ(конечная_дата; начальная_дата) — порядок аргументов важен!
  • 🔹 Если поменять даты местами, результат станет отрицательным.

Пример: =ДНИ("10.06.2026"; "05.06.2026") + 1 вернёт 6 (с 5 по 10 июня включительно).

Убедитесь, что ячейки с датами отформатированы как Дата|Проверьте порядок аргументов в функции ДНИ|Добавьте +1 для включения конечной даты|Протестируйте формулу на примере с известным результатом

-->

Способ 3: Функция ДНИ360 для финансовых расчётов

Если вы работаете с финансовыми отчётами, где год условно считается за 360 дней (12 месяцев по 30 дней), используйте функцию ДНИ360. Она игнорирует реальное количество дней в месяце и упрощает расчёты процентов или амортизации.

Синтаксис:

=ДНИ360(НАЧДАТА; КОНДАТА; [метод])

Аргументы:

  • 📊 НАЧДАТА и КОНДАТА — начальная и конечная даты.
  • 📊 [метод] (необязательно):
    • 🔢 ЛОЖЬ или 0 — европейский метод (начинает с 31-го числа).
    • 🔢 ИСТИНА или 1 — американский метод (начинает с 30-го числа).

Чтобы включить конечную дату, добавьте единицу:

=ДНИ360(A2; B2) + 1
⚠️ Внимание: ДНИ360 не учитывает выходные и праздники. Для точных календарных расчётов используйте ДНИ или ЧИСТРАБДНИ.
Функция Формула с включением конечной даты Пример результата
(01.01.2026 – 03.01.2026)
Особенности
Вычитание =B2-A2+1 3 Простота, работает во всех версиях Excel
ДНИ =ДНИ(B2; A2)+1 3 Точность, учитывает високосные годы
ДНИ360 =ДНИ360(A2; B2)+1 3 Для финансовых расчётов, игнорирует реальные дни в месяце
РАЗНДАТ =РАЗНДАТ(A2; B2; "d")+1 3 Универсальна, поддерживает годы/месяцы

Учёт выходных и праздников: функция ЧИСТРАБДНИ

Если вам нужно посчитать только рабочие дни (исключая субботы, воскресенья и праздники), используйте функцию ЧИСТРАБДНИ (англ. NETWORKDAYS). Она автоматически исключает выходные, а также позволяет добавить список праздничных дней.

Синтаксис:

=ЧИСТРАБДНИ(НАЧДАТА; КОНДАТА; [праздники]) + 1

Пример:

  • 🏢 В ячейках A2 и B2 даты 01.01.2026 и 10.01.2026.
  • 🎉 В диапазоне D2:D5 перечислены праздники: 01.01.2026, 02.01.2026, 07.01.2026.

Формула:

=ЧИСТРАБДНИ(A2; B2; D2:D5) + 1

Результат: 6 (рабочие дни с 1 по 10 января включительно, за вычетом выходных и праздников).

⚠️ Внимание: Если конечная дата попадает на выходной или праздник, она всё равно будет учтена в результате благодаря +1. Чтобы исключить её, используйте =ЧИСТРАБДНИ(A2; B2-1; D2:D5) + 1.
Как добавить праздники в Excel автоматически?

Создайте отдельный лист с названием "Праздники" и перечислите даты в столбце A. Затем в основной формуле ссылайтесь на этот диапазон, например: =ЧИСТРАБДНИ(A2; B2; Праздники!A:A) + 1. Так вы сможете легко обновлять список праздников без изменения формул.

Ошибки и их решения: почему Excel показывает неверный результат

Даже с правильными формулами Excel может выдавать ошибки. Рассмотрим типичные проблемы и способы их исправления:

  • 🚨 Ошибка #ЗНАЧ! — возникает, если одна из ячеек содержит текст вместо даты. Проверьте формат ячеек (Формат → Ячейки → Дата).
  • 🔙 Отрицательное число — означает, что начальная дата позже конечной. Используйте =АБС(ДНИ(B2; A2)) + 1, чтобы всегда получать положительный результат.
  • Неправильное количество дней — убедитесь, что в настройках Excel используется 1900-дата система (проверьте в Файл → Параметры → Дополнительно → При переходе на эту книгу → Использовать систему дат 1904 — галочка должна быть снята).

Если даты вводятся вручную, используйте функцию ДАТА для избежания двусмысленности:

=ДНИ(ДАТА(2026; 12; 31); ДАТА(2026; 1; 1)) + 1

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

Продвинутые приёмы: расчёт дней с учётом времени

Если ваши данные включают не только даты, но и время (например, 01.01.2026 14:30), стандартные функции могут давать дробные результаты. Чтобы округлить их до полных дней, используйте:

=ОКРУГЛВВЕРХ(КОНДАТА - НАЧДАТА; 0) + 1

Эта формула:

  • ⏰ Учитывает часы и минуты, округляя разницу до ближайшего целого дня.
  • 📅 Добавляет единицу для включения конечной даты.

Пример: если проект начался 01.01.2026 09:00 и закончился 02.01.2026 18:00, формула вернёт 2 (а не 1.375, как при простом вычитании).

Для учёта только календарных дней (игнорируя время) используйте:

=ЦЕЛОЕ(КОНДАТА) - ЦЕЛОЕ(НАЧДАТА) + 1

FAQ: Частые вопросы о подсчёте дней в Excel

🔹 Как посчитать дни между датами, исключая начальную дату, но включая конечную?

Используйте формулу =КОНДАТА - НАЧДАТА (без +1). Она вернёт разницу между датами, где конечная дата включена, а начальная — нет. Например, для периода с 1 по 3 января результат будет 2 (2 и 3 января).

🔹 Почему моя формула возвращает ###### вместо числа?

Это означает, что столбец слишком узкий для отображения результата. Расширьте столбец или измените формат ячейки на Общий. Также проверьте, не является ли результат отрицательным числом с большим количеством знаков.

🔹 Можно ли посчитать количество месяцев или лет между датами?

Да, используйте функцию РАЗНДАТ:

  • 📆 =РАЗНДАТ(A2; B2; "m") — количество полных месяцев.
  • 📅 =РАЗНДАТ(A2; B2; "y") — количество полных лет.

Чтобы включить текущий месяц/год, добавьте единицу: =РАЗНДАТ(A2; B2; "m") + 1.

🔹 Как посчитать дни между сегодняшней датой и другой датой?

Используйте функцию СЕГОДНЯ:

=ДНИ(СЕГОДНЯ(); B2) + 1

Эта формула вернёт количество дней от текущей даты до даты в ячейке B2, включая конечную дату. Для обратного отсчёта (от B2 до сегодня) поменяйте аргументы местами.

🔹 Почему функция ДНИ360 даёт другой результат, чем простое вычитание?

Функция ДНИ360 использует упрощённую модель, где каждый месяц считается за 30 дней, а год — за 360. Это не соответствует реальному календарю, но удобно для финансовых расчётов. Например, разница между 31 января и 1 февраля по ДНИ360 будет 1 день, а по календарю — 0 (если не добавлять +1).