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

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

Разница между датами в днях — одна из самых востребованных операций в Microsoft Excel и Google Таблицах. Будь то расчёт срока выполнения проекта, определение просрочки по платежу или анализ временных интервалов в отчётах — умение быстро вычислять количество дней между двумя точками времени экономит часы ручной работы. Например, HR-специалисты считают стаж сотрудников, логисты — время доставки, а финансовые аналитики — периоды между транзакциями.

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

Способ 1: Простое вычитание дат (базовый метод)

Самый интуитивный способ — вычесть одну дату из другой напрямую. Excel хранит даты как последовательные числа, где 1 соответствует 1 января 1900 года. Поэтому разница между двумя датами автоматически преобразуется в количество дней.

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

=Конечная_дата - Начальная_дата

Пример: если в ячейке A2 указана дата начала проекта 15.05.2026, а в B2 — дата окончания 30.05.2026, формула будет:

=B2-A2
  • Плюсы: максимально просто, работает во всех версиях Excel.
  • ⚠️ Минусы: не учитывает выходные, праздники или рабочие смены.
  • 📌 Нюанс: если результат отображается как дата (например, 15.01.1900), измените формат ячейки на Общий или Числовой.
📊 Какой способ вычисления разницы дат вы используете чаще?
Простое вычитание
Функция РАЗНДАТ (DATEDIF)
Функции ДАТА и СЕГОДНЯ
С учётом выходных (ЧИСТРАБДНИ)
Другой

Способ 2: Функция РАЗНДАТ (DATEDIF) — гибкость и точность

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

=РАЗНДАТ(начальная_дата; конечная_дата; единица_измерения)

Аргумент единица_измерения определяет формат результата:

  • "D" — разница в днях;
  • "M" — разница в месяцах;
  • "Y" — разница в годах;
  • "YM" — разница в месяцах без учёта лет;
  • "MD" — разница в днях без учёта месяцев и лет.

Пример: чтобы узнать, сколько полных дней прошло с 01.01.2026 (ячейка A2) до 10.06.2026 (ячейка B2), используйте:

=РАЗНДАТ(A2; B2; "D")
⚠️ Внимание: Функция РАЗНДАТ не документирована в официальной справке Excel, но работает во всех версиях. В Google Таблицах её аналог — DATEDIF.

Убедитесь, что обе даты в формате даты (не текст)|Проверьте порядок аргументов: сначала начальная дата, затем конечная|Используйте кавычки для единицы измерения (например, "D")|Если результат #ЧИСЛО!, проверьте корректность дат-->

Способ 3: Учёт только рабочих дней (функция ЧИСТРАБДНИ)

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

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

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

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

Пример расчёта рабочих дней между 01.05.2026 и 15.05.2026 с учётом праздников 1, 8 и 9 мая:

Начальная датаКонечная датаПраздникиФормулаРезультат
01.05.202615.05.202601.05.2026; 08.05.2026; 09.05.2026=ЧИСТРАБДНИ(A2; B2; D2:D4)9
10.06.202620.06.202612.06.2026=ЧИСТРАБДНИ(A3; B3; D5)8
⚠️ Внимание: Функция ЧИСТРАБДНИ.INTL (или NETWORKDAYS.INTL) позволяет настроить, какие дни считать выходными. Например, для стран, где выходной — пятница и суббота, используйте параметр 7.

Способ 4: Разница с текущей датой (функция СЕГОДНЯ)

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

  • 📅 Дни до дедлайна: =B2-СЕГОДНЯ() (где B2 — дата дедлайна).
  • 🎂 Дни с дня рождения: =СЕГОДНЯ()-A2 (где A2 — дата рождения).
  • Возраст в днях: =РАЗНДАТ(A2; СЕГОДНЯ(); "D").

Важно: функция СЕГОДНЯ пересчитывается при каждом открытии файла. Если нужно зафиксировать дату, замените её на статическое значение (например, Ctrl+CПравка → Специальная вставка → Значения).

Как обновить дату вручную без переоткрытия файла?

Нажмите F9 — это принудительно пересчитает все формулы, включая СЕГОДНЯ. Или используйте комбинацию Ctrl+Alt+F9 для полного пересчёта.

Способ 5: Разница с учётом времени (дни + часы)

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

  • 📅 Полные дни: =ЦЕЛОЕ(B2-A2);
  • Остаток в часах: =(B2-A2)-ЦЕЛОЕ(B2-A2) → умножьте на 24;
  • ⏱️ Общее количество часов: =(B2-A2)*24.

Пример: разница между 15.05.2026 08:00 и 17.05.2026 16:30:

=B2-A2 → 2,354166667 (2 дня и 0,354166667 дня)

=ЦЕЛОЕ(B2-A2) → 2 (полных дня)

=(B2-A2)*24 → 56,5 (часов)

⚠️ Внимание: Если формат ячейки с результатом — Общий, Excel может округлить дробную часть. Чтобы увидеть часы, измените формат на Числовой с 2–4 знаками после запятой.

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

Даже в простых расчётах пользователи допускают ошибки, которые искажают результат. Вот самые критичные из них:

  1. Текст вместо даты: Если ячейка содержит текст (например, "15 мая" вместо 15.05.2026), Excel не сможет вычесть значения. Исправляйте формат через Формат ячеек → Дата.
  2. Обратный порядок дат: Если начальная дата позже конечной, результат будет отрицательным. Используйте =АБС(B2-A2), чтобы получить модуль разницы.
  3. Неучтённые високосные годы: Функции Excel автоматически учитывают високосные дни (например, 29 февраля), но при ручных расчётах это может стать источником ошибок.

Проверьте корректность данных с помощью функции ЕЧИСЛО:

=ЕЧИСЛО(A2)

Если результат ИСТИНА — ячейка содержит дату. Если ЛОЖЬ — это текст или ошибка.

FAQ: Частые вопросы о разнице дат в Excel

Можно ли посчитать разницу в годах с учётом месяцев? Например, 1 год и 2 месяца.

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

=РАЗНДАТ(A2; B2; "Y") & " год(а), " & РАЗНДАТ(A2; B2; "YM") & " мес."

Это вернёт строку вида "1 год(а), 2 мес.".

Как исключить конкретные дни недели (например, среду) из расчёта?

Используйте ЧИСТРАБДНИ.INTL с пользовательским шаблоном выходных. Например, чтобы исключить субботу (6) и среду (3), укажите:

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

Здесь "0000010" — строка, где 1 обозначает выходной день (среда — 3-й символ, суббота — 6-й).

Почему функция РАЗНДАТ возвращает ошибку #ИМЯ?

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

  • В русской версии: =РАЗНДАТ();
  • В английской: =DATEDIF();
  • В немецкой: =DATUMDIFF().

Если не работает, проверьте регистр букв — функция чувствительна к нему.

Как посчитать разницу в минутах или секундах?

Умножьте результат вычитания дат на:

  • ⏱️ Минуты: =(B2-A2)*1440 (24 часа × 60 минут);
  • Секунды: =(B2-A2)*86400 (24 × 60 × 60).

Убедитесь, что формат ячейки — Общий или Числовой.

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

Да, если используете формулы (например, =B2-A2). Excel пересчитает результат при:

  • Изменении значений в A2 или B2;
  • Ручном пересчёте (F9);
  • Открытии файла (для функции СЕГОДНЯ).

Чтобы отключить автоматический пересчёт, перейдите в Формулы → Параметры вычислений → Вручную.