Как да разделя голяма таблица на множество малки таблици в Excel?
Ако имате голям работен лист, който съдържа множество колони и стотици или хиляди редове с данни, сега искате да разделите тази голяма таблица на множество малки таблици въз основа на стойността на колоната или броя на редовете, за да получите следните резултати. Как бихте могли да се справите с тази задача в Excel?
Основна маса | Разделете таблицата на няколко таблици по стойност на колона | Разделете таблицата на множество таблици по брой редове | |
Разделете голяма таблица на множество таблици въз основа на стойност на колона с VBA код
Разделете голяма таблица на множество таблици въз основа на конкретния брой редове с VBA код
Разделете голяма таблица на множество таблици въз основа на стойност на колона с VBA код
За да разделите тази голяма таблица на множество таблици въз основа на конкретна стойност на колона, следният VBA код може да ви направи услуга. Моля, направете следното:
1. Задръжте натиснат ALT + F11 за да отворите Microsoft Visual Basic за приложения прозорец.
2. Щракнете Поставете > Модулии поставете следния код в Модули Window.
VBA код: Разделете голяма таблица на няколко таблици по ключова колона:
Sub Splitdatabycol()
'by Extendoffice
Dim lr As Long
Dim ws As Worksheet
Dim vcol, i As Integer
Dim icol As Long
Dim myarr As Variant
Dim title As String
Dim titlerow As Integer
Dim xTRg As Range
Dim xVRg As Range
Dim xWSTRg As Worksheet
On Error Resume Next
Set xTRg = Application.InputBox("Please select the header rows:", "Kutools for Excel", "", Type:=8)
If TypeName(xTRg) = "Nothing" Then Exit Sub
Set xVRg = Application.InputBox("Please select the column you want to split data based on:", "Kutools for Excel", "", Type:=8)
If TypeName(xVRg) = "Nothing" Then Exit Sub
vcol = xVRg.Column
Set ws = xTRg.Worksheet
lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
title = xTRg.AddressLocal
titlerow = xTRg.Cells(1).Row
icol = ws.Columns.Count
ws.Cells(1, icol) = "Unique"
Application.DisplayAlerts = False
If Not Evaluate("=ISREF('xTRgWs_Sheet!A1')") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
Else
Sheets("xTRgWs_Sheet").Delete
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
End If
Set xWSTRg = Sheets("xTRgWs_Sheet")
xTRg.Copy
xWSTRg.Paste Destination:=xWSTRg.Range("A1")
ws.Activate
For i = (titlerow + xTRg.Rows.Count) To lr
On Error Resume Next
If ws.Cells(i, vcol) <> "" And Application.WorksheetFunction.Match(ws.Cells(i, vcol), ws.Columns(icol), 0) = 0 Then
ws.Cells(ws.Rows.Count, icol).End(xlUp).Offset(1) = ws.Cells(i, vcol)
End If
Next
myarr = Application.WorksheetFunction.Transpose(ws.Columns(icol).SpecialCells(xlCellTypeConstants))
ws.Columns(icol).Clear
For i = 2 To UBound(myarr)
ws.Range(title).AutoFilter field:=vcol, Criteria1:=myarr(i) & ""
If Not Evaluate("=ISREF('" & myarr(i) & "'!A1)") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = myarr(i) & ""
Else
Sheets(myarr(i) & "").Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
Sheets(myarr(i) & "").Paste Destination:=Sheets(myarr(i) & "").Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").Range("A" & (titlerow + xTRg.Rows.Count))
Sheets(myarr(i) & "").Columns.AutoFit
Next
xWSTRg.Delete
ws.AutoFilterMode = False
ws.Activate
Application.DisplayAlerts = True
End Sub
3. След като поставите кода, натиснете F5 ключ, за да изпълните този код, и се появява поле за подкана, моля, изберете заглавния ред от вашите данни, вижте екранната снимка:
4, След това кликнете върху OKи друг диалогов прозорец се появява, моля, изберете данните от колоната, въз основа на които искате да разделите таблицата, вижте екранната снимка:
5. Щракнете OK, тази голяма таблица е разделена на множество работни листа по стойността на колоната, които се намират след основния лист. И новите работни листове са именувани със стойността на колоната. Вижте екранна снимка:
Разделете голяма таблица на множество таблици въз основа на конкретния брой редове с VBA код
Ако трябва да разделите таблицата на няколко таблици въз основа на броя редове, следният VBA код може да ви помогне.
1. Задръжте натиснат ALT + F11 за да отворите Microsoft Visual Basic за приложения прозорец.
2. Щракнете Поставете > Модулии поставете следния код в Модули Window.
VBA код: Разделете голяма таблица на множество таблици по брой редове:
Sub Splitdatabyrows()
'Updated by Extendoffice
Dim WorkRng As Range
Dim xRow As Range
Dim SplitRow As Integer
Dim xWs As Worksheet
Dim xTRg As Range
Dim xNTRg As Range
Dim xIER
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set xTRg = Application.InputBox("Please select the header row:", xTitleId, "", Type:=8)
If TypeName(xTRg) = "Nothing" Then Exit Sub
Set WorkRng = Application.InputBox("Please select the data range(exclude the header row):", xTitleId, WorkRng.Address, Type:=8)
If TypeName(WorkRng) = "Nothing" Then Exit Sub
SplitRow = Application.InputBox("Split Row Num", xTitleId, Type:=1)
If SplitRow = 0 Then Exit Sub
Set xWs = WorkRng.Parent
Set xRow = WorkRng.Rows(1)
xIER = WorkRng.Rows.Count
xIER = WorkRng.Row + xIER - 1
Application.ScreenUpdating = False
For i = 1 To WorkRng.Rows.Count Step SplitRow
resizeCount = SplitRow
If (xIER - xRow.Row + 1) < SplitRow Then
resizeCount = (xIER - xRow.Row + 1)
End If
xRow.Resize(resizeCount).Copy
Set xWs = Application.Worksheets.Add(after:=Application.Worksheets(Application.Worksheets.Count))
If xIER > (xRow.Row + SplitRow - 1) Then
xWs.Name = xRow.Row & " - " & (xRow.Row + SplitRow - 1)
ElseIf xIER = xRow.Row Then
xWs.Name = xRow.Row
Else
xWs.Name = xRow.Row & " - " & xIER
End If
Application.ActiveSheet.Range("A1").PasteSpecial
Set xNTRg = Application.ActiveSheet.Range("A1")
xTRg.Copy
xNTRg.Insert
Set xRow = xRow.Offset(SplitRow)
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
3. След това натиснете F5 ключ, в изскачащия диалогов прозорец изберете заглавния ред, вижте екранната снимка:
4, След това кликнете върху OKи във второто поле за подкана изберете диапазона от данни, който искате да разделите по брой редове, вижте екранната снимка:
5. И след това продължете да щраквате OK бутон, в третото поле за подкана въведете броя на редовете, по които искате да разделите, вижте екранната снимка:
6, След това кликнете върху OK главната таблица е разделена на множество работни листа въз основа на броя редове, както е показано на екранната снимка по-долу:
Разделете голяма таблица на множество таблици въз основа на стойност на колона или брой редове с невероятна функция
Може горните кодове да са трудни за повечето потребители, тук ще представя една невероятна функция-Разделени данни of Kutools за Excel. С тази помощна програма можете бързо и лесно да разделите голяма таблица на множество таблици по ключова колона или брой редове.
Съвет:За да приложите това Разделени данни функция, първо трябва да изтеглите Kutools за Excelи след това приложете функцията бързо и лесно.
След инсталиране Kutools за Excel, моля, направете следното:
1. Изберете диапазона от данни, който искате да разделите, и след това щракнете Kutools плюс > Разделени данни, вижте екранна снимка:
2. В Разделете данните в няколко работни листа диалогов прозорец, задайте настройките според вашите нужди:
(1.) Изберете Конкретна колона or Фиксирани редове от Разделяне въз основа на раздел, колкото ви е необходим;
(2.) Посочете името на новите работни листове от Правилник падащ списък, можете да добавите Префикс or Наставка към имената на листовете също.
3, След това кликнете върху Ok и сега голямата таблица е разделена на множество малки таблици в нова работна книга. Вижте екранни снимки:
Разделете таблицата на няколко таблици по стойност на колона | Разделете таблицата на множество таблици по брой редове |
Щракнете, за да изтеглите Kutools за Excel и безплатна пробна версия сега!
Още относителни статии:
- Разделете работна книга, за да разделите Excel файлове в Excel
- Може да се наложи да разделите голяма работна книга, за да отделите файлове на Excel, като запазите всеки работен лист от работната книга като отделен файл на Excel. Например, можете да разделите работна книга на множество отделни Excel файлове и след това да доставите всеки файл на различно лице, което да го обработва. По този начин можете да накарате определени лица да обработват конкретни данни и да запазите данните си в безопасност. Тази статия ще представи начини за разделяне на голяма работна книга, за да отделите Excel файлове на базата на всеки работен лист.
- Разделете пълното име на собственото и фамилното име в Excel
- Да предположим, че имате списък с имена, както е показано на първата екранна снимка в една колона по-долу, и трябва да разделите пълното име на колоната за първо име, колоната за бащино име и колоната за фамилия, както е показано на следната екранна снимка. Ето няколко хитри метода, които ще ви помогнат да разрешите този проблем.
- Разделете дълга колона на множество колони в Excel
- Ако имате дълга колона с данни в Excel, което ще ви затрудни, когато ги преглеждате. Но сега, ако можете да разделите такъв дълъг списък на множество колони в Excel, това ще направи гледането удобно.
- Разделяне на дума или число в отделни клетки в Excel
- Ако имате списък с числа или думи в работен лист и сега трябва да разделите съдържанието на клетката на букви в различни клетки, както е показано на следната екранна снимка, как можете да се справите с тази задача в Excel?
- Разделете дълъг списък на равни групи в Excel
- Ако имате дълъг списък от данни, необходими за разделяне на множество равни групи, както е показано на следната екранна снимка, как бихте могли да се справите с тази задача бързо и лесно в Excel?
Най-добрите инструменти за производителност в офиса
Kutools за Excel решава повечето от вашите проблеми и увеличава вашата производителност с 80%
- Супер Формула Бар (лесно редактиране на няколко реда текст и формула); Оформление за четене (лесно четене и редактиране на голям брой клетки); Поставяне във филтриран диапазон...
- Обединяване на клетки/редове/колони и съхраняване на данни; Съдържание на разделени клетки; Комбинирайте дублиращи се редове и сума/средно... Предотвратяване на дублиращи се клетки; Сравнете диапазони...
- Изберете Дублиран или Уникален редове; Изберете Празни редове (всички клетки са празни); Super Find и Fuzzy Find в много работни тетрадки; Произволен избор...
- Точно копие Множество клетки без промяна на референтната формула; Автоматично създаване на препратки към множество листа; Вмъкване на куршуми, квадратчета за отметка и други...
- Любими и бързо вмъкнати формули, диапазони, диаграми и снимки; Шифроване на клетки с парола; Създаване на пощенски списък и изпращайте имейли...
- Извличане на текст, Добавяне на текст, Премахване по позиция, Премахване на пространството; Създаване и отпечатване на междинни суми за пейджинг; Конвертиране на съдържание и коментари между клетки...
- Супер филтър (запазване и прилагане на филтърни схеми към други листове); Разширено сортиране по месец/седмица/ден, честота и други; Специален филтър с удебелен шрифт, курсив...
- Комбинирайте работни тетрадки и работни листове; Обединяване на таблици въз основа на ключови колони; Разделете данните на няколко листа; Пакетно конвертиране на xls, xlsx и PDF...
- Групиране на обобщена таблица по номер на седмицата, ден от седмицата и други... Показване на отключени, заключени клетки с различни цветове; Маркирайте клетки, които имат формула/име...
- Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
- Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!