Почему подсчёт дней в Excel — это не только вычитание
На первый взгляд, посчитать количество дней между двумя датами в Microsoft Excel кажется тривиальной задачей: взял дату окончания, вычел дату начала — и готов результат. Но на практике всё гораздо сложнее. Что если нужно исключить выходные? А если учитывать только рабочие дни с учётом государственных праздников? Или посчитать дни до конкретной даты от сегодняшнего дня, причём так, чтобы формула автоматически обновлялась?
В этой статье мы разберём 5 основных способов подсчёта дней в Excel — от элементарных до продвинутых, которые используют профессиональные аналитики. Вы узнаете, как избежать распространённых ошибок (например, когда Excel вдруг начинает считать даты как текст), как работать с динамическими диапазонами и даже как создать свой календарь рабочих дней с учётом праздников вашей страны. А в конце — бонус: готовая таблица с формулами, которую можно скопировать и использовать сразу.
Неважно, ведёте ли вы проектный план, рассчитываете сроки поставок или анализируете временные ряды — умение правильно считать дни в Excel сэкономит вам часы ручной работы. Начнём с самого простого.
Способ 1: Базовый подсчёт — просто вычтите одну дату из другой
Самый очевидный метод — использовать арифметическую разницу между двумя датами. Excel хранит даты как последовательные числа (начиная с 1 января 1900 года, которое равно 1), поэтому вычитание работает интуитивно.
Формула выглядит так:
=КОНДАТА - НАЧДАТА
Где КОНДАТА и НАЧДАТА — это ячейки с датами. Например, если в ячейке A2 у вас 15.05.2026, а в B2 — 20.05.2026, то формула =B2-A2 вернёт 5.
- ✅ Плюсы: максимально просто, работает во всех версиях Excel.
- ❌ Минусы: не учитывает выходные, праздники или рабочие дни.
- 🔄 Нюанс: если результат отображается как дата (например,
05.01.1900), измените формат ячейки наОбщийилиЧисловой.
⚠️ Внимание: Если одна из ячеек содержит текст вместо даты (например,"15 мая"без форматирования), Excel вернёт ошибку#ЗНАЧ!. Проверьте формат ячеек: выделите их и нажмитеCtrl+1, затем выберите категориюДата.
Способ 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 ошибок и способы их решения:
- Ошибка
#ЗНАЧ!:Причина: одна из ячеек содержит текст вместо даты. Решение: проверьте формат ячейки (
Ctrl+1 → Дата) или используйте функцию=ДАТАЗНАЧ(), чтобы преобразовать текст в дату (например,=ДАТАЗНАЧ("15.05.2026")). - Неправильный результат при вычитании:
Причина: ячейки отформатированы как текст. Решение: выделите столбец с датами и выполните
Данные → Текст по столбцам → Готово(Excel автоматически распознает даты). - Функция
ЧИСТРАБДНИвозвращает ошибку:Причина: диапазон праздников содержит пустые ячейки или недаты. Решение: очистите диапазон или используйте только ячейки с корректными датами.
- Дата отображается как число (например,
45341):Причина: ячейка имеет формат
Общий. Решение: измените формат наДата(Ctrl+1). РАЗНДАТне работает в новой версии Excel:Причина: в некоторых локализациях функция называется иначе. Решение: используйте английскую версию
DATEDIFили проверьте региональные настройки.
Если ни один из способов не помог, попробуйте альтернативный подход: экспортируйте данные в Power Query (вкладка Данные → Получить данные) и преобразуйте текстовые даты в формат Date с помощью инструмента Заменить тип.
Продвинутый уровень: создаём календарь рабочих дней
Для сложных расчётов (например, графика смен или производственного календаря) можно создать свою таблицу с учётом:
- 📅 Индивидуальных выходных (например, если ваша компания работает по скользящему графику).
- 🎉 Региональных праздников (например, в Москве и Татарстане разные нерабочие дни).
- ⏳ Переносов выходных (когда выходной переносится на другой день).
Алгоритм создания:
- Создайте столбец с датами на год вперёд (используйте
=ДАТА(2026;1;1)и протяните вниз). - Добавьте столбец с формулой, проверяющей день недели:
=ЕСЛИ(ИЛИ(ДЕНЬНЕД(A2;2)>5; СЧЁТЕСЛИ($D$2:$D$10;A2));"Выходной";"Рабочий")где
$D$2:$D$10— диапазон с праздниками. - Для подсчёта рабочих дней между двумя датами используйте
=СЧЁТЕСЛИс фильтром по столбцу "Рабочий".
Готовый шаблон такого календаря можно скачать здесь (замените ссылку на актуальную).
FAQ: Ответы на частые вопросы
Как посчитать дни между датами в разных форматах (например, "15 мая" и "15/05/2026")?
Используйте функцию =ДАТАЗНАЧ(), чтобы преобразовать текст в дату:
=ДАТАЗНАЧ("15 мая 2026") - ДАТАЗНАЧ("10/05/2026")
Если формат не распознаётся, попробуйте заменить разделители (например, точку на запятую) или укажите год явно.
Можно ли посчитать дни с учётом только конкретных дней недели (например, только понедельники)?
Да, используйте комбинацию функций ДЕНЬНЕД и СУММПРОИЗВ:
=СУММПРОИЗВ(--(ДЕНЬНЕД(СТРОКА(ДВССЫЛ("A"&ПОСТРОЧН(A1:A10;1;10)));2)=1))
Где 1 — это понедельник (2 — вторник, и т. д.). Для диапазона дат A1:A10.
Почему функция ЧИСТРАБДНИ не учитывает мой праздник?
Проверьте:
- Формат ячейки с праздником — должен быть
Дата. - Диапазон праздников указан правильно (например,
D2:D5, а неD2:D2). - В диапазоне нет пустых ячеек или текста.
Если праздник выпадает на выходной, он автоматически игнорируется — это нормально.
Как посчитать дни в Excel Online или Google Sheets?
Формулы работают аналогично, но есть нюансы:
- В Google Sheets функция
РАЗНДАТназываетсяDATEDIF(английская версия). - В Excel Online может не работать
ТДАТА()— используйтеСЕГОДНЯ().
Можно ли автоматически обновлять даты при открытии файла?
Да, но с оговорками:
- Функции
СЕГОДНЯ()иТДАТА()обновляются автоматически. - Для принудительного пересчёта нажмите
F9. - Чтобы отключить автоматический пересчёт:
Формулы → Параметры вычислений → Вручную.