Как в Excel проставить даты по порядку без выходных: 5 проверенных способов

Почему стандартное автозаполнение дат в Excel не подходит для рабочих дней?

Вы когда-нибудь пытались создать в Microsoft Excel последовательность дат для рабочего календаря, но сталкивались с тем, что программа упорно включает субботу и воскресенье? Стандартная функция автозаполнения (Ctrl + E или перетаскивание маркера) игнорирует понятие "рабочие дни" — она просто добавляет +1 день к предыдущей дате. В результате вам приходится вручную удалять выходные, теряя время на монотонную работу.

Эта проблема особенно актуальна для HR-менеджеров, бухгалтеров и проектных менеджеров, которые ведут графики сдачи отчётности, дедлайны задач или расписания смен. Например, при планировании ежедневных отчётов на месяц вручную убирать 8-10 выходных дат — нерационально. К счастью, в Excel есть как минимум 5 способов автоматизировать этот процесс, и мы разберём их от простого к сложному.

Важно понимать: решение зависит от вашей версии Excel (2010, 2016, 2019, 365 или Excel Online) и уровня владения программой. Если вы новичок, начните с формул — они работают во всех версиях. Для опытных пользователей подойдут макросы на VBA, которые экономят часы работы.

📊 Какую версию Excel вы используете?
Excel 2010-2016
Excel 2019
Excel 365 (или Online)
Не знаю версию

Способ 1: Формула РАБДЕНЬ для автозаполнения без выходных

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

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

Где:

  • 📅 нач_дата — начальная дата последовательности (например, "01.01.2026" или ссылка на ячейку A1).
  • 🔢 количество_дней — сколько рабочих дней нужно добавить (для автозаполнения используем 1).
  • 🎉 [праздники] — необязательный аргумент: диапазон с датами праздников (например, D1:D10).

Пример для автозаполнения столбца A:

  1. В ячейку A1 введите стартовую дату (например, 02.01.2026).
  2. В ячейку A2 введите формулу: =РАБДЕНЬ(A1; 1).
  3. Протяните маркер автозаполнения вниз до нужной строки.

Ввести стартовую дату в A1|

Ввести в A2 формулу =РАБДЕНЬ(A1; 1)|

Протянуть маркер автозаполнения вниз|

(Опционально) Добавить диапазон праздников в третий аргумент-->

Если вам нужно учитывать государственные праздники, создайте отдельный список дат (например, в столбце D) и укажите его в формуле:

=РАБДЕНЬ(A1; 1; D$1:D$12)
⚠️ Внимание: Формула РАБДЕНЬ не работает с нестандартными выходными (например, если у вас рабочая суббота). Для таких случаев потребуется макрос или функция ЕСЛИ с проверкой дня недели.

Способ 2: Формула с ЕСЛИ и ДЕНЬНЕД для гибкого исключения дней

Если в вашей компании нестандартный график работы (например, выходной не воскресенье, а пятница), функция РАБДЕНЬ не подойдёт. Вместо неё используйте комбинацию =ЕСЛИ() и =ДЕНЬНЕД(), которая позволяет задавать свои правила для выходных.

Пример формулы для автозаполнения с выходными в пятницу и субботу:

=ЕСЛИ(ИЛИ(ДЕНЬНЕД(A1)=6; ДЕНЬНЕД(A1)=7); ""; A1+1)

Разберём логику:

  • 🔄 ДЕНЬНЕД(A1) возвращает номер дня недели (1=воскресенье, 2=понедельник,..., 7=суббота).
  • ИЛИ(ДЕНЬНЕД(A1)=6; ДЕНЬНЕД(A1)=7) проверяет, является ли день субботой или воскресеньем.
  • ➕ Если день рабочий, добавляем +1; если выходной — оставляем ячейку пустой.

Чтобы формула работала корректно:

  1. Введите стартовую дату в A1.
  2. В A2 введите формулу и протяните вниз.
  3. Используйте фильтр, чтобы скрыть пустые строки (выходные).
День недели Номер в функции ДЕНЬНЕД Пример формулы для исключения
Воскресенье 1 =ЕСЛИ(ДЕНЬНЕД(A1)=1; ""; A1+1)
Понедельник 2 =ЕСЛИ(ДЕНЬНЕД(A1)=2; ""; A1+1)
Суббота 7 =ЕСЛИ(ДЕНЬНЕД(A1)=7; ""; A1+1)
⚠️ Внимание: Если вы используете эту формулу в Excel Online, учтите, что функция ДЕНЬНЕД может возвращать другие номера дней недели в зависимости от региональных настроек. Проверьте результат для вашей локали!

Способ 3: Прогрессия дат с шагом +2 или +3 дня (для простых случаев)

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

Инструкция:

  1. Введите стартовую дату в A1 (например, 02.01.2026 — понедельник).
  2. В A2 введите следующую дату (например, 03.01.2026).
  3. Выделите обе ячейки (A1:A2).
  4. Протяните маркер автозаполнения вниз, удерживая правую кнопку мыши.
  5. В появившемся меню выберите Заполнить по дням.

Для пропуска выходных:

  • 📅 Если стартовая дата — понедельник, протягивайте с шагом +1 (Excel автоматически пропустит субботу/воскресенье).
  • ⏭️ Если стартовая дата — вторник, после автозаполнения удалите субботы вручную (их будет мало).

Способ 4: Макрос VBA для автоматического заполнения без выходных

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

Инструкция по созданию макроса:

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

    Dim StartDate As Date

    Dim NumDays As Integer

    Dim i As Integer

    Dim OutputRow As Integer

    StartDate = InputBox("Введите стартовую дату (формат ДД.ММ.ГГГГ):", "Даты без выходных")

    NumDays = InputBox("Сколько рабочих дней нужно сгенерировать?", "Количество дней")

    OutputRow = 1

    For i = 1 To NumDays

    Do While Weekday(StartDate, vbMonday) = 6 Or Weekday(StartDate, vbMonday) = 7

    StartDate = StartDate + 1

    Loop

    Cells(OutputRow, 1).Value = StartDate

    StartDate = StartDate + 1

    OutputRow = OutputRow + 1

    Next i

    End Sub

  4. Закройте редактор и нажмите Alt + F8, выберите макрос FillWorkdays и запустите его.

Преимущества этого метода:

  • Скорость: генерирует сотни дат за секунды.
  • 🎯 Гибкость: можно модифицировать код для учёта праздников или нестандартных выходных.
  • 🔄 Многоразовость: макрос сохраняется в файле и доступен в один клик.
⚠️ Внимание: Макросы работают только в Excel для Windows (не в Excel Online или macOS). Перед запуском проверьте, включена ли поддержка макросов в Файл → Параметры → Центр управления безопасностью.
Как модифицировать макрос для учёта праздников?

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

Dim Holidays As Variant

Holidays = Array("01.01.2026", "07.01.2026", "23.02.2026") ' пример праздников

' Inside the loop, add:

For Each h In Holidays

If StartDate = CDate(h) Then StartDate = StartDate + 1: Exit For

Next h

Это увеличит время выполнения, но сделает результат точнее.

Способ 5: Power Query для динамического автозаполнения

Если вы работаете с Excel 2016+ или Excel 365, инструмент Power Query (вкладка Данные → Получение данных) позволяет создавать динамические последовательности дат с учётом рабочих дней. Этот метод сложнее предыдущих, но даёт максимальную гибкость.

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

  1. Перейдите на вкладку ДанныеПолучить данные → Из других источников → Пустой запрос.
  2. В открывшемся редакторе Power Query введите в строку формул:
    = {1..100}

    (где 100 — количество дней, которые вы хотите сгенерировать).

  3. Нажмите Добавить столбец → Пользовательский столбец и введите формулу:
    = Date.From(#date(2026,1,1)) + Duration.From([Column1] * 1)

    (замените 2026,1,1 на вашу стартовую дату).

  4. Добавьте ещё один пользовательский столбец с формулой для фильтрации выходных:
    = if Date.DayOfWeek([Custom]) < 5 then [Custom] else null
  5. Удалите ненужные столбцы, оставив только столбец с датами, и нажмите Закрыть и загрузить.

Результат:

  • 🔄 Вы получите таблицу с только рабочими днями, которую можно обновлять одним кликом.
  • 📊 Данные подтягиваются динамически — при изменении стартовой даты достаточно обновить запрос.

Частые ошибки и как их избежать

Even опытные пользователи Excel иногда сталкиваются с проблемами при автозаполнении дат. Вот самые распространённые ошибки и их решения:

Ошибка Причина Решение
Формула возвращает #ИМЯ? Опечатка в названии функции (например, "РАБДНЕ" вместо "РАБДЕНЬ"). Проверьте синтаксис. В английской версии Excel используйте WORKDAY.
Дата отображается как число (например, 45678) Ячейка имеет общий формат, а не формат даты. Выделите ячейки → Главная → Формат → Краткий формат даты.
Макрос не запускается Отключена поддержка макросов или файл сохранён не как .xlsm. Сохраните файл с расширением .xlsm и включите макросы в настройках безопасности.
Формула пропускает не те дни Функция ДЕНЬНЕД возвращает номера дней недели в неожиданном порядке. Укажите второй аргумент в ДЕНЬНЕД: =ДЕНЬНЕД(A1; 2) (2 = понедельник=1, воскресенье=7).

Ещё одна типичная проблема — смещение дат при копировании формул. Например, если вы протянули формулу =РАБДЕНЬ(A1;1) вниз, но забыли зафиксировать ссылку на стартовую дату. Чтобы избежать этого, используйте абсолютные ссылки:

=РАБДЕНЬ($A$1; 1)

FAQ: Ответы на популярные вопросы

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

Да, в Google Sheets есть аналогичные функции:

  • =WORKDAY(A1, 1) — аналог РАБДЕНЬ.
  • =WEEKDAY(A1, 2) — аналог ДЕНЬНЕД (второй аргумент 2 делает понедельник первым днём недели).

Также можно использовать Apps Script (аналог VBA) для создания макросов.

Как сделать автозаполнение дат без выходных в обратном порядке (от текущей даты в прошлое)?

Используйте формулу =РАБДЕНЬ(нач_дата; -1) с отрицательным шагом. Например:

=РАБДЕНЬ(SEGOДНЯ(); -1)

Это вернёт предыдущий рабочий день относительно сегодняшней даты. Протяните формулу вниз для создания последовательности.

Почему функция РАБДЕНЬ пропускает некоторые рабочие дни?

Скорее всего, вы указали диапазон праздников в третьем аргументе, и одна из дат в этом диапазоне совпадает с рабочим днём. Проверьте список праздников на ошибки. Также убедитесь, что даты в списке праздников имеют формат дата, а не текст.

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

Да, используйте условное форматирование:

  1. Выделите столбец с датами.
  2. Перейдите в Главная → Условное форматирование → Создать правило.
  3. Выберите Использовать формулу... и введите:
    =ИЛИ(ДЕНЬНЕД(A1)=7; ДЕНЬНЕД(A1)=1)
  4. Задайте цвет заполнения (например, серый) и нажмите ОК.
Как экспортировать список дат без выходных в Word или PDF?

Самый простой способ:

  1. Скопируйте столбец с датами в Excel.
  2. Вставьте его в Word через Специальная вставка → Текст.
  3. Для экспорта в PDF: Файл → Экспорт → Создать PDF/XPS.

Если нужно сохранить форматирование, используйте Файл → Печать → Печать в PDF (в Excel 2013+).