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

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

Author: Xiaoyang Last Modified: 2025-06-05

Если у вас есть большая таблица 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
Популярные функции: Найти, выделить или отметить дубликаты | Удалить пустые строки | Объединить столбцы или ячейки без потери данных |   Округлить без формулы ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP с несколькими значениями | Многолистовой поиск | Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Избранные функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгами и листами | Библиотека автотекста | Выбор даты | Объединить данные | Шифрование/расшифровка ячеек | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр ячеек с жирным/курсивом/зачёркнутым...) ...
Топ-15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ практических формул (Расчет возраста на основе даты рождения, ...) |19 инструментов вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов для объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое

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


Office Tab добавляет вкладки в Office и делает вашу работу намного проще

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