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

Работа с датами в Microsoft Excel — одна из самых востребованных задач, особенно когда нужно рассчитать временные интервалы. Według статистики, 8 из 10 бухгалтеров и менеджеров проектов ежедневно сталкиваются с необходимостью подсчитать дни между двумя датами — будь то сроки выполнения задач, продолжительность командировок или периоды действия договоров. Но даже опытные пользователи иногда путаются: как учитывать выходные? Как исключить праздники? Или почему формула выдаёт ошибку #ЗНАЧ! вместо числа?

На первый взгляд, задача кажется элементарной: вычесть одну дату из другой. Однако Excel хранит даты как последовательные числа (начиная с 1 января 1900 года), и это открывает широкие возможности для анализа — от базового подсчёта до сложных календарных расчётов с учётом рабочих дней. В этой статье разберём 5 проверенных способов, как посчитать количество дней в Excel, — от простейших до профессиональных, — а также раскроем типичные ошибки и лайфхаки для ускорения работы.

Если вы никогда не работали с датами в таблицах, не переживайте: мы начнём с азов. А для опытных пользователей подготовлены продвинутые приёмы — например, как автоматически подсвечивать просроченные задачи или строить графики по временным интервалам. Готовы? Тогда приступим!

1. Базовый метод: простая разность дат

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

Пример: У вас есть две ячейки — A1 с датой начала проекта (01.01.2026) и B1 с датой окончания (15.01.2026). Чтобы узнать продолжительность, введите в ячейку C1 формулу:

=B1-A1

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

Чтобы избежать проблем:

  • 📅 Убедитесь, что обе ячейки имеют формат Дата (выделите их → правая кнопка → Формат ячеек → Дата).
  • ⚡ Если даты введены как текст (например, "01-01-2026"), используйте функцию =ДАТАЗНАЧ() для преобразования:
    =ДАТАЗНАЧ("15.01.2026")-ДАТАЗНАЧ("01.01.2026")
  • 🔄 Для отображения результата в днях (а не в формате даты) установите для ячейки с формулой формат Общий или Числовой.

Этот метод подходит для 90% задач, но не учитывает рабочие/выходные дни. Если вам нужно исключить субботы и воскресенья, читайте следующий раздел.

2. Подсчёт только рабочих дней (исключаем выходные)

Для расчёта рабочих дней без учёта суббот и воскресений в Excel есть специальная функция — =ЧИСТРАБДНИ(). Она принимает три аргумента:

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

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

Пример: Подсчитаем рабочие дни между 1 и 15 января 2026 года, исключив Новогодние каникулы (с 1 по 8 января). Для этого:

  1. В ячейке A1 укажите дату начала: 01.01.2026.
  2. В B1 — дату окончания: 15.01.2026.
  3. В диапазоне D1:D8 перечислите праздничные дни (1–8 января).
  4. В ячейке C1 введите формулу:
    =ЧИСТРАБДНИ(A1; B1; D1:D8)

    Результат — 5 рабочих дней (с 9 по 15 января, без учёта выходных).

Если праздников нет, третий аргумент можно опустить:

=ЧИСТРАБДНИ(A1; B1)
Что делать, если функция ЧИСТРАБДНИ отсутствует?

В старых версиях Excel (до 2007 года) этой функции нет. Альтернатива — использовать комбинацию =ДЕНЬНЕД() и условное форматирование, но это сложнее. Обновите Excel или используйте Google Таблицы, где =NETWORKDAYS() работает стабильно.

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

3. Учёт праздников и нерабочих дней

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

Пошаговая инструкция:

  1. Создайте на листе отдельный столбец (например, E) и перечислите там все праздничные даты за год.
  2. В формуле укажите этот диапазон:
    =ЧИСТРАБДНИ(A1; B1; E1:E10)

    где E1:E10 — ячейки с праздничными датами.

  3. Если праздников много, можно вынести их на отдельный лист (например, Праздники!A1:A20).

Пример расчёта с учётом российских праздников в 2026 году:

Дата начала Дата окончания Праздники (диапазон E1:E5) Формула Результат
01.01.2026 10.01.2026 01.01–08.01 =ЧИСТРАБДНИ(A1; B1; E1:E5) 0
09.01.2026 19.01.2026 01.01–08.01 =ЧИСТРАБДНИ(A2; B2; E1:E5) 7
23.02.2026 01.03.2026 23.02 =ЧИСТРАБДНИ(A3; B3; E6) 4

Создать отдельный лист "Праздники"|Перечислить все нерабочие даты за год|Проверить формат ячеек (должен быть "Дата")|Обновить список при смене года-->

Если праздники повторяются ежегодно (например, 8 Марта), можно автоматизировать их заполнение с помощью функции =ДАТА():

=ДАТА(2026; 3; 8)

где 2026 — год, 3 — март, 8 — число.

Вручную ввожу даты|Использую функцию ЧИСТРАБДНИ с диапазоном|Пользуюсь шаблонами из интернета|Не учитываю праздники-->

4. Расчёт дней между сегодняшней датой и заданной

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

Примеры:

  • 📅 Дней до события:
    =A1-СЕГОДНЯ()

    где A1 — дата будущего события. Если результат отрицательный, событие уже прошло.

  • Дней с момента события:
    =СЕГОДНЯ()-A1
  • ⚠️ Автоматическое обновление: функция СЕГОДНЯ() пересчитывается при каждом открытии файла или изменении данных. Чтобы зафиксировать дату, используйте CTRL + ; (горячие клавиши для вставки статической даты).

Практический кейс: Допустим, у вас есть таблица с сроками оплаты счетов. Чтобы выделить просроченные платежи красным цветом:

  1. Выделите столбец с датами оплаты.
  2. Перейдите в Главная → Условное форматирование → Правила выделения ячеек → Меньше.
  3. В поле введите =СЕГОДНЯ() и выберите красный цвет.

Если вам нужно зафиксировать дату "на сегодня" (например, для отчёта), используйте комбинацию клавиш CTRL + ; — это вставит текущую дату как статическое значение.

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

Иногда важно учитывать не только даты, но и время. Например, если проект начался в 14:00 10 января и закончился в 10:00 12 января, то фактическая продолжительность — 1 день и 20 часов, а не 2 дня.

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

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

Где параметр может быть:

  • "d" — полное количество дней (включая часы).
  • "m" — полное количество месяцев.
  • "y" — полное количество лет.
  • "yd" — дни без учёта годов.
  • "md" — дни без учёта месяцев и годов.

Пример: Подсчитаем дни и часы между 10.01.2026 14:00 и 12.01.2026 10:00.

  1. В ячейке A1 укажите дату и время начала: 10.01.2026 14:00.
  2. В B1 — дату и время окончания: 12.01.2026 10:00.
  3. В C1 введите:
    =РАЗНДАТ(A1; B1; "d") & " дней, " & ТЕКСТ(B1-A1; "[ч] часов")

    Результат: "2 дней, 20 часов".

Важно: функция РАЗНДАТ не учитывает выходные и праздники. Для точных расчётов рабочего времени комбинируйте её с ЧИСТРАБДНИ.

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

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

Ошибка 1: Текст вместо даты

⚠️ Внимание: Если ячейка содержит текст (например, "01-01-2026" вместо 01.01.2026), Excel не сможет выполнить вычитание. Используйте =ДАТАЗНАЧ() для преобразования:
=ДАТАЗНАЧ("01-01-2026")

Ошибка 2: Неправильный региональный формат

В России даты принято записывать как дд.мм.гггг, а в США — мм/дд/гггг. Если Excel неправильно интерпретирует дату (например, 01.02.2026 воспринимается как 1 февраля, а не 2 января), проверьте региональные настройки:

  1. Перейдите в Файл → Параметры → Язык.
  2. Убедитесь, что в разделе Региональные параметры выбрано Русский (Россия).

Ошибка 3: Отрицательное количество дней

Если формула возвращает отрицательное число (например, -5), это означает, что дата окончания раньше даты начала. Проверьте порядок ячеек в формуле:

=КОНЕЦ_ДАТЫ - НАЧАЛО_ДАТЫ  // Правильно

=НАЧАЛО_ДАТЫ - КОНЕЦ_ДАТЫ // Ошибка (результат отрицательный)

Ошибка 4: Функция ЧИСТРАБДНИ игнорирует праздники

Если вы указали диапазон с праздничными датами, но они не исключаются, проверьте:

  • 🔍 Формат ячеек с праздниками (должен быть Дата, а не Текст).
  • 📌 Диапазон в формуле указан корректно (например, E1:E10, а не E1;E10).
  • 🔄 Праздничные даты попадают в интервал между дата_начала и дата_окончания.

7. Визуализация результатов: графики и условное форматирование

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

Способ 1: Гистограмма сроков выполнения

  1. Создайте таблицу с датами начала и окончания задач, а также столбец с количеством дней (используйте формулу из раздела 1).
  2. Выделите данные и перейдите на вкладку Вставка → Гистограмма.
  3. Настройте оси: по горизонтали — названия задач, по вертикали — количество дней.

Способ 2: Условное форматирование для дедлайнов

Чтобы автоматически подсвечивать просроченные задачи:

  1. Выделите столбец с датами окончания.
  2. Перейдите в Главная → Условное форматирование → Правила выделения ячеек → Дата → Прошлая неделя (или настройте своё правило).
  3. Выберите красный цвет для ячеек с просроченными датами.

Способ 3: Диаграмма Ганта

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

  1. Создайте таблицу с задачами, датами начала и продолжительностью в днях.
  2. Постройте Ступенчатую диаграмму (Вставка → Диаграммы → Ступенчатая).
  3. Настройте оси и добавьте линии для визуализации сроков.

Пример таблицы для диаграммы Ганта:

Задача Дата начала Длительность (дни)
Анализ требований 01.01.2026 5
Проектирование 06.01.2026 7
Разработка 13.01.2026 10

8. Автоматизация: макросы и Power Query

Если вам регулярно приходится считать дни в больших таблицах, имеет смысл автоматизировать процесс с помощью макросов или Power Query. Это сэкономит часы ручной работы.

Макрос для подсчёта рабочих дней

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

  1. Нажмите ALT + F11, чтобы открыть редактор VBA.
  2. Вставьте новый модуль (Insert → Module).
  3. Скопируйте следующий код:
    Sub CountWorkDays()
    

    Dim StartDate As Date, EndDate As Date

    StartDate = Selection.Cells(1).Value

    EndDate = Selection.Cells(2).Value

    MsgBox "Рабочих дней: " & Application.WorksheetFunction.NetWorkdays(StartDate, EndDate)

    End Sub

  4. Вернитесь в Excel, выделите две ячейки с датами и запустите макрос (ALT + F8 → CountWorkDays → Выполнить).

Power Query для обработки больших данных

Если у вас тысячи строк с датами, используйте Power Query:

  1. Перейдите на вкладку Данные → Получить данные → Из таблицы/диапазона.
  2. В редакторе Power Query добавьте новый столбец с формулой:
    = Duration.Days([ДатаОкончания] - [ДатаНачала])
  3. Загрузите данные обратно в Excel.

Преимущества автоматизации:

  • Скорость: Обработка тысяч строк за секунды.
  • 🔄 Гибкость: Легко добавлять новые правила (например, исключать дополнительные праздники).
  • 📊 Интеграция: Результаты можно сразу визуализировать в Power BI.
Что такое Power Query?

Power Query — это инструмент в Excel для импорта, преобразования и загрузки данных из разных источников. Он позволяет очищать данные, объединять таблицы и создавать пользовательские столбцы с формулами на языке M. Доступен в версиях Excel 2016 и новее.

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

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

Да, в Google Таблицах используются аналогичные функции:

  • =DATEDIF(A1; B1; "D") — полное количество дней.
  • =NETWORKDAYS(A1; B1; C1:C5) — рабочие дни с учётом праздников (аналог ЧИСТРАБДНИ).

Отличие: в Google Таблицах функция DATEDIF документирована и доступна в списке автозаполнения.

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

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

=ЦЕЛОЕ((B1-A1)/7)

Если нужно округлить до ближайшей недели (например, 8 дней = 2 недели), используйте =ОКРУГЛВВЕРХ():

=ОКРУГЛВВЕРХ((B1-A1)/7; 0)
Почему функция ЧИСТРАБДНИ возвращает ошибку #ИМЯ?

Ошибка #ИМЯ! означает, что Excel не распознаёт имя функции. Возможные причины:

  • Опечатка в названии (правильно: ЧИСТРАБДНИ, а не ЧИСЛОРАБДНЕЙ).
  • Используется нерусская версия Excel (в английской версии функция называется NETWORKDAYS).
  • Устаревшая версия Excel (до 2007 года). Обновите программу или используйте альтернативу:
    =СУММПРОИЗВ(--(ДЕНЬНЕД(СТРОКА(НЕПРАВИЛЬНО(A1:B1));2)<6);--(A1:B1<>""))

    (это сложная формула, лучше обновить Excel).

Как посчитать дни с учётом полурабочих дней (например, суббота — короткий день)?summary>

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

  1. Создайте столбец с коэффициентами для каждого дня недели (например, 1 для полного рабочего дня, 0.5 для полурабочего).
  2. Используйте функцию =ДЕНЬНЕД(), чтобы определить день недели для каждой даты.
  3. Примените =СУММПРОИЗВ() для подсчёта с учётом коэффициентов.

Пример формулы для диапазона дат в A1:A10:

=СУММПРОИЗВ(--(ДЕНЬНЕД(A1:A10;2)<6); --(A1:A10<>""); ЕСЛИ(ДЕНЬНЕД(A1:A10;2)=6; 0,5; 1))

Здесь суббота (день недели = 6) считается как 0.5 дня.

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

Да, Excel Online поддерживает все основные функции для работы с датами:

  • =B1-A1 — разность дат.
  • =NETWORKDAYS(A1; B1) — рабочие дни (аналог ЧИСТРАБДНИ, но на английском).
  • =TODAY() — текущая дата (аналог СЕГОДНЯ()).

Ограничение: в Excel Online нет поддержки макросов (VBA), но все остальные функции работают так же, как в десктопной версии.