Как создать список будних (рабочих) дней в Excel?
В этом руководстве рассказывается, как быстро создать список будних (рабочих) дней в заданном диапазоне дат в Excel. Такая возможность особенно полезна при планировании проектов, заполнении табелей учёта рабочего времени, ведении журналов посещаемости или составлении расписаний задач, выполняемых исключительно в рабочие дни. Ниже представлены как ручные, так и автоматизированные методы формирования такого списка — подходящие для разных сценариев и уровней владения Excel.
Создание списка будних дней с помощью автозаполнения Опции заполнения
Создание списка будних дней с помощью удобного инструмента — Kutools для Excel
Создание списка рабочих дней с использованием формулы Excel WORKDAY/WORKDAY.INTL
Автоматическое создание списка будних/рабочих дней с помощью кода VBA
Создание списка будних дней с помощью автозаполнения Опции заполнения
В Excel можно быстро создать список будних дней с помощью маркера автозаполнения и параметра Заполнить будние дни. Этот метод прост и отлично подходит для быстрого формирования последовательного списка будних дней, но менее гибок, если вам нужен точный контроль над начальной и конечной датами или требуется учитывать праздничные дни.
1. Введите дату начала в пустую ячейку. Например, введите 7/1/2015 в ячейку A1. См. снимок экрана:

2. Наведите курсор мыши на правый нижний угол ячейки, пока не появится маркер заполнения (+). Затем нажмите и перетащите его вниз на нужное количество строк — например, чтобы получить список из 22 будних дней.
Совет: Заранее оцените или точно рассчитайте, сколько будних дней нужно заполнить. Если вы не уверены, всегда можно заполнить больше ячеек, чем требуется, — лишние легко удалить позже.

3. После завершения перетаскивания щёлкните маленькую кнопку Автозаполнение — Опции заполнения, появившуюся рядом с выделением. В контекстном меню выберите пункт Заполнить будние дни. Excel заполнит диапазон только будними днями (с понедельника по пятницу), пропуская выходные.

Теперь на листе должна отображаться последовательность из 22 будних дней, начинающаяся с 01,07.2015.

Этот метод позволяет быстро заполнить список последовательных будних дней, однако не поддерживает пользовательские правила — например, исключение конкретных праздников или работу с непоследовательными интервалами будних дней. Кроме того, он не даёт возможности напрямую заполнять будние дни в заданном диапазоне между двумя конкретными датами. Для решения более сложных задач рекомендуем воспользоваться одним из автоматизированных методов ниже.
Создание списка будних дней с помощью удобного инструмента — Kutools для Excel
Kutools для Excel предлагает удобное решение для генерации всех будних (рабочих) дней в заданном диапазоне дат с помощью функции Вставить случайные данные. Этот подход гибкий и экономит время, особенно при работе с большими наборами данных или когда требуется гарантировать уникальность и фильтрацию дат по статусу буднего дня. Он идеально подходит пользователям, управляющим расписаниями или планирующим проекты, зависящие от точных расчётов рабочих дней.
1. Выделите Пустой диапазон ячеек, где требуется сгенерировать список. Убедитесь, что выделено больше ячеек, чем предполагаемое количество будних дней, поскольку число ячеек определяет, сколько дат можно разместить. См. снимок экрана:

2. Перейдите на вкладку Kutools на ленте Excel, затем нажмите Вставить > Вставить случайные данные. См. снимок экрана:
3. В диалоговом окне Вставить случайные данные перейдите на вкладку Дата. Укажите желаемый диапазон дат: введите самую раннюю дату в поле От, а самую позднюю — в поле До. Установите флажок Рабочий день, чтобы ограничить результаты будними днями (с понедельника по пятницу), и флажок Уникальные значения, чтобы избежать дублирования дат. См. снимок экрана:
Примечание: Если ваш проект требует учёта праздников, их придётся удалять вручную после генерации списка, поскольку встроенная функция пропускает только стандартные выходные.
4. Нажмите кнопку ОК или Применить. Инструмент заполнит ваш диапазон «Выберите диапазон» всеми подходящими будними днями за указанный период. Пустые ячейки могут остаться, если размер диапазона «Выберите диапазон» превышает возможное количество результирующих дат.

5. (Необязательно) Чтобы упорядочить сгенерированные даты по возрастанию, выделите заполненный диапазон дат, перейдите на вкладку Данные, затем нажмите Сортировка от старых к новым. Эта операция обеспечит чёткую и логичную организацию списка.

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

Утилита Kutools для Excel Вставить случайные данныеподдерживает не только будние дни: вы также можете генерировать случайные числа, случайное время, уникальные случайные значения, случайные строки и случайные Пользовательский список.Нажмите здесь, чтобы узнать больше об этой утилите.
Примечание: Всегда проверяйте, соответствуют ли сгенерированные даты вашим критериям, особенно если нужно исключить конкретные праздники или если ваш диапазон дат охватывает недели с переменным графиком работы.
Kutools для Excel — включает более 300 незаменимых инструментов для Excel. Работайте в Excel быстрее, проще и эффективнее.Скачать сейчас!
Создание списка рабочих дней с использованием формулы Excel WORKDAY/WORKDAY.INTL
Функции Excel WORKDAY и WORKDAY.INTL позволяют программно генерировать список последовательных рабочих дней между двумя датами. WORKDAY по умолчанию пропускает выходные (субботу и воскресенье), тогда как WORKDAY.INTL позволяет задавать пользовательские выходные дни и учитывать праздничные даты. Этот подход отлично подходит для автоматизации процессов, где важна точность — например, при составлении графиков работы или расчёта заработной платы.
Для удобства ниже приведён пошаговый подход с использованием формул для создания динамического списка рабочих дней:
1. Введите дату начала в ячейку A1, например: 7/1/2015. В ячейку B1 введите конечную дату, например: 7/31/2015.
2. В ячейку C1 введите следующую формулу, чтобы последовательно получить список рабочих дней:
=IF(WORKDAY($A$1,ROW(A1)-1,$B$2)<,=$B$1,WORKDAY($A$1,ROW(A1)-1,$B$2),"") Пояснение параметров:
- $A$1:Дата начала (абсолютная ссылка)
- ROW(A1)-1:Увеличивает номер рабочего дня для каждой строки
- $B$2:Необязательно: диапазон, содержащий даты праздников для исключения (введите даты праздников в B2:B10 или любой другой нужный диапазон либо оставьте пустым, если не требуется)
- $B$1:Конечная дата для списка (гарантирует, что последовательность завершится на выбранной конечной точке)
3. Протяните формулу из ячейки C1 вниз до первой пустой ячейки — список автоматически заполнится всеми рабочими днями (исключая выходные и указанные праздники).
Советы:
- Если нужно задать пользовательские выходные дни (например, когда выходным является только воскресенье), используйте функцию WORKDAY.INTL — она позволяет указать выходные с помощью аргумента weekend (подробнее см. в документации Excel).
- Всегда убедитесь, что даты праздников хранятся в отдельном и понятном диапазоне, чтобы случайно не включить их в последовательность рабочих дней.
- Если праздники не учитываются, можно опустить необязательный диапазон праздников в формуле.
Распространённая ошибка: Если вместо ожидаемых дат вы видите ошибку #ЧИСЛО! или пустые результаты, убедитесь, что начальная и конечная даты указаны корректно, а также что ваш список праздников (если он используется) содержит только даты — без текста или других данных.
Автоматическое создание списка будних/рабочих дней с помощью кода VBA
Если вам необходимо сформировать полный список будних или рабочих дней в заданном диапазоне, настраиваемый макрос VBA может автоматизировать этот процесс. Такой подход идеально подходит для опытных пользователей Excel или в случаях, когда задача регулярно повторяется для различных наборов данных. С помощью VBA вы можете учитывать нестандартные графики работы, праздничные дни или даже размещать результаты в любом удобном месте на листе.
1. Нажмите Инструменты разработчика > Visual Basic, чтобы открыть окно Microsoft Visual Basic для приложений. Затем выберите Вставка > Модуль и вставьте приведённый ниже код в модуль:
Sub ListBusinessDays()
Dim StartDate As Date
Dim EndDate As Date
Dim r As Integer
Dim ws As Worksheet
Dim currDate As Date
Dim Holidays As Range
On Error Resume Next
Set ws = ActiveSheet
StartDate = Application.InputBox("Enter start date:", "KutoolsforExcel", Type:=2)
EndDate = Application.InputBox("Enter end date:", "KutoolsforExcel", Type:=2)
Set Holidays = Application.InputBox("Select range for holidays (optional, press Cancel if none):", "KutoolsforExcel", Type:=8)
On Error GoTo 0
r = 1
For currDate = StartDate To EndDate
If Weekday(currDate, vbMonday) <= 5 Then ' Monday = 1, Friday = 5
If Holidays Is Nothing Then
ws.Cells(r, 3).Value = currDate
r = r + 1
Else
If Application.CountIf(Holidays, currDate) = 0 Then
ws.Cells(r, 3).Value = currDate
r = r + 1
End If
End If
End If
Next
End Sub 2. Нажмите кнопку
или клавишу F5, чтобы запустить код. Вам будет предложено указать начальную и конечную даты для вашего списка. При необходимости вы можете выбрать диапазон с праздничными датами для исключения (или просто нажмите «Отмена», если это не требуется). Макрос заполнит столбец C активного листа всеми рабочими днями, пропуская выходные (с понедельника по пятницу) и указанные вами праздники.
Примечания и устранение неполадок:
- Если даты не отображаются, убедитесь, что входные даты корректны и указаны в формате Формат даты.
- Если диапазон праздников не указан, в список включаются все будние дни между начальной и конечной Конечная дата.
- Результаты всегда начинаются со столбца C. Измените
ws.Cells(r,3)в коде, если нужно вывести данные в другое место.
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек