Как в Excel подсчитать количество дней: от разницы дат до рабочих календарей

Почему подсчёт дней в Excel — это не только вычитание

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

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

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

Способ 1: Базовый подсчёт — просто вычтите одну дату из другой

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

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

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

Где КОНДАТА и НАЧДАТА — это ячейки с датами. Например, если в ячейке A2 у вас 15.05.2026, а в B220.05.2026, то формула =B2-A2 вернёт 5.

  • Плюсы: максимально просто, работает во всех версиях Excel.
  • Минусы: не учитывает выходные, праздники или рабочие дни.
  • 🔄 Нюанс: если результат отображается как дата (например, 05.01.1900), измените формат ячейки на Общий или Числовой.
⚠️ Внимание: Если одна из ячеек содержит текст вместо даты (например, "15 мая" без форматирования), Excel вернёт ошибку #ЗНАЧ!. Проверьте формат ячеек: выделите их и нажмите Ctrl+1, затем выберите категорию Дата.
📊 Как часто вы используете даты в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

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

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

Синтаксис:

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

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

  • "D" — количество дней;
  • "M" — количество полных месяцев;
  • "Y" — количество полных лет.

Пример: =РАЗНДАТ(A2; B2; "D") вернёт то же, что и простое вычитание, но =РАЗНДАТ(A2; B2; "YM") покажет количество месяцев без учёта лет.

Формула Пример дат Результат Пояснение
=РАЗНДАТ(A2; B2; "D") 01.01.2026 и 15.01.2026 14 Количество дней между датами
=РАЗНДАТ(A2; B2; "M") 15.01.2026 и 10.03.2026 1 Полных месяцев (февраль не считается)
=РАЗНДАТ(A2; B2; "YD") 01.01.2026 и 15.03.2026 73 Дни без учёта лет (с начала года)
⚠️ Внимание: Функция РАЗНДАТ не документирована в официальной справке Excel, но работает во всех версиях. В некоторых локализациях (например, немецкой) её название может отличаться — используйте DATEDIF в английской версии.

Способ 3: ЧИСТРАБДНИ — учитываем только рабочие дни

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

Синтаксис:

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

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

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

Пример: между 01.05.2026 (среда) и 10.05.2026 (пятница) с учётом праздников 01.05 и 09.05 функция вернёт 6 рабочих дней (а не 8, как при простом вычитании).

  • 📅 Как добавить праздники: создайте отдельный столбец с датами праздников в формате ДД.ММ.ГГГГ.
  • 🔄 Нюанс: если нач_дата или кон_дата выпадает на выходной, она не учитывается.
  • Ошибка: если диапазон праздников содержит недаты (например, текст), Excel вернёт #ЗНАЧ!.

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

Способ 4: РАБДЕНЬ — когда нужно узнать конечную дату

Обратная задача: вы знаете стартовую дату и количество рабочих дней, но нужно найти дату завершения. Например, если проект начинается 01.06.2026 и длится 10 рабочих дней, когда он закончится? Здесь поможет функция РАБДЕНЬ (или WORKDAY).

Синтаксис:

=РАБДЕНЬ(нач_дата; дни; [праздники])

Пример: =РАБДЕНЬ(A2; 10; D2:D5) вернёт дату через 10 рабочих дней от A2, исключая выходные и праздники из диапазона D2:D5.

Эта функция незаменима для:

  • 📊 Планирования проектов (расчёт дедлайнов).
  • 📦 Логистики (сроки доставки без учёта выходных).
  • 💼 HR-процессов (расчёт сроков уведомлений, испытательных периодов).
⚠️ Внимание: Если в аргументе дни указать отрицательное число (например, -5), функция вернёт дату на 5 рабочих дней раньше стартовой. Это удобно для расчёта обратных сроков (например, "когда нужно начать, чтобы завершить к 30.06.2026").
Что будет, если не указать праздники?

Функция РАБДЕНЬ по умолчанию учитывает только субботу и воскресенье. Если в вашем регионе есть дополнительные нерабочие дни (например, 8 марта или religious holidays), их нужно добавить в диапазон [праздники]. Иначе расчёт будет неточным!

Способ 5: Динамические формулы с СЕГОДНЯ и ТДАТА

Часто нужно посчитать дни от сегодняшней даты или до текущего момента. Для этого в Excel есть две волшебные функции:

  • СЕГОДНЯ() — возвращает текущую дату (обновляется при каждом открытии файла).
  • ТДАТА() — возвращает текущие дату и время (обновляется автоматически).

Примеры использования:

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

— посчитает, сколько дней прошло с даты в ячейке A2 до сегодня.

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

— посчитает рабочие дни с A2 до сегодня, исключая праздники.

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

Задача Формула Пример результата (на 15.05.2026)
Дни до Нового Года =ДАТА(2026;1;1) - СЕГОДНЯ() 230
Рабочие дни до дедлайна =ЧИСТРАБДНИ(СЕГОДНЯ(); A2; D2:D5) 12 (если A2=30.05.2026)
Дата через 5 рабочих дней =РАБДЕНЬ(СЕГОДНЯ(); 5; D2:D5) 22.05.2026

Распространённые ошибки и как их избежать

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

  1. Ошибка #ЗНАЧ!:

    Причина: одна из ячеек содержит текст вместо даты. Решение: проверьте формат ячейки (Ctrl+1 → Дата) или используйте функцию =ДАТАЗНАЧ(), чтобы преобразовать текст в дату (например, =ДАТАЗНАЧ("15.05.2026")).

  2. Неправильный результат при вычитании:

    Причина: ячейки отформатированы как текст. Решение: выделите столбец с датами и выполните Данные → Текст по столбцам → Готово (Excel автоматически распознает даты).

  3. Функция ЧИСТРАБДНИ возвращает ошибку:

    Причина: диапазон праздников содержит пустые ячейки или недаты. Решение: очистите диапазон или используйте только ячейки с корректными датами.

  4. Дата отображается как число (например, 45341):

    Причина: ячейка имеет формат Общий. Решение: измените формат на Дата (Ctrl+1).

  5. РАЗНДАТ не работает в новой версии Excel:

    Причина: в некоторых локализациях функция называется иначе. Решение: используйте английскую версию DATEDIF или проверьте региональные настройки.

Если ни один из способов не помог, попробуйте альтернативный подход: экспортируйте данные в Power Query (вкладка Данные → Получить данные) и преобразуйте текстовые даты в формат Date с помощью инструмента Заменить тип.

Продвинутый уровень: создаём календарь рабочих дней

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

  • 📅 Индивидуальных выходных (например, если ваша компания работает по скользящему графику).
  • 🎉 Региональных праздников (например, в Москве и Татарстане разные нерабочие дни).
  • Переносов выходных (когда выходной переносится на другой день).

Алгоритм создания:

  1. Создайте столбец с датами на год вперёд (используйте =ДАТА(2026;1;1) и протяните вниз).
  2. Добавьте столбец с формулой, проверяющей день недели:
    =ЕСЛИ(ИЛИ(ДЕНЬНЕД(A2;2)>5; СЧЁТЕСЛИ($D$2:$D$10;A2));"Выходной";"Рабочий")

    где $D$2:$D$10 — диапазон с праздниками.

  3. Для подсчёта рабочих дней между двумя датами используйте =СЧЁТЕСЛИ с фильтром по столбцу "Рабочий".

Готовый шаблон такого календаря можно скачать здесь (замените ссылку на актуальную).

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

Как посчитать дни между датами в разных форматах (например, "15 мая" и "15/05/2026")?

Используйте функцию =ДАТАЗНАЧ(), чтобы преобразовать текст в дату:

=ДАТАЗНАЧ("15 мая 2026") - ДАТАЗНАЧ("10/05/2026")

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

Можно ли посчитать дни с учётом только конкретных дней недели (например, только понедельники)?

Да, используйте комбинацию функций ДЕНЬНЕД и СУММПРОИЗВ:

=СУММПРОИЗВ(--(ДЕНЬНЕД(СТРОКА(ДВССЫЛ("A"&ПОСТРОЧН(A1:A10;1;10)));2)=1))

Где 1 — это понедельник (2 — вторник, и т. д.). Для диапазона дат A1:A10.

Почему функция ЧИСТРАБДНИ не учитывает мой праздник?

Проверьте:

  1. Формат ячейки с праздником — должен быть Дата.
  2. Диапазон праздников указан правильно (например, D2:D5, а не D2:D2).
  3. В диапазоне нет пустых ячеек или текста.

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

Как посчитать дни в Excel Online или Google Sheets?

Формулы работают аналогично, но есть нюансы:

  • В Google Sheets функция РАЗНДАТ называется DATEDIF (английская версия).
  • В Excel Online может не работать ТДАТА() — используйте СЕГОДНЯ().
Можно ли автоматически обновлять даты при открытии файла?

Да, но с оговорками:

  • Функции СЕГОДНЯ() и ТДАТА() обновляются автоматически.
  • Для принудительного пересчёта нажмите F9.
  • Чтобы отключить автоматический пересчёт: Формулы → Параметры вычислений → Вручную.