Как разделить большую таблицу на несколько маленьких таблиц в Excel?
Если у вас есть большая таблица Excel с множеством столбцов и сотнями или тысячами строк, вам может потребоваться разделить её на более мелкие и удобные для управления таблицы. Например, вы можете захотеть разделить данные на основе значений определённого столбца или разбить их на блоки с фиксированным количеством строк. В этом руководстве представлены пошаговые методы для эффективного выполнения этой задачи.
Основная таблица | Разделение таблицы на несколько таблиц по значениям столбца | Разделение таблицы на несколько таблиц по количеству строк | |
![]() | ![]() | ![]() | ![]() |
Разделение большой таблицы на несколько таблиц на основе значений столбца с помощью кода VBA
Разделение большой таблицы на несколько таблиц на основе значений столбца с помощью кода VBA
Чтобы разделить эту большую таблицу на несколько таблиц на основе определённого значения столбца, следующий код VBA сможет помочь вам. Пожалуйста, сделайте следующее:
1. Нажмите и удерживайте клавиши "ALT" + "F11", чтобы открыть окно "Microsoft Visual Basic for Applications".
2. Нажмите "Вставить" > "Модуль" и вставьте следующий код в окно "Модуль".
Код 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. Затем нажмите "ОК", и появится ещё одно диалоговое окно, где вам нужно выбрать данные столбца, по которым вы хотите разделить таблицу, см. скриншот:
5. Нажмите "ОК". Большая таблица теперь разделена на несколько листов на основе значений столбца, причём новые листы находятся после основного листа. Новые листы называются в соответствии со значением столбца. См. скриншот:
Разделение большой таблицы на несколько таблиц на основе определённого количества строк с помощью кода VBA
Если вам нужно разделить таблицу на несколько таблиц на основе количества строк, следующий код VBA может вам помочь.
1. Нажмите и удерживайте клавиши "ALT" + "F11", чтобы открыть окно "Microsoft Visual Basic for Applications".
2. Нажмите "Вставить" > "Модуль" и вставьте следующий код в окно "Модуль".
Код 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. Затем нажмите "ОК", и во втором диалоговом окне выберите диапазон данных, который вы хотите разделить по количеству строк, см. скриншот:
5. Далее продолжайте нажимать кнопку "ОК", в третьем диалоговом окне введите количество строк, по которым вы хотите разделить, см. скриншот:
6. Затем нажмите кнопку "ОК", главная таблица была разделена на несколько листов на основе количества строк, как показано на скриншоте ниже:
Разделение большой таблицы на несколько таблиц на основе значений столбца или количества строк с помощью Kutools для Excel
Приведённые выше коды могут быть сложными для большинства пользователей, поэтому здесь я представлю удивительную функцию — «Разделение данных» из Kutools для Excel. С помощью этой утилиты вы сможете быстро и легко разделить большую таблицу на несколько таблиц по ключевому столбцу или количеству строк.
1. Выберите диапазон данных, который вы хотите разделить, а затем нажмите «Kutools Plus» > «Разделение данных», см. скриншот:
2. В диалоговом окне «Разделение данных на несколько листов» укажите настройки согласно вашим потребностям:
(1.) Выберите «Укажите столбец» или «Фиксированное значение» в разделе «Основа разделения» по необходимости;
(2.) Укажите имя новых листов из выпадающего списка «Правило», вы также можете добавить «Префикс» или «Суффикс» к именам листов.
3. Затем нажмите кнопку «ОК», и теперь большая таблица была разделена на несколько маленьких таблиц в новой книге. См. скриншоты:
Разделение таблицы на несколько таблиц по значениям столбца | Разделение таблицы на несколько таблиц по количеству строк |
![]() | ![]() |
Kutools для Excel - Усильте Excel более чем 300 необходимыми инструментами. Наслаждайтесь постоянно бесплатными функциями ИИ! Получите прямо сейчас
Больше связанных статей:
- Разделение книги на отдельные файлы Excel в Excel
- Возможно, вам потребуется разделить большую книгу на отдельные файлы Excel, сохраняя каждый лист книги как отдельный файл Excel. Например, вы можете разделить книгу на несколько отдельных файлов Excel и затем отправить каждый файл разным людям для обработки. Таким образом, вы можете поручить определённым лицам обрабатывать конкретные данные и сохранить ваши данные в безопасности. В этой статье будут представлены способы разделения большой книги на отдельные файлы Excel на основе каждого листа.
- Разделение полного имени на имя и фамилию в Excel
- Предположим, у вас есть список имён, как показано на первом скриншоте в одном столбце ниже, и вам нужно разделить полное имя на столбец имени, столбец отчества и столбец фамилии, как показано на следующем скриншоте. Вот несколько хитростей, которые помогут вам решить эту проблему.
- Разделение длинного столбца на несколько столбцов в Excel
- Если у вас есть длинный столбец данных в Excel, просмотр которых может быть затруднён, то если вы сможете разделить такой длинный список на несколько столбцов в Excel, это сделает просмотр удобнее.
- Разделение слова или числа на отдельные ячейки в Excel
- Если у вас есть список чисел или слов в рабочем листе, и вам нужно разделить содержимое ячеек на буквы в разных ячейках, как показано на следующем скриншоте, как вы можете справиться с этой задачей в Excel?
- Разделение длинного списка на равные группы в Excel
- Если у вас есть длинный список данных, который необходимо разделить на несколько равных групп, как показано на следующем скриншоте, как можно быстро и легко справиться с этой задачей в Excel?
Лучшие инструменты для повышения продуктивности работы с Office
Ускорьте работу в Excel с Kutools для Excel и ощутите новую степень эффективности. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени. Нажмите здесь, чтобы выбрать нужную вам функцию...
Office Tab добавляет вкладки в Office и делает вашу работу намного проще
- Включите редактирование и чтение с вкладками в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна, а не в отдельных окнах.
- Увеличьте свою продуктивность на50% и сократите сотни лишних кликов мышью каждый день!