Работа с датами в Microsoft Excel — одна из самых востребованных задач среди офисных сотрудников, бухгалтеров и менеджеров проектов. Часто требуется проанализировать данные исключительно по рабочим дням, исключив выходные (субботу и воскресенье) и праздники. Например, при расчёте сроков выполнения задач, анализе продаж или планировании графиков работы. Без правильных инструментов эта задача может превратиться в рутинную проверку каждой даты вручную — а это ошибки, потеря времени и неэффективность.
К счастью, Excel предлагает несколько способов автоматизировать процесс: от простых функций вроде РАБДЕНЬ до комплексных формул с учётом региональных праздников. В этой статье мы разберём 5 проверенных методов, которые подойдут как новичкам, так и опытным пользователям. Вы узнаете, как быстро отфильтровать рабочие дни в таблице, построить динамические отчёты и даже создать календарь с учётом производственного календаря вашей страны.
Прежде чем переходить к практике, важно понять ключевое отличие методов: некоторые функции (например, РАБДЕНЬ) работают с относительными датами (например, "прибавить 10 рабочих дней к сегодняшней дате"), а другие позволяют фильтровать существующие данные (например, вывести только строки с рабочими днями из большого списка). Выбор метода зависит от вашей задачи — и мы поможем определиться, какой подойдёт именно вам.
1. Базовая функция РАБДЕНЬ: простой способ исключить выходные
Функция РАБДЕНЬ (англ. WORKDAY) — самый доступный инструмент для работы с рабочими днями. Она позволяет прибавить или отнять заданное количество рабочих дней от любой даты, автоматически пропуская субботу и воскресенье. Синтаксис функции прост:
=РАБДЕНЬ(нач_дата; дни; [праздники])
где:
- 📅 нач_дата — исходная дата (например,
=СЕГОДНЯ()или ячейка с датой); - ➕ дни — количество рабочих дней, которое нужно прибавить (или отнять, если указать отрицательное значение);
- 🎉 [праздники] — необязательный аргумент: диапазон ячеек с датами праздников.
Пример: если сегодня 10.05.2026 (пятница), то формула =РАБДЕНЬ(СЕГОДНЯ(); 5) вернёт 17.05.2026 (пятница), пропустив субботу и воскресенье. Без учёта праздников!
⚠️
Внимание: Функция РАБДЕНЬ не фильтрует существующие данные — она только рассчитывает новые даты. Если вам нужно отобразить только рабочие дни из готового списка, читайте следующий раздел.
2. Фильтрация рабочих дней с помощью условного форматирования
Если у вас есть столбец с датами, и нужно визуально выделить рабочие дни, используйте условное форматирование. Этот метод не удаляет строки, но делает их анализ удобнее:
- Выделите диапазон с датами.
- Перейдите на вкладку
Главная → Условное форматирование → Создать правило. - Выберите
Использовать формулу для определения форматируемых ячеек. - Введите формулу:
=ДЕНЬНЕД(А1;2)<6, гдеА1— первая ячейка диапазона. - Задайте формат (например, зелёный фон для рабочих дней).
Формула ДЕНЬНЕД(дата; 2) возвращает номер дня недели (от 1 — понедельник до 7 — воскресенье). Условие <6 исключает субботу (6) и воскресенье (7).
🔹 Продвинутый вариант: чтобы исключить ещё и праздники, модифицируйте формулу:
=И(ДЕНЬНЕД(А1;2)<6; СЧЁТЕСЛИ($D$1:$D$10; A1)=0)
где $D$1:$D$10 — диапазон с датами праздников.
Почему формула возвращает ошибку #ЗНАЧ!?
Ошибка #ЗНАЧ! появляется, если в ячейке с датой хранится текст или пустое значение. Проверьте формат ячеек (должен быть "Дата") и удалите пустые строки.
3. Функция ДЕНЬНЕД + фильтр: ручная фильтрация данных
Для физического отображения только рабочих дней в таблице комбинируйте функцию ДЕНЬНЕД с встроенным фильтром Excel:
- Добавьте вспомогательный столбец рядом с датами.
- Введите формулу:
=ЕСЛИ(ДЕНЬНЕД(А2;2)<6; "Рабочий"; "Выходной"). - Примените фильтр к таблице (
Данные → Фильтр). - Отфильтруйте по значению
"Рабочий".
✅ Плюсы метода: не требует знания сложных формул, работает в любых версиях Excel.
❌ Минусы: не учитывает праздники (для этого нужно расширять формулу, как в предыдущем разделе).
Критическая особенность: если в вашей стране рабочая неделя начинается с воскресенья (например, в ОАЭ или Израиле), замените ДЕНЬНЕД(А2;2) на ДЕНЬНЕД(А2;1) — это изменит нумерацию дней недели.
4. Продвинутые формулы: РАБДЕНЬ.МЕЖД с учётом праздников
Функция РАБДЕНЬ.МЕЖД (англ. WORKDAY.INTL) — усовершенствованная версия РАБДЕНЬ, позволяющая:
- 📅 Настраивать какие дни считать выходными (например, пятница и суббота для мусульманских стран);
- 🎭 Учитывать переменные выходные (например, если в вашей компании выходной — среда);
- 📊 Работать с диапазонами дат (например, рассчитать количество рабочих дней между двумя датами).
Синтаксис:
=РАБДЕНЬ.МЕЖД(нач_дата; кон_дата; [выходные]; [праздники])
где [выходные] — это строка или число, обозначающее выходные дни. Например:
"0000011"— выходные суббота и воскресенье (стандарт);"0000110"— выходные пятница и суббота;11— выходные суббота и воскресенье (сокращённая запись).
Пример: чтобы посчитать рабочие дни между 01.05.2026 и 31.05.2026 с выходными в субботу и воскресенье, используйте:
=РАБДЕНЬ.МЕЖД("01.05.2026"; "31.05.2026"; 1; $D$1:$D$10)
где $D$1:$D$10 — диапазон с праздниками (например, 01.05.2026 и 09.05.2026).
📌 Совет: Чтобы автоматически подтянуть праздники из производственного календаря, используйте Power Query (вкладка Данные → Получить данные). Это позволит импортировать данные с внешних источников (например, с сайта правительства) и обновлять их ежегодно.
☑️ Подготовка данных для РАБДЕНЬ.МЕЖД
5. Динамические массивы: фильтрация рабочих дней без вспомогательных столбцов
В Excel 365 и Excel 2021 появилась поддержка динамических массивов, которые позволяют фильтровать данные без создания дополнительных столбцов. Например, чтобы вывести только рабочие дни из списка в столбце A2:A100, используйте:
=ФИЛЬТР(A2:A100; (ДЕНЬНЕД(A2:A100;2)<6) * (СЧЁТЕСЛИ($D$2:$D$10; A2:A100)=0))
где:
A2:A100— диапазон с датами;$D$2:$D$10— диапазон с праздниками.
Формула вернёт динамический массив — список дат, который автоматически обновляется при изменении исходных данных. Этот метод идеален для создания интерактивных отчётов или дашбордов.
⚠️
Внимание: Динамические массивы работают только в последних версиях Excel. В Excel 2019 и старше эта формула вернёт ошибку #ИМЯ?. Для старых версий используйте метод с вспомогательным столбцом (раздел 3).
🔹 Бонус: Чтобы отсортировать рабочие дни по возрастанию, оберните формулу в СОРТ:
=СОРТ(ФИЛЬТР(A2:A100; (ДЕНЬНЕД(A2:A100;2)<6)))
6. Power Query: автоматизация для больших данных
Если вы работаете с тысячами строк (например, анализируете данные за несколько лет), ручная фильтрация станет кошмаром. В этом случае Power Query — ваш спаситель. Этот инструмент позволяет:
- 📤 Импортировать данные из разных источников (Excel, CSV, базы данных);
- 🔄 Автоматически фильтровать рабочие дни без формул;
- 🔄 Обновлять отчёты одним кликом.
Алгоритм действий:
- Перейдите на вкладку
Данные → Получить данные → Из таблицы/диапазона. - В открывшемся редакторе Power Query выделите столбец с датами.
- Нажмите
Добавить столбец → Пользовательский столбец. - Введите формулу:
= if Date.DayOfWeek([Date], Day.Monday) < 5 then "Рабочий" else "Выходной"(замените[Date]на название вашего столбца). - Отфильтруйте строки по значению
"Рабочий". - Нажмите
Закрыть и загрузить.
💡 Преимущество: Power Query сохраняет все шаги преобразования. Если исходные данные обновятся, достаточно нажать Обновить все на вкладке Данные — и отчёт пересчитается автоматически.
| Метод | Подходит для | Учитывает праздники | Требует знания формул |
|---|---|---|---|
РАБДЕНЬ |
Расчёт новых дат | Да (опционально) | Нет |
| Условное форматирование | Визуальный анализ | Да (с модификацией) | Базовый уровень |
Фильтр + ДЕНЬНЕД |
Фильтрация существующих данных | Да (с модификацией) | Средний уровень |
РАБДЕНЬ.МЕЖД |
Сложные расчёты с переменными выходными | Да | Продвинутый уровень |
| Динамические массивы | Интерактивные отчёты (Excel 365) | Да | Продвинутый уровень |
FAQ: Частые вопросы о рабочих днях в Excel
Как исключить праздники, если они каждый год разные (например, Пасха)?
Создайте отдельный лист с формулами для расчёта переходящих праздников. Например, для Пасхи в православной традиции используйте алгоритм Мееса:
=ЦЕЛОЕ("19"&ПРАВСИМВ(МОД(ГОД(A1);19)+1)/19)*21+24-МОД("19"&ПРАВСИМВ(МОД(ГОД(A1);19)+1)/19)*21+24;30)
Затем добавьте полученные даты в диапазон праздников для функций РАБДЕНЬ или РАБДЕНЬ.МЕЖД.
Можно ли автоматически подтянуть праздники из интернета?
Да, с помощью Power Query. Например, для России:
- Перейдите в
Данные → Получить данные → Из других источников → Из веб. - Вставьте URL производственного календаря (например, с сайта КонсультантПлюс).
- Преобразуйте данные в таблицу и загрузите в Excel.
Обновляйте данные раз в год.
Почему функция РАБДЕНЬ возвращает неверную дату?
Частые причины:
- 📅 Неверный формат ячейки: проверьте, что исходная дата имеет формат "Дата", а не "Текст".
- 🎭 Ошибка в диапазоне праздников: убедитесь, что ячейки с праздниками также отформатированы как даты.
- 🔢 Отрицательное значение дней: если вы отнимаете дни, используйте отрицательное число (например,
=РАБДЕНЬ(A1; -5)).
Как посчитать количество рабочих дней между двумя датами?
Используйте функцию ЧИСТРАБДНИ (англ. NETWORKDAYS):
=ЧИСТРАБДНИ("01.01.2026"; "31.12.2026"; $D$1:$D$10)
где $D$1:$D$10 — диапазон с праздниками. Функция вернёт количество рабочих дней в заданном периоде.
Можно ли настроить функцию РАБДЕНЬ.МЕЖД для 6-дневной рабочей недели?
Да. Например, если выходной только воскресенье, используйте параметр [выходные] со значением "0000001":
=РАБДЕНЬ.МЕЖД(A1; B1; "0000001")
где "1" в конце строки обозначает воскресенье как выходной.