Как разделить лист Excel на несколько рабочих листов (3 метода) -...

  • Поделись Этим
Hugh West

Большой набор данных может содержать несколько значений на основе одного и того же столбца. Если вы хотите, вы можете разделить значения одних и тех же категорий (Департамент, Месяц, Регион, Штаты и т.д.) или по вашему усмотрению на разные рабочие листы или рабочие книги. В этой статье я объясню, как разделить лист Excel на несколько рабочих листов.

Чтобы сделать это объяснение более понятным для вас, я собираюсь использовать пример набора данных. В наборе данных есть 4 столбца, представляющие информацию о продажах за разные месяцы. Эти столбцы следующие Торговый представитель, регион, месяц, и Продажи .

Скачать для практики

Разделение листа Excel на несколько рабочих листов.xlsm

Способы разделения листа Excel на несколько рабочих листов

1. Использование фильтра и копирования

С любого листа можно разделить данные на несколько листов с помощью функции Фильтр .

Сначала выберите диапазон ячеек, к которому вы хотите применить параметр Фильтр .

➤ Здесь я выбрал диапазон ячеек B3:E15 .

Затем откройте Данные вкладка>> выбрать Фильтр .

Вы также можете использовать CTRL + SHIFT + L применять Фильтр использование клавиатуры .

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

Далее нажмите на Месяц столбец, поскольку я хочу разделить данные в зависимости от Месяц значения.

Оттуда я отменить выбор всё, кроме Январь . Наконец, нажмите OK .

Теперь все значения, в которых Месяц это Январь фильтруются.

Тогда, Копировать данные и Паста его в новый рабочий лист.

Здесь я назвал новый лист Январь. Таким образом, вы увидите всю информацию о продажах для Январь представлена здесь.

Для остальных Месяцы Вы можете выполнить те же процедуры.

Снова нажмите на Месяц столбец, поскольку я хочу разделить данные в зависимости от Месяц значения.

Оттуда отменить выбор всё, кроме Февраль . Наконец, нажмите OK .

Теперь все значения для Февраль Месяц фильтруются.

Тогда, Копировать данные и Паста его в новый рабочий лист.

Позже я назвал новый лист Февраль. Таким образом, вы увидите всю информацию о продажах для Месяц из Февраль представлена здесь.

Снова нажмите на Месяц столбец, поскольку я хочу разделить данные в зависимости от Месяц значения.

Оттуда отменить выбор всё, кроме Март . Наконец, нажмите OK .

Теперь вы увидите все значения Март фильтруются.

Тогда, Копировать данные и Паста его в новый рабочий лист.

В итоге я назвал новый лист Март Таким образом, вы увидите всю информацию о продажах для Март представлена здесь.

Читать далее: Разделение листа Excel на несколько листов на основе строк

2. Разделение листа Excel на основе количества строк с помощью VBA

Прежде чем приступить к выполнению процедуры, необходимо помнить, что начинать данные нужно с первых строк.

Теперь откройте Разработчик вкладка>> выбрать Visual Basic

Откроется новое окно Microsoft Visual Basic для приложений .

Теперь из Вставка >> выбрать Модуль

A Модуль откроется там.

Затем напишите следующий код в Модуль .

 Sub SplitExcelSheet_into_MultipleSheets() Dim WorkRng As Range Dim xRow As Range Dim SplitRow As Integer Dim xWs As Worksheet On Error Resume Next EcelTitleId = "Split Row Numt" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", ExcelTitleId, WorkRng.Address, Type:=8) SplitRow = Application.InputBox("Split Row Num", ExcelTitleId, 4, Type:=1) Set xWs = WorkRng.ParentSet xRow = WorkRng.Rows(1) Application.ScreenUpdating = False For i = 1 To WorkRng.Rows.Count Step SplitRow resizeCount = SplitRow If (WorkRng.Rows.Count - xRow.Row + 1) <SplitRow Then resizeCount = WorkRng.Rows.Count - xRow.Row + 1 xRow.Resize(resizeCount).Copy Application.Worksheets.Add after:=Application.Worksheets(Application.Worksheets.Count)Application.ActiveSheet.Range("A1").PasteSpecial Set xRow = xRow.Offset(SplitRow) Next Application.CutCopyMode = False Application.ScreenUpdating = True End Sub 

Здесь я создал подпроцедуру под названием SplitExcelSheet_into_MultipleSheets .

Где я объявил пару переменных, а именно WorkRng и xRow в качестве Диапазон тип тогда

SplitRow в качестве Целое число также xWs в качестве Рабочий лист тип.

Кроме того, используется ExcelTitleId дать диалоговое окно название.

Я предоставил номер разделенного ряда 4 разделить данные на 4 строки, потому что в моем наборе данных Месяц из Январь имеет 4 ряда.

Наконец, использовал Для цикл до SplitRow пока не закончится заданный диапазон ячеек.

Тогда, Сохранить код и вернуться к рабочему листу.

Теперь откройте Разработчик вкладка>> От Вставка >> выбрать Кнопка

A диалоговое окно появится.

Чтобы назначить Макро в вставленном Кнопка .

Выберите SplitExcelSheet_into_Multiplesheets из Имя макроса затем нажмите OK .

Просто нажмите на Кнопка запустить Макро .

Теперь диалоговое окно появится окно, куда вы можете поместить данные диапазон.

➤ Здесь я выбрал диапазон ячеек B1:E12

Затем нажмите OK .

Еще один диалоговое окно появится окно, показывающее количество выбранных строк, которое вы уже указали в коде для разделения набора данных.

➤ В коде я предоставил 4 в качестве Количество разделенных рядов

Поскольку я в общей сложности 12 ряды так с 4 ряда будет 3 листа .

В Лист1 , вы увидите данные первых 4 строк.

В Лист2 Вы увидите данные строк с 5 по 8.

В Лист3 Вы увидите данные последних 4 строк.

Читать далее: Excel VBA: разделение листа на несколько листов на основе строк

Похожие чтения

  • Как разделить экран в Excel (3 способа)
  • [Исправить:] Excel View Side by Side не работает
  • Как разделить листы в Excel (6 эффективных способов)
  • Откройте два файла Excel по отдельности (5 простых способов)
  • Как разделить лист Excel на несколько файлов (3 быстрых метода)

3. Разделение листа Excel на несколько рабочих книг на основе столбцов

Перед началом процедуры необходимо помнить, что начинать данные нужно с первой строки и первого столбца.

Теперь откройте Разработчик вкладка>> выбрать Visual Basic

Откроется новое окно Microsoft Visual Basic для приложений .

Теперь из Вставка >> выбрать Модуль

A Модуль откроется там.

Затем напишите следующий код в Модуль .

 Sub SplitSheetIntoMultipleWorkbooksBasedOnColumn() Dim objWorksheet As Excel.Worksheet Dim nLastRow, nRow, nNextRow As Integer Dim strColumnValue As String Dim objDictionary As Object Dim varColumnValues As Variant Dim varColumnValue As Variant Dim objExcelWorkbook As Excel.Workbook Dim objSheet As Excel.Worksheet Set objWorksheet = ActiveSheet nLastRow =objWorksheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row Set objDictionary = CreateObject("Scripting.Dictionary") For nRow = 2 To nLastRow strColumnValue = objWorksheet.Range("C" & nRow).Value If objDictionary.Exists(strColumnValue) = False Then objDictionary.Add strColumnValue, 1 End If Next varColumnValues = objDictionary.KeysFor i = LBound(varColumnValues) To UBound(varColumnValues) varColumnValue = varColumnValues(i) Set objExcelWorkbook = Excel.Application.Workbooks.Add Set objSheet = objExcelWorkbook.Sheets(1) objSheet.Name = objWorksheet.Name objWorksheet.Rows(1).EntireRow.Copy objSheet.Activate objSheet.Range("A1").Select objSheet.PasteFor nRow = 2 To nLastRow If CStr(objWorksheet.Range("C" & nRow).Value) = CStr(varColumnValue) Then objWorksheet.Rows(nRow).EntireRow.Copy nNextRow = objSheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row + 1 objSheet.Range("A" & nNextRow).Select objSheet.PasteobjSheet.Columns("A:D").AutoFit End If Next Next End Sub 

Здесь я создал подпроцедуру под названием SplitSheetIntoMultipleWorkbooksBasedOnColumn , где я объявил несколько переменных.

Я использовал 3 НА петли. 1-я НА цикл будет считать строки от строки 2 до последней строки со значением для получения конкретного столбца. Я задал экземпляр функции "C" колонна.

Вы можете изменить его в соответствии с вашим случаем

2-й Для цикл создаст новую рабочую книгу Excel.

3-й Fo цикл r будет копировать данные с тем же столбцом "C" значение в новую рабочую книгу со 2-й строки до последней строки со значением.

Тогда, Сохранить код и вернуться к рабочему листу.

Теперь откройте Посмотреть вкладка>> От Макросы >> выбрать Просмотр макросов

A диалоговое окно появится.

Теперь из Имя макроса выбрать SplitSheetIntoMultipleWorkbooksBasedOnColumn также выберите рабочую книгу внутри Макросы в .

Наконец-то, Запускайте выбранный Макро .

Наконец, вы увидите, что было создано 3 новых рабочих книги, так как существует 3 различных Месяцы в колонке C . Книга1 для Январь .

Сайт Книга2 для Февраль .

Сайт Книга3 для Март .

Читать далее: Как разделить лист Excel на несколько листов на основе значения столбца

Заключение

В этой статье я описал 3 способа разделения листа Excel на несколько рабочих листов. Вы можете воспользоваться любым из описанных способов разделения листа Excel на несколько рабочих листов. Если у вас возникли какие-либо неясности или вопросы относительно этих методов, вы можете оставить комментарий ниже.

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.