Перейти к содержимому

Как разделить большую таблицу на несколько маленьких таблиц в Excel?

Author: Xiaoyang Last Modified: 2025-08-07

Если у вас есть большая таблица Excel с множеством столбцов и сотнями или тысячами строк, вам может потребоваться разделить её на более мелкие и удобные для управления таблицы. Например, вы можете захотеть разделить данные на основе значений определённого столбца или разбить их на блоки с фиксированным количеством строк. В этом руководстве представлены пошаговые методы для эффективного выполнения этой задачи.

Основная таблица   Разделение таблицы на несколько таблиц по значениям столбца Разделение таблицы на несколько таблиц по количеству строк
A screenshot of a large table in Excel before splitting Arrow A screenshot of an Excel table split by column values A screenshot of an Excel table split by row count

Разделение большой таблицы на несколько таблиц на основе значений столбца с помощью кода VBA

Разделение большой таблицы на несколько таблиц на основе определенного количества строк с помощью кода VBA

Разделение большой таблицы на несколько таблиц на основе значений столбца или количества строк с помощью Kutools для Excel


Разделение большой таблицы на несколько таблиц на основе значений столбца с помощью кода 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", чтобы запустить этот код, и появится диалоговое окно, где вам нужно выбрать строку заголовка из ваших данных, см. скриншот:

A screenshot showing how to select the header row for splitting tables

4. Затем нажмите "ОК", и появится ещё одно диалоговое окно, где вам нужно выбрать данные столбца, по которым вы хотите разделить таблицу, см. скриншот:

A screenshot showing how to select the column for splitting tables by values

5. Нажмите "ОК". Большая таблица теперь разделена на несколько листов на основе значений столбца, причём новые листы находятся после основного листа. Новые листы называются в соответствии со значением столбца. См. скриншот:

A screenshot showing multiple worksheets created after splitting by column values


Разделение большой таблицы на несколько таблиц на основе определённого количества строк с помощью кода 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", в появившемся диалоговом окне выберите строку заголовка, см. скриншот:

A screenshot showing how to select the header row for splitting by row count

4. Затем нажмите "ОК", и во втором диалоговом окне выберите диапазон данных, который вы хотите разделить по количеству строк, см. скриншот:

A screenshot showing how to select the data range for splitting by rows

5. Далее продолжайте нажимать кнопку "ОК", в третьем диалоговом окне введите количество строк, по которым вы хотите разделить, см. скриншот:

A screenshot showing how to enter the number of rows for splitting in Excel

6. Затем нажмите кнопку "ОК", главная таблица была разделена на несколько листов на основе количества строк, как показано на скриншоте ниже:

A screenshot of multiple worksheets created after splitting by row count


Разделение большой таблицы на несколько таблиц на основе значений столбца или количества строк с помощью Kutools для Excel

Приведённые выше коды могут быть сложными для большинства пользователей, поэтому здесь я представлю удивительную функцию — «Разделение данных» из Kutools для Excel. С помощью этой утилиты вы сможете быстро и легко разделить большую таблицу на несколько таблиц по ключевому столбцу или количеству строк.

Kutools для Excel предлагает более 300 продвинутых функций для упрощения сложных задач, повышая креативность и эффективность. Интеграция с возможностями ИИ позволяет Kutools автоматизировать задачи с высокой точностью, делая управление данными без усилий. Подробная информация о Kutools для Excel...  Бесплатная пробная версия...

1. Выберите диапазон данных, который вы хотите разделить, а затем нажмите «Kutools Plus» > «Разделение данных», см. скриншот:

2. В диалоговом окне «Разделение данных на несколько листов» укажите настройки согласно вашим потребностям:

(1.) Выберите «Укажите столбец» или «Фиксированное значение» в разделе «Основа разделения» по необходимости;

(2.) Укажите имя новых листов из выпадающего списка «Правило», вы также можете добавить «Префикс» или «Суффикс» к именам листов.

A screenshot showing settings for splitting data using Kutools

3. Затем нажмите кнопку «ОК», и теперь большая таблица была разделена на несколько маленьких таблиц в новой книге. См. скриншоты:

Разделение таблицы на несколько таблиц по значениям столбца Разделение таблицы на несколько таблиц по количеству строк
A screenshot of an Excel table split into worksheets by column values using Kutools A screenshot of an Excel table split into worksheets by row count using Kutools

Kutools для Excel - Усильте Excel более чем 300 необходимыми инструментами. Наслаждайтесь постоянно бесплатными функциями ИИ! Получите прямо сейчас


Больше связанных статей:

  • Разделение книги на отдельные файлы Excel в Excel
  • Возможно, вам потребуется разделить большую книгу на отдельные файлы Excel, сохраняя каждый лист книги как отдельный файл Excel. Например, вы можете разделить книгу на несколько отдельных файлов Excel и затем отправить каждый файл разным людям для обработки. Таким образом, вы можете поручить определённым лицам обрабатывать конкретные данные и сохранить ваши данные в безопасности. В этой статье будут представлены способы разделения большой книги на отдельные файлы Excel на основе каждого листа.
  • Разделение полного имени на имя и фамилию в Excel
  • Предположим, у вас есть список имён, как показано на первом скриншоте в одном столбце ниже, и вам нужно разделить полное имя на столбец имени, столбец отчества и столбец фамилии, как показано на следующем скриншоте. Вот несколько хитростей, которые помогут вам решить эту проблему.

Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Переворот в анализе данных на основе: Интеллектуальное выполнение   |  Сгенерировать код  |  Создать Пользовательские Формулы  |  Анализ данных и генерация диаграмм  |  Вызов Kutools Functions
Популярные функции: Найти, выделить или отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячейки без потери данных   |   Округлить...
Супер ПОИСК: VLookup с несколькими критериями    VLookup с несколькими значениями  |   Многолистовой поиск   |   Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскр. список   |  Зависимый раскрывающийся список   |  Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки   |  Дизайн листа   |   Улучшенная строка формулы    Управление книгой и листами   |  Библиотека автотекста (Auto Text)   |  Выбор даты   |  Объединить данные   |  Шифрование/Расшифровка ячеек    Отправить письмо по списку   |  Супер фильтр   |   Специальный фильтр (фильтр по жирному/курсиву/зачеркиванию...) ...
Топ–15 наборов инструментов: 12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...)   |   50+ типов диаграмм (Диаграмма Ганта, ...)   |   40+ практических формул (Расчет возраста на основе даты рождения, ...)   |   19 инструментов вставки (Вставить QR-код, Вставить изображение из пути, ...)   |  12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...)   |  7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...)   |   ... и многое другое
Используйте Kutools на вашем предпочитаемом языке – поддерживаются английский, испанский, немецкий, французский, китайский и более40 других языков!

Повысьте свои навыки работы в Excel с Kutools для Excel и ощутите новую эффективность. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени.  Щелкните здесь, чтобы получить наиболее нужную вам функцию...


Office Tab добавляет вкладочный интерфейс в Office, делая вашу работу значительно проще

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна, а не в новых окнах.
  • Увеличьте свою продуктивность на50% и сократите сотни кликов мышью ежедневно!