Как посчитать дни в Excel: полное руководство с формулами и примерами

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

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

1. Базовый способ: простая разница между датами

Самый очевидный метод — вычесть одну дату из другой. Excel автоматически преобразует разницу в количество дней, так как хранит даты в виде последовательных чисел (начиная с 1 января 1900 года, которое равно 1). Например, если в ячейке A1 у вас дата 01.01.2026, а в B110.01.2026, формула =B1-A1 вернёт 9.

Но здесь есть подводные камни:

  • 📅 Если первая дата позже второй, результат будет отрицательным (например, =A1-B1 даст -9). Чтобы избежать этого, используйте функцию АБС: =АБС(B1-A1).
  • 🔢 Excel может воспринимать текст как дату некорректно. Например, если вы введёте 1.12, программа расценит это как 1 декабря, а не 1,12. Всегда проверяйте формат ячейки (Формат ячеек → Дата).
  • ⚡ Формат ячейки с результатом должен быть Общий или Числовой, иначе Excel может отобразить дату вместо числа дней.

Пример формулы с учётом абсолютного значения:

=АБС(ДАТАЗНАЧ("10.01.2026") - ДАТАЗНАЧ("01.01.2026"))

2. Функция РАЗНДАТ: гибкость и точность

Функция РАЗНДАТ (англ. DATEDIF) — это скрытая "жемчужина" Excel, которой нет в списке функций, но она работает. Её синтаксис:

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

Где единица_измерения может принимать значения:

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

Пример: чтобы посчитать дни между 01.06.2026 и 15.07.2026, используйте:

=РАЗНДАТ("01.06.2026"; "15.07.2026"; "d")

Результат: 44.

Почему РАЗНДАТ не видна в списке функций?

Функция РАЗНДАТ — это наследие старых версий Excel (ещё с Lotus 1-2-3). Microsoft оставила её для совместимости, но не документирует официально. Введите её вручную — автозаполнение не сработает.

Важно: РАЗНДАТ не учитывает високосные годы при расчёте разницы в годах ("y"), но корректно считает дни ("d") с их учётом. Например, разница между 28.02.2023 и 28.02.2026 по параметру "d" будет 366 (2026 год — високосный).

3. Подсчёт рабочих дней: функция ЧИСТРАБДНИ

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

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

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

Пример: подсчитаем рабочие дни между 01.01.2026 (понедельник) и 10.01.2026 (среда), исключив 7 января (праздник):

=ЧИСТРАБДНИ("01.01.2026"; "10.01.2026"; A1:A1)

Где в ячейке A1 указана дата 07.01.2026. Результат: 7 (вместо 9 дней общего периода).

Убедитесь, что даты введены корректно|Проверьте формат ячеек (должен быть "Дата")|Создайте отдельный столбец для праздников|Используйте абсолютные ссылки на диапазон праздников (например, $A$1:$A$10)

-->

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

4. Динамический подсчёт: сегодняшняя дата и относительные ссылки

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

Примеры:

  • 📅 Дней до 31.12.2026: =ДАТАЗНАЧ("31.12.2026")-СЕГОДНЯ().
  • 📅 Дней с 01.01.2026: =СЕГОДНЯ()-ДАТАЗНАЧ("01.01.2026").
  • 📅 Рабочих дней до конца месяца: =ЧИСТРАБДНИ(СЕГОДНЯ(); КОНМЕСЯЦА(СЕГОДНЯ();0)).

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

📊 Как часто вы используете функцию СЕГОДНЯ() в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

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

5. Продвинутые техники: условное форматирование и массивы

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

  1. Выделите ячейки с результатом (например, столбец с днями).
  2. Перейдите в Главная → Условное форматирование → Создать правило.
  3. Выберите Форматировать только ячейки, которые содержат.
  4. Установите условие: Значение меньше 5 и выберите красный цвет заливки.

Для сложных расчётов (например, подсчёта дней между несколькими парами дат) используйте формулы массива. Например, чтобы посчитать дни между датами в столбцах A и B и вывести среднее значение:

=СРЗНАЧ(B2:B10-A2:A10)

Введите эту формулу как формулу массива, нажав Ctrl + Shift + Enter (в новых версиях Excel это не требуется).

Ещё один полезный приём — использование функции ЕСЛИ для категоризации дней. Например, чтобы определить, просрочена ли задача:

=ЕСЛИ(СЕГОДНЯ()>B2; "Просрочено"; "В срок")

Где B2 — ячейка с датой дедлайна.

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

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

Ошибка Причина Решение
#ЗНАЧ! Ячейка содержит текст вместо даты Проверьте формат ячейки или используйте ДАТАЗНАЧ
Отрицательное число дней Начальная дата позже конечной Используйте АБС или поменяйте даты местами
Некорректный результат в ЧИСТРАБДНИ Праздники указаны в неправильном формате Убедитесь, что праздники — это даты, а не текст
Функция РАЗНДАТ не работает Опечатка в названии или аргументах Введите функцию вручную, проверьте разделители (;)

⚠️ Внимание: Если вы копируете даты из внешних источников (например, с сайтов), Excel может воспринимать их как текст. Используйте функцию ДАТАЗНАЧ или инструмент Текст по столбцам (Данные → Текст по столбцам), чтобы преобразовать текст в даты.

Ещё одна частая проблема — разные региональные настройки. Например, в американском Excel даты вводятся как MM/DD/YYYY, а в российском — DD.MM.YYYY. Если файл создан в другой локали, Excel может путать месяцы и дни. Чтобы исправить это, перейдите в Файл → Параметры → Язык → Региональные параметры и выберите нужную страну.

7. Практические примеры: шаблоны для разных задач

Рассмотрим готовые решения для типичных сценариев:

1. Календарь проектов с подсчётом дней:

  • 📌 Столбец A: дата начала задачи.
  • 📌 Столбец B: дата окончания.
  • 📌 Столбец C: =РАЗНДАТ(A2; B2; "d") — общая длительность.
  • 📌 Столбец D: =ЧИСТРАБДНИ(A2; B2) — рабочие дни.
  • 📌 Столбец E: =ЕСЛИ(B2<СЕГОДНЯ(); "Завершено"; "В процессе") — статус.

2. Отслеживание сроков годности:

  • 🥛 Столбец A: название продукта.
  • 📅 Столбец B: дата производства.
  • ⏳ Столбец C: срок годности (в днях).
  • ⚠️ Столбец D: =ЕСЛИ(СЕГОДНЯ()>B2+C2; "Просрочено"; "Годен").

3. Анализ времени выполнения заказов:

  • 📦 Столбец A: номер заказа.
  • 📅 Столбец B: дата заказа.
  • 📅 Столбец C: дата доставки.
  • ⏱️ Столбец D: =ЧИСТРАБДНИ(B2; C2) — время выполнения.
  • 📊 Столбец E: =СРЗНАЧ(D2:D100) — среднее время (внизу таблицы).

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

Как посчитать дни между датами в Google Таблицах?

В Google Таблицах используются те же функции, что и в Excel: =B1-A1 для простой разницы, =DATEDIF (аналог РАЗНДАТ), =NETWORKDAYS (аналог ЧИСТРАБДНИ). Синтаксис идентичен, но разделителем аргументов является запятая (,), а не точка с запятой (;).

Почему Excel показывает ###### вместо даты?

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

Как посчитать дни с учётом только конкретных дней недели?

Используйте комбинацию функций ЧИСТРАБДНИ.МЕЖД и ДЕНЬНЕД. Например, чтобы посчитать только понедельники между двумя датами, создайте вспомогательный столбец с формулой =ЕСЛИ(ДЕНЬНЕД(A1;2)=1;1;0) (где 1 — понедельник) и просуммируйте его.

Можно ли посчитать дни между датой и временем?

Да, но для этого нужно привести данные к единому формату. Например, если в ячейке A1 дата 01.01.2026 10:00, а в B102.01.2026 14:30, формула =B1-A1 вернёт 1,19 (1 день и 4,5 часа). Чтобы получить только дни, используйте =ЦЕЛОЕ(B1-A1).

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

Excel не поддерживает автоматическое обновление без открытия файла, но вы можете:

  1. Использовать СЕГОДНЯ — она обновится при следующем открытии.
  2. Создать макрос на VBA, который будет обновлять данные по расписанию (требует навыков программирования).
  3. Использовать Power Query для подключения к внешнему источнику с актуальной датой.