Как в Excel узнать количество дней между двумя датами: пошаговое руководство

Почему расчет дней в Excel — это не так просто, как кажется

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

Дело в том, что Excel оперирует датами как числовыми значениями (где 1 января 1900 года = 1, а каждая последующая дата увеличивает это число на единицу). Без понимания этой логики даже простая разница между 15.05.2026 и 20.05.2026 может превратиться в головоломку. В этой статье мы разберем 5 рабочих методов — от базовых до продвинутых, — которые покроют 99% задач по расчету дней, включая учет праздников, рабочих смен и даже временных зон.

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

Метод 1: Базовый расчет дней (простая разница)

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

Формула выглядит так:

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

Где КОНДАТА и НАЧДАТА — это ячейки с конечной и начальной датами соответственно. Например, если в ячейке A2 у вас 01.01.2026, а в B231.01.2026, формула будет:

=B2 - A2
  • ✅ Работает для любых дат, даже если они в разных форматах (например, 01.01.2026 и 2026-01-31).
  • ✅ Возвращает целое число дней, включая выходные и праздники.
  • ⚠️ Если результат отображается как дата (например, 01.01.1900), измените формат ячейки на Общий или Числовой.
⚠️ Внимание: Если одна из ячеек содержит текст (например, "1 января"), а не дату в формате Excel, формула вернет ошибку #ЗНАЧ!. Чтобы исправить это, используйте функцию =ДАТАЗНАЧ() для преобразования текста в дату.

Метод 2: Функция РАЗНДАТ — гибкость с годами, месяцами и днями

Функция =РАЗНДАТ() (или DATEDIF в английской версии) — это скрытый инструмент Excel, который не отображается в списке функций, но работает стабильно. Она позволяет вычислять разницу не только в днях, но и в месяцах или годах, что полезно для расчета стажа, возраста или сроков действия договоров.

Синтаксис:

=РАЗНДАТ(нач_дата; кон_дата; единица)

Где единица — это код возвращаемого значения:

  • "d" — разница в днях;
  • "m" — разница в полных месяцах;
  • "y" — разница в полных годах;
  • "ym" — разница в месяцах без учета лет;
  • "md" — разница в днях без учета месяцев и лет.

Пример: чтобы узнать, сколько полных лет и месяцев прошло с 15.03.2020 по 10.11.2026, используйте:

=РАЗНДАТ(A2; B2; "y") & " лет, " & РАЗНДАТ(A2; B2; "ym") & " месяцев"
Единица Пример формулы Результат для дат 01.01.2026 и 15.03.2026
"d" =РАЗНДАТ(A2; B2; "d") 74
"m" =РАЗНДАТ(A2; B2; "m") 2
"y" =РАЗНДАТ(A2; B2; "y") 0
"ym" =РАЗНДАТ(A2; B2; "ym") 2
⚠️ Внимание: Функция РАЗНДАТ может давать неожиданные результаты при работе с отрицательными датами (до 1900 года). Если вам нужно считать исторические периоды, используйте альтернативные методы.
📊 Какой формат дат вы чаще всего используете в Excel?
ДД.ММ.ГГГГ
ММ/ДД/ГГГГ
ГГГГ-ММ-ДД
Другой

Метод 3: Расчет рабочих дней (исключаем выходные)

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

Синтаксис:

=ЧИСТРАБДНИ(нач_дата; кон_дата; [праздники])

Необязательный аргумент [праздники] позволяет указать диапазон ячеек с датами праздников, которые тоже нужно исключить. Например, если в ячейках D2:D10 перечислены государственные праздники, формула примет вид:

=ЧИСТРАБДНИ(A2; B2; D2:D10)
  • 📅 По умолчанию выходные — это суббота и воскресенье. Если у вас другой график (например, пятница и суббота), потребуется дополнительная настройка.
  • 🏢 Для расчета рабочих часов (а не дней) умножьте результат на длительность рабочего дня. Например: =ЧИСТРАБДНИ(A2; B2) * 8 для 8-часового дня.
  • ⚠️ Если конечная дата раньше начальной, функция вернет ошибку #ЧИСЛО!.

Убедитесь, что обе даты в формате Excel (не текст)|Проверьте, что праздники указаны как даты, а не текст|Удалите пустые ячейки в диапазоне праздников|При необходимости отсортируйте праздники по возрастанию-->

Метод 4: Учет праздников и индивидуальных выходных

Функция ЧИСТРАБДНИ отлично справляется с стандартными выходными, но что делать, если у вас нетиповой график? Например, компания работает по схеме "2 через 2", или выходные — пятница и суббота? В этом случае поможет комбинация функций =ЧИСТРАБДНИ.INTL() (или NETWORKDAYS.INTL).

Синтаксис:

=ЧИСТРАБДНИ.INTL(нач_дата; кон_дата; [выходные]; [праздники])

Аргумент [выходные] — это число или строка, определяющая, какие дни считаются выходными. Например:

  • 1 — суббота и воскресенье (по умолчанию);
  • 11 — только воскресенье;
  • "0000011" — пятница и суббота (где 1 = выходной, 0 = рабочий день).

Пример: чтобы посчитать рабочие дни для графика "пятница-суббота — выходные", используйте:

=ЧИСТРАБДНИ.INTL(A2; B2; "0000011"; D2:D10)

Если праздники в вашей стране не фиксированы (например, Пасха), их можно добавить вручную или использовать динамические формулы с =ДАТА() и =ЕСЛИ() для автоматического расчета. Например, чтобы исключить переходящие праздники, можно создать отдельную таблицу с формулами их вычисления.

Как добавить переходящие праздники (например, Пасху)

1. Создайте отдельный лист "Праздники".

2. В ячейке A1 введите формулу для расчета Пасхи (например, для 2026 года: =ДАТА(2026;4;5) — это 5 мая).

3. В основной формуле ЧИСТРАБДНИ.INTL укажите диапазон с этим листом: =ЧИСТРАБДНИ.INTL(A2; B2; 1; Праздники!A1:A10).

Метод 5: Расчет дней с учетом времени (часы и минуты)

Если вам нужно посчитать не только дни, но и часы/минуты между двумя метками времени (например, длительность проекта с точностью до часа), используйте комбинацию функций =ДАТАЗНАЧ() и арифметических операций.

Пример: в ячейке A2 у вас 01.01.2026 14:30, а в B203.01.2026 09:15. Чтобы узнать разницу в часах:

=(B2 - A2) * 24

Для минут:

=(B2 - A2)  24  60
  • ⏱️ Если результат отображается как дата (например, 01.01.1900 12:00), измените формат ячейки на Общий или Числовой.
  • 🔄 Для расчета рабочих часов умножьте результат на долю рабочего времени. Например, если рабочий день — 8 часов: =ЧИСТРАБДНИ(A2; B2) 8 + (МОД(B2 - A2; 1) 24 - 16) * (ЧИСТРАБДНИ(A2; B2) > 0) (где 16 — это нерабочие часы в сутках).
⚠️ Внимание: При работе с временем убедитесь, что ячейки имеют формат Дата/Время. Если Excel воспринимает время как текст, используйте =ВРЕМЗНАЧ() для преобразования.

Типичные ошибки и как их избежать

Даже опытные пользователи Excel иногда сталкиваются с неожиданными ошибками при работе с датами. Вот самые распространенные проблемы и их решения:

  1. Ошибка #ЗНАЧ!: возникает, если одна из ячеек содержит текст вместо даты. Используйте =ДАТАЗНАЧ() или =ЗНАЧЕН() для преобразования.
  2. Некорректный результат (например, отрицательное число дней): проверьте порядок дат (конечная дата должна быть позже начальной).
  3. Формула возвращает дату 1900 года: измените формат ячейки с Дата на Общий.
  4. Праздники не исключаются: убедитесь, что диапазон с праздниками указан корректно и ячейки содержат даты, а не текст.

Еще одна частая ошибка — использование разных форматов дат в одной таблице. Например, если одна дата в формате ДД.ММ.ГГГГ, а другая — ММ/ДД/ГГГГ, Excel может воспринимать их как разные значения. Чтобы унифицировать формат:

  1. Выделите диапазон с датами.
  2. Нажмите Ctrl + 1 (или правая кнопка → Формат ячеек).
  3. Выберите категорию Дата и укажите нужный формат.

FAQ: Ответы на частые вопросы

Можно ли в Excel посчитать дни между датами в разных временных зонах?

Excel не поддерживает временные зоны напрямую. Однако вы можете вручную скорректировать время, добавив или вычтя разницу в часах. Например, если одна дата в UTC+0, а другая в UTC+3, добавьте к второй дате 3/24 (3 часа в долях дня):

= (B2 + 3/24) - A2

Для автоматизации создайте отдельный столбец с корректировкой времени для каждой временной зоны.

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

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

=A2 - СЕГОДНЯ()

Если нужно исключить выходные:

=ЧИСТРАБДНИ(СЕГОДНЯ(); A2)

Обратите внимание: функция СЕГОДНЯ() пересчитывается при каждом открытии файла, поэтому результат будет динамическим.

Почему функция РАЗНДАТ не работает в Google Таблицах?

В Google Sheets функция РАЗНДАТ называется =DATEDIF и поддерживается полностью. Синтаксис идентичен:

=DATEDIF(A2; B2; "d")

Если формула не работает, проверьте:

  • Язык интерфейса (в русскоязычной версии используйте =РАЗНДАТ).
  • Формат дат (должен быть Дата, а не текст).
Как посчитать количество полных недель между двумя датами?

Используйте функцию =ЦЕЛОЕ() для округления разницы в днях до полных недель:

=ЦЕЛОЕ((B2 - A2) / 7)

Если нужно учитывать только рабочие недели (5 дней), используйте:

=ЦЕЛОЕ(ЧИСТРАБДНИ(A2; B2) / 5)
Можно ли автоматически подсвечивать просроченные даты?

Да, с помощью условного форматирования:

  1. Выделите диапазон с датами.
  2. Перейдите на вкладку ГлавнаяУсловное форматированиеСоздать правило.
  3. Выберите Использовать формулу... и введите:
=A2 < СЕГОДНЯ()

Затем укажите цвет заполнения (например, красный) и сохраните правило.