Если у вас есть большой рабочий лист, содержащий несколько столбцов и сотни или тысячи данных строк, теперь вы хотите разделить эту большую таблицу на несколько небольших таблиц на основе значения столбца или количества строк, чтобы получить следующие результаты. Как бы вы могли справиться с этой задачей в Excel?
Разделите большую таблицу на несколько таблиц на основе значения столбца с кодом VBA
Разделите большую таблицу на несколько таблиц на основе определенного количества строк с кодом VBA
Разделите большую таблицу на несколько таблиц на основе значения столбца или количества строк с удивительной функцией
Разделите большую таблицу на несколько таблиц на основе значения столбца с кодом VBA
Чтобы разделить эту большую таблицу на несколько таблиц на основе определенного значения столбца, следующий код VBA может оказать вам услугу. Пожалуйста, сделайте так:
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
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, Затем нажмите OK, и появится другое диалоговое окно, выберите данные столбца, на основе которых вы хотите разделить таблицу, см. снимок экрана:
5. Нажмите OK, эта большая таблица была разделена на несколько листов по значению столбца, которое расположено после основного листа. И новым листам присваивается имя со значением столбца. Смотрите скриншот:
Разделите большую таблицу на несколько таблиц на основе определенного количества строк с кодом VBA
Если вам нужно разделить таблицу на несколько таблиц в зависимости от количества строк, следующий код VBA может вам помочь.
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
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, Затем нажмите OKи во втором поле подсказки выберите диапазон данных, который вы хотите разделить по количеству строк, см. снимок экрана:
5. А затем продолжайте нажимать OK кнопку, в третьем поле запроса введите количество строк, которые вы хотите разделить, см. снимок экрана:
6, Затем нажмите OK Кнопка, основная таблица была разделена на несколько листов в зависимости от количества строк, как показано ниже:
Разделите большую таблицу на несколько таблиц на основе значения столбца или количества строк с удивительной функцией
Возможно, приведенные выше коды трудны для большинства пользователей, здесь я расскажу об удивительной функции —Разделить данные of Kutools for Excel. С помощью этой утилиты вы можете быстро и легко разделить большую таблицу на несколько таблиц по ключевому столбцу или количеству строк.
Советы:Чтобы применить это Разделить данные функция, во-первых, вы должны скачать Kutools for Excel, а затем быстро и легко примените эту функцию.
После установки Kutools for Excel, пожалуйста, сделайте так:
1. Выберите диапазон данных, который вы хотите разделить, а затем щелкните Кутулс Плюс > Разделить данные, см. снимок экрана:
2. В Разделить данные на несколько листов диалоговом окне укажите необходимые параметры:
(1.) Выберите Конкретный столбец or Фиксированные строки из Сплит на основе раздел по мере необходимости;
(2.) Укажите имя нового листа из Правила раскрывающийся список, вы можете добавить Префикс or Суффикс к именам листов.
3, Затем нажмите Ok кнопку, и теперь большая таблица была разделена на несколько небольших таблиц в новой книге. Смотрите скриншоты:
Нажмите, чтобы скачать Kutools for Excel и бесплатная пробная версия прямо сейчас!
Больше относительных статей:
- Разделить книгу на отдельные файлы Excel в Excel
- Возможно, вам придется разделить большую книгу на отдельные файлы Excel, сохранив каждый рабочий лист книги как отдельный файл Excel. Например, вы можете разделить книгу на несколько отдельных файлов Excel, а затем передать каждый файл другому человеку для обработки. Поступая таким образом, вы можете заставить определенных людей обрабатывать определенные данные и сохранить ваши данные в безопасности. В этой статье будут представлены способы разделения большой книги на отдельные файлы Excel на основе каждого рабочего листа.
- Разделить полное имя на имя и фамилию в Excel
- Предположим, у вас есть список имен, как показано на первом снимке экрана в одном столбце ниже, и вам нужно разделить полное имя на столбец имени , столбец отчества и столбец с фамилией, как показано на следующем снимке экрана. Вот несколько хитрых методов, которые помогут вам решить эту проблему.
- Разделить длинный столбец на несколько столбцов в Excel
- Если у вас есть данные в длинных столбцах в Excel, их просмотр будет затруднен. Но теперь, если вы можете разделить такой длинный список на несколько столбцов в Excel, это упростит просмотр.
- Разделить слово или число на отдельные ячейки в Excel
- Если у вас есть список чисел или слов на листе, и теперь вам нужно разбить содержимое ячейки на буквы в разных ячейках, как показано на следующем снимке экрана, как вы можете справиться с этим заданием в Excel?
- Разделите длинный список на равные группы в Excel
- Если у вас есть длинный список данных, которые необходимо разделить на несколько равных групп, как показано на следующем снимке экрана, как вы могли бы быстро и легко справиться с этой задачей в Excel?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы и хранение данных; Разделить содержимое ячеек; Объедините повторяющиеся строки и сумму / среднее значение… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Избранные и быстро вставляйте формулы, Диапазоны, диаграммы и изображения; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Группировка сводной таблицы по номер недели, день недели и другое … Показать разблокированные, заблокированные ячейки разными цветами; Выделите ячейки, у которых есть формула / имя…
Вкладка Office — предоставляет интерфейс с вкладками в Office и значительно упрощает вашу работу
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Excel для Microsoft 365 Word для Microsoft 365 Outlook для Microsoft 365 PowerPoint для Microsoft 365 Excel 2021 Word 2021 Outlook 2021 PowerPoint 2021 Excel 2019 Word 2019 Outlook 2019 PowerPoint 2019 Excel 2016 Word 2016 Outlook 2016 PowerPoint 2016 Office 2016 Еще…Меньше
Совет. Видео не на вашем языке? Попробуйте выбрать Скрытые субтитры 
Проверьте, как это работает!
Разделите таблицу, чтобы разнести ее данные по двум таблицам.
-
Выделите ячейку в строке, которая должна быть первой в новой таблице.
-
На вкладке Работа с таблицами | Макет нажмите кнопку Разделить таблицу.
Примечание: Если новая таблица содержит несколько строк, ее также можно разделить.
-
Если вы хотите отформатировать таблицу или применить к ней стиль, откройте вкладку Работа с таблицами | Конструктор и выберите нужный стиль.
Вам нужны дополнительные возможности?
Разделение таблицы
Обучение работе с Word
Обучение работе с Excel
Обучение работе с PowerPoint
Обучение работе с Outlook
Нужна дополнительная помощь?
Разделение таблицы по листам
В Microsoft Excel есть много инструментов для сборки данных из нескольких таблиц (с разных листов или из разных файлов): прямые ссылки, функция ДВССЫЛ (INDIRECT), надстройки Power Query и Power Pivot и т.д. С этой стороны баррикад всё выглядит неплохо.
Но если вы нарвётесь на обратную задачу — разнесения данных из одной таблицы на разные листы — то всё будет гораздо печальнее. На сегодняшний момент цивилизованных встроенных инструментов для такого разделения данных в арсенале Excel, к сожалению, нет. Так что придется задействовать макрос на Visual Basic, либо воспольоваться связкой макрорекордер+Power Query с небольшой «доработкой напильником» после.
Давайте подробно рассмотрим, как это можно реализовать.
Постановка задачи
Имеем в качестве исходных данных вот такую таблицу размером больше 5000 строк по продажам:

Задача: разнести данные из этой таблицы по городам на отдельные листы этой книги. Т.е. на выходе нужно получить на каждом листе только те строки из таблицы, где продажа была в соответствующем городе:

Подготовка
Чтобы не усложнять код макроса и сделать его максимально простым для понимания, выполним пару подготовительных действий.
Во-первых, создадим отдельную таблицу-справочник, где в единственном столбце будут перечислены все города, для которых нужно создать отдельные листы. Само-собой, в этом справочнике могут быть не все города, присутствующие в исходных данных, а только те, по которым нам нужны отчеты. Проще всего создать такую таблицу, используя команду Данные — Удалить дубликаты (Data — Remove duplicates) для копии столбца Город или функцию УНИК (UNIQUE) — если у вас последняя версия Excel 365.
Поскольку новые листы в Excel по умолчанию создаются перед (левее) текущего (предыдущего), то имеет смысл также отсортировать города в этом справочнике по убыванию (от Я до А) — тогда после создания листы-города расположатся по алфавиту.
Во-вторых, преобразуем обе таблицы в динамические («умные»), чтобы с ними было проще работать. Используем команду Главная — Форматировать как таблицу (Home — Format as Table) или сочетание клавиш Ctrl+T. На появившейся вкладке Конструктор (Design) назовём их таблПродажи и таблГорода, соответственно:

Способ 1. Макрос для деления по листам
На вкладке Разработчик (Developer) нажмите на кнопку Visual Basic или используйте сочетание клавиш Alt+F11. В открывшемся окне редактора макросов вставьте новый пустой модуль через меню Insert — Module и скопируйте туда следующий код:
Sub Splitter()
For Each cell In Range("таблГорода")
Range("таблПродажи").AutoFilter Field:=3, Criteria1:=cell.Value
Range("таблПродажи[#All]").SpecialCells(xlCellTypeVisible).Copy
Sheets.Add
ActiveSheet.Paste
ActiveSheet.Name = cell.Value
ActiveSheet.UsedRange.Columns.AutoFit
Next cell
Worksheets("Данные").ShowAllData
End Sub
Здесь с помощью цикла For Each … Next реализован проход по ячейкам справочника таблГорода, где для каждого города происходит его фильтрация (метод AutoFilter) в исходной таблице продаж и затем копирование результатов на новый созданный лист. Попутно созданный лист переименовывается в то же имя города и на нем включается автоподбор ширины столбцов для красоты.
Запустить созданный макрос в Excel можно на вкладке Разработчик кнопкой Макросы (Developer — Macros) или сочетанием клавиш Alt+F8.
Способ 2. Создаем множественные запросы в Power Query
У предыдущего способа, при всей его компактности и простоте, есть существенный недостаток — созданные макросом листы не обновляются при изменениях в исходной таблице продаж. Если обновление «на лету» необходимо, то придется использовать связку VBA+Power Query, а точнее — создавать с помощью макроса не просто листы со статическими данными, а обновляемые запросы Power Query.
Макрос в этом случае частично похож на предыдущий (в нём тоже есть цикл For Each … Next для перебора городов в справочнике), но внутри цикла будет уже не фильтрация и копирование, а создание запроса Power Query и выгрузка его результатов на новый лист:
Sub Splitter2()
For Each cell In Range("таблГорода")
ActiveWorkbook.Queries.Add Name:=cell.Value, Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Источник = Excel.CurrentWorkbook(){[Name=""таблПродажи""]}[Content]," & Chr(13) & "" & Chr(10) & " #""Измененный тип"" = Table.TransformColumnTypes(Источник,{{""Категория"", type text}, {""Наименование"", type text}, {""Город"", type text}, {""Менеджер"", type text}, {""Дата сделки"", type datetime}, {""Стоимость"", type number}})," & Chr(13) & "" & Chr(10) & " #""Строки с примененным фильтром"" = Table.Se" & _
"lectRows(#""Измененный тип"", each ([Город] = """ & cell.Value & """))" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Строки с примененным фильтром"""
ActiveWorkbook.Worksheets.Add
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=" & cell.Value & ";Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [" & cell.Value & "]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = cell.Value
.Refresh BackgroundQuery:=False
End With
ActiveSheet.Name = cell.Value
Next cell
End Sub
После его запуска мы увидим те же листы по городам, но формировать их будут уже созданные запросы Power Query:

При любых изменениях в исходных данных достаточно будет обновить соответствующую таблицу правой кнопкой мыши — команда Обновить (Refresh) или обновить сразу все города оптом, используя кнопку Обновить всё на вкладке Данные (Data — Refresh All).
Ссылки по теме
- Что такое макросы, как их создавать и использовать
- Сохранение листов книги как отдельных файлов
- Сборка данных со всех листов книги в одну таблицу
Май
25
Делюсь как разделить таблицу на 2 части:
Если нужно разделить таблицу на 2 части (чтобы написать продолжение табл.), то можно это сделать так:
- Установить курсор мыши на нужную строку таблицы, и нажать сочетание клавиш Ctrl+Shift+Enter. Таблица разделится на 2 части
- Выбираете меню «Файл — Работа с таблицами — Макет«, и в нем находите и выбираете пункт «Разбить таблицу«.
Работа с таблицами Макет
Разделить таблицу
Итак, Вы узнали как разделить таблицу на 2 части
Если у Вас есть что сказать, оставляете комментарии…
Мне очень нужны ваши отзывы, твиты, нажимайте, делитесь с друзьями. Спасибо
(Эксель) Microsoft Office. Excel 2003, 2007, 2010, 2013, 2016, 2019, 365

Светлана
Доброго дня всем и успешной учебы!
В любой деятельности для проведения анализа и подведения итогов формируются сводные отчеты и итоговые таблицы, но возникают ситуации, когда необходимо проделать обратную операцию и разделить итоговую таблицу на несколько частей. Для разделения таблиц на составные части, как правило, используются такие стандартные инструменты Excel как фильтрация, копирование и последующая вставка на отдельные листы или отдельные рабочие книги, что достаточно трудоемко, утомительно и часто требует ручного форматирования.
Для решения задач по разъединению таблиц на части в зависимости от значения в заданном столбце можно использовать готовое решение в виде надстройки для Excel.

Надстройка позволяет разделить таблицу на части, используя в качестве критерия для разделения, значения заданного столбца, например, разложить объединенную таблицу с наименованиями материалов на составные части, соответствующие номерам складов. В этом случае надстройка создает новые листы или новые рабочие книги в зависимости от выбранной опции и переносит на эти листы соответсвующие строки таблицы.
Номер столбца задается пользователем в диалоговом окне надстройки. Для безошибочного определения номера столбца, имеющего буквенное обозначение, в диалоговом окне надстройки предусмотрена возможность быстрого переключения стиля ссылок с A1 на R1C1 и обратно. Чтобы шапка таблицы не подверглась разделению вместе с остальными строками таблицы и присутствовала на каждом листе, в диалоговом окне надстройки указывается номер строки, с которой должно начаться разделение. Номер конечной строки определяется автоматически.
Как разделить таблицу по разным листам?
Чтобы разделить таблицу по разным листам, достаточно выбрать опцию «По листам», указать столбец с разделяемыми значениями, номер начальной строки и нажать кнопку «Пуск». В этом случае в рабочей книге для каждого разделяемого значения создается новый лист, имя которого соответствуют этому значению. В результате на каждом отдельном листе остаются строки с одним из разделяемых значений на пересечении со столбцом, значения которого используются в качестве критерия для разделения. Для того, чтобы упорядочить новые листы, можно установить флажок в поле «Сортировать листы по возрастанию».
Имя листа может состоять не более чем из 31 символа, поэтому если длина значения больше этой величины, то в имени листа оно обрезается до 31 символа. В строках листа значение остается без изменений.
Как разделить таблицу по разным рабочим книгам?
Для разделения таблицы по разным рабочим книгам, необходимо выбрать опцию «По книгам», задать номер столбца, значения которого подлежат разделению, номер начальной строки, выбрать папку, в которую будут сохранены новые рабочие книги и запустить программу. По умолчанию все новые рабочие книги остаются открытыми, но в работе надстройки предусмотрена возможность автоматического закрытия рабочих книг с разнесенными по ним строками. Для этого необходимо установить флажок в поле «Закрывать рабочие книги». Имена новых рабочих книг соответствуют разделяемым значениям.
Имя рабочей книги может состоять не более чем из 189 символов, поэтому в случае, когда длины значений больше этой величины, имена рабочих книг обрезаются до 189 символов. В строках листа эти значения остаются неизменными.

















