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

  • Споделя Това
Hugh West

Голям набор от данни може да съдържа множество стойности въз основа на една и съща колона. Ако искате, можете да разделите стойностите на същите категории (отдел, месец, регион, държави и т.н.) или вашите предпочитания в различни работни листове или работни книги. В тази статия ще обясня как да разделите лист на Excel в няколко работни листа.

За да ви стане по-ясно това обяснение, ще използвам примерен набор от данни. В набора от данни има 4 колони, които представят информация за продажбите през различните месеци. Тези колони са Търговски представител, регион, месец, и Продажби .

Изтегляне за практикуване

Разделяне на лист на Excel на няколко работни листа.xlsm

Начини за разделяне на лист на Excel на няколко работни листа

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

От всеки лист можете да разделите данните на няколко листа, като използвате Филтър .

Първо, изберете диапазона от клетки, в който искате да приложите Филтър .

➤Тук избрах обхвата от клетки B3:E15 .

След това отворете Данни tab>> изберете Филтър .

Можете също така да използвате CTRL + SHIFT + L да прилагате Филтър използване на клавиатурата .

Сега, Филтър се прилага към избрания диапазон от клетки.

След това щракнете върху Месец колона, тъй като искам да разделя данните в зависимост от Месец стойности.

Оттам аз отменен избор всичко освен януари . Накрая щракнете върху OK .

Сега всички стойности, при които Месец е януари се филтрират.

След това, Копие данните и Паста в новия работен лист.

Тук дадох име на новия лист януари. Така ще видите цялата информация за продажбите на януари е представена тук.

За останалата част от Месеци , можете да следвате същите процедури.

Отново кликнете върху Месец колона, тъй като искам да разделя данните в зависимост от Месец стойности.

Оттам премахване на избора всичко освен февруари . Накрая щракнете върху OK .

Сега всички стойности за февруари Месец се филтрират.

След това, Копие данните и Паста в новия работен лист.

По-късно дадох име на новия лист февруари. По този начин ще видите цялата информация за продажбите за Месец на февруари е представена тук.

Отново кликнете върху Месец колона, тъй като искам да разделя данните в зависимост от Месец стойности.

Оттам премахване на избора всичко освен Март . Накрая щракнете върху OK .

Сега ще видите всички стойности на Март се филтрират.

След това, Копие данните и Паста в новия работен лист.

В крайна сметка нарекох новия лист Март . Следователно ще видите цялата информация за продажбите за Март е представена тук.

Прочетете още: Разделяне на лист на Excel на няколко листа въз основа на редове

2. Разделяне на лист на Excel въз основа на броя на редовете с помощта на VBA

Преди да започнете процедурата, трябва да запомните, че трябва да започнете данните от първите редове.

Сега отворете Разработчик tab>> изберете 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 до края на зададения диапазон от клетки.

След това, Запазете кода и се върнете в работния лист.

Сега отворете Разработчик tab>> От Вмъкване на >> изберете Бутон

A диалогов прозорец ще се появи.

За да присвоите Macro във вмъкнатите Бутон .

Изберете SplitExcelSheet_into_Multiplesheets от Име на макроса след това щракнете върху ОК .

Просто кликнете върху Бутон за да стартирате Macro .

Сега, а диалогов прозорец ще се появи прозорец, в който можете да въведете данните обхват.

➤Тук избрах обхвата от клетки B1:E12

След това щракнете върху ОК .

Друг диалогов прозорец ще се появи информация за броя на избраните редове, които вече сте посочили в кода за разделяне на набора от данни.

➤ В кода съм предоставил 4 като Разделяне на номера на редовете

Тъй като аз съм общо 12 редове, така че с 4 реда ще има 3 листа .

В Лист1 , ще видите данните от първите 4 реда.

В Лист2 , ще видите данните от редове 5 до 8.

В Лист3 , ще видите данните от последните 4 реда.

Прочетете още: Excel VBA: Разделяне на лист на няколко листа въз основа на редове

Подобни четива

  • Как да разделим екрана в Excel (3 начина)
  • [Поправка:] Прегледът на Excel Side by Side не работи
  • Как да разделяте листове в Excel (6 ефективни начина)
  • Отваряне на два файла на Excel поотделно (5 лесни метода)
  • Как да разделите листа на Excel в няколко файла (3 бързи метода)

3. Разделяне на лист на Excel в няколко работни книги въз основа на колона

Преди да започнете процедурата, трябва да запомните, че трябва да започнете данните от първия ред и първата колона.

Сега отворете Разработчик tab>> изберете 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.

Третият Fo r цикълът ще копира данните със същата колона "C" стойност в новата работна книга от втория ред до последния ред със стойност.

След това, Запазете кода и се върнете в работния лист.

Сега отворете Вижте tab>> От Макроси >> изберете Преглед на макроси

A диалогов прозорец ще се появи.

Сега, от Име на макрос изберете SplitSheetIntoMultipleWorkbooksBasedOnColumn също така изберете работната книга в Макроси в .

Накрая, Изпълнявайте избрания Macro .

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

Сайтът Книга2 за февруари .

Сайтът Книга3 за Март .

Прочетете още: Как да разделите листа на Excel на няколко листа въз основа на стойността на колоната

Заключение

В тази статия съм обяснил 3 начина за разделяне на лист на Excel на няколко работни листа. Можете да следвате всеки от обяснените начини за разделяне на лист на Excel на няколко работни листа. В случай че имате някакво объркване или въпрос относно тези методи, можете да коментирате по-долу.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.