Как создать список рабочих дней/будней в Excel?
В этом руководстве объясняется, как быстро создать список будних или рабочих дней в пределах указанного диапазона дат в Excel. Способность генерировать такой список особенно полезна для планирования проектов, табелей учета рабочего времени, журналов посещаемости или планирования задач, которые происходят только в рабочие дни. Представленные методы показывают как ручные, так и автоматизированные способы достижения этого, учитывая разные сценарии и уровни владения Excel.
Список будних дней с помощью опции Автозаполнение
Создание списка будних дней с помощью удобного инструмента — Kutools для Excel
Список рабочих дней с использованием формул Excel WORKDAY/WORKDAY.INTL
Автоматический список будних/рабочих дней с помощью кода VBA
Список будних дней с помощью опций Автозаполнения
В Excel вы можете быстро создать список будних дней, используя маркер автозаполнения в сочетании с опцией Заполнить будние дни. Этот подход прост и подходит для быстрого создания последовательного списка будних дней, но менее гибок, если вам нужно точное управление начальной и конечной датами или необходимо учитывать праздничные дни.
1. Введите начальную дату в пустую ячейку. Например, введите 01.07.2015 в ячейке A1. См. скриншот:
2. Переместите курсор мыши в нижний правый угол ячейки, пока не увидите маркер заполнения (+). Затем щелкните и перетащите маркер заполнения вниз на столько строк, сколько вам нужно. Например, перетащите его, чтобы создать список из 22 будних дней.
Совет: Вам нужно будет оценить или точно рассчитать, сколько будних дней вы хотите заполнить. Если вы не уверены, всегда можно заполнить больше ячеек, чем требуется, а затем легко удалить лишние.
3. После завершения перетаскивания нажмите маленькую кнопку Опции автозаполнения, которая появляется рядом с выделенной областью. В открывшемся меню выберите Заполнить будние дни. Excel теперь заполнит диапазон только будними днями (с понедельника по пятницу), пропуская выходные.
Теперь вы должны увидеть свою последовательность из 22 будних дней, начиная с 01.07.2015, отображаемую на листе.
Этот метод предоставляет быстрый способ заполнения списка последовательных будних дней, но он не идеален для собственных бизнес-правил (например, исключения определенных праздников или интервалов будних дней). Кроме того, этот метод не позволяет напрямую заполнять будние дни, которые попадают между двумя конкретными датами. Для более продвинутых потребностей рекомендуется использовать один из автоматизированных методов ниже.
Создание списка будних дней с помощью удобного инструмента — Kutools для Excel
Kutools для Excel предоставляет удобное решение для генерации всех будних или рабочих дней в пределах определенного диапазона дат с помощью функции Вставить случайные данные. Этот подход является гибким и экономящим время, особенно при работе с большими наборами данных или когда вы хотите убедиться, что все возвращаемые даты уникальны и отфильтрованы по статусу буднего дня. Это идеально подходит для пользователей, которые управляют расписаниями или планируют проекты, зависящие от точных расчетов рабочих дней.
1. Выберите пустой диапазон ячеек, где вы хотите создать список. Убедитесь, что вы выбрали больше ячеек, чем ожидаемое количество будних дней, так как количество ячеек определяет, сколько дат может быть размещено. См. скриншот:
2. Перейдите на вкладку Kutools на ленте Excel, затем нажмите Вставить > Вставить случайные данные. См. скриншот:
3. В Вставить случайные данные диалоговом окне переключитесь на вкладку Дата Введите желаемый диапазон дат: введите самую раннюю дату в поле От и самую позднюю дату в поле До Установите флажок Рабочий день чтобы ограничить результаты будними днями (с понедельника по пятницу) и Уникальные значения чтобы избежать повторяющихся дат. См. скриншот:
Примечание: Если ваш проект требует включения праздников, вам нужно будет вручную удалить их после создания списка, поскольку встроенная функция пропускает только типичные выходные.
4. Нажмите OK или Применить. Инструмент заполнит выбранный диапазон всеми соответствующими будними днями из указанного периода. Пустые ячейки могут остаться, если выбранный диапазон больше, чем возможные даты результата.
5. (Необязательно) Чтобы расположить сгенерированные даты в хронологическом порядке, выберите заполненный диапазон дат, перейдите на вкладку Данные, затем нажмите Сортировать от старых к новым. Этот шаг гарантирует, что ваш список будет хорошо организован.
Теперь созданный список будет отображать все рабочие дни в пределах вашего диапазона, отсортированные последовательно от самой ранней до самой поздней.
Утилита Вставка случайных данных из Kutools для Excel поддерживает не только будние дни: вы также можете генерировать случайные числа, случайное время, случайные уникальные значения, случайные строки и случайные пользовательские списки. Нажмите здесь, чтобы узнать больше об этой утилите.
Примечание: Всегда дважды проверяйте, что сгенерированные даты соответствуют вашим критериям, особенно если вам нужно исключить определенные праздники или если ваши диапазоны дат покрывают переменные рабочие недели.
Kutools для Excel - Наполнен более чем 300 необходимыми инструментами для Excel. Воспользуйтесь постоянно бесплатными функциями ИИ! Скачайте прямо сейчас!
Список рабочих дней с использованием формул Excel РАБДЕНЬ/РАБДЕНЬ.МЕЖД
Функции РАБДЕНЬ и РАБДЕНЬ.МЕЖД в Excel позволяют программно генерировать список последовательных рабочих дней между двумя датами. РАБДЕНЬ по умолчанию пропускает выходные дни (субботу и воскресенье), тогда как РАБДЕНЬ.МЕЖД позволяет указать пользовательские выходные дни и включить праздничные даты. Этот подход очень адаптируем, если вы хотите автоматизировать процесс и обеспечить точность, например, для HR-планирования или расчета заработной платы.
Для удобства вот пошаговый подход с использованием формул для создания динамического списка рабочих дней:
1. Введите начальную дату в ячейку A1, например: 01.07.2015. В ячейке B1 введите конечную дату, например: 31.07.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 вниз, пока ячейка не станет пустой. Список динамически заполнит все рабочие дни (исключая выходные или любые указанные праздники).
Советы:
- Если вам нужно определить пользовательские выходные дни (например, только воскресенье - выходной), рассмотрите использование функции РАБДЕНЬ.МЕЖД, которая позволяет указать, какие дни являются выходными, предоставив аргумент выходных (см. документацию 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-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
- Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек