Разделение таблицы по листам
В 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).
Ссылки по теме
- Что такое макросы, как их создавать и использовать
- Сохранение листов книги как отдельных файлов
- Сборка данных со всех листов книги в одну таблицу
Введение
Предположим, у нас есть рабочий лист с большим количеством данных, и нам нужно разделить данные на отдельные книги Excel на основе столбца «Категория». Решить данную проблему возможно ручным способом, применяя инструмент фильтрации данных. Однако повторное копирование данных потребует терпения.
Как быстро разделить таблицу Excel на отдельные книги макросом. Пошаговый алгоритм
- Сочетанием клавиш Alt+F11 открываем окно Visual Basic
- Создаем новый модуль Insert -> Module
- Вставляем код
Sub Разделить_столбец_по_книгам()
Const column = 2 'номер столбца, по которому будет происходить разделение.'
Const head = True
Set wbAct = ActiveWorkbook
Set dic = CreateObject("Scripting.Dictionary")
lr = Cells(Rows.Count, 1).End(xlUp).Row
lc = Cells(1, Columns.Count).End(xlToLeft).column
arr = Range("A1", Cells(lr, lc)).Value
If head Then fr = 2 Else fr = 1
For i = fr To UBound(arr)
If Trim(arr(i, column)) <> "" Then dic.Item(arr(i, column)) = dic.Item(arr(i, column)) & "|" & i
Next
iPath = wbAct.Path & Application.PathSeparator & "Result" & Application.PathSeparator
'Result - название папки с результатами'
If Dir(iPath, vbDirectory) = "" Then MkDir iPath
arrDic = dic.keys
Set Rng = Nothing
Application.DisplayAlerts = False
For i = 0 To UBound(arrDic)
rrs = Split(Mid(dic.Item(arrDic(i)), 2), "|")
If head Then Set Rng = Rows(1)
For Each rr In rrs
If Not Rng Is Nothing Then Set Rng = Union(Rows(rr), Rng) Else Set Rng = Rows(rr)
Next
Set wb = Workbooks.Add(1)
Set sh = wb.Sheets(1)
Rng.Copy
sh.[A1].PasteSpecial xlPasteColumnWidths
sh.[A1].PasteSpecial xlPasteAll
Set Rng = Nothing
wb.SaveAs iPath & Replace_symbols(arrDic(i)) & ".xlsx", xlOpenXMLWorkbook
wb.Close False
Next
Application.DisplayAlerts = True
End Sub
'Замена запрещённых символов в имени файла или папки'
Function Replace_symbols(ByVal txt As String) As String
St$ = "\/~!@#$%^&*=|`'"""
For i% = 1 To Len(St$)
txt = Replace(txt, Mid(St$, i, 1), "_")
Next
Replace_symbols = txt
End Function
- На второй строке кода, цифру 2 замените на номер столбца, в котором содержится критерий для разбиения
- Сохраните код Ctrl+S
- Сохраните файл Excel, как книгу с поддержкой макросов xlsm
- Выполните макрос Alt+F8
Папка с новыми файлами будет лежать по тому же пути, что и файл, в котором вы запускали макрос
Заключение
С помощью этого руководства и готового кода макроса Вы сможете сэкономить свое время и за несколько минут создать столько книг Excel, сколько уникальных значений в выбранном Вами столбце. Вся остальная информация автоматически перенесется в новые книги.
У нас Вы можете заказать выполнение задач по MS Excel и Google таблицам
А также, пройти бесплатные онлайн курсы по MS Excel с заданиями
Содержание
- Как разделить таблицу в excel на 2 части по горизонтали
- Как разделить таблицу на две части в Excel?
- Как разделить таблицу на 2 части?
- Как в Excel разделить таблицу?
- Как разбить таблицу на колонки в Excel?
- Как разделить окно на две части в Excel?
- Как разделить таблицу в ворде по вертикали?
- Как перенести таблицу с одной страницы на другую?
- Как Разбить на страницы Excel?
- Как в Excel разбить на страницы?
- Как в Excel разбить диапазон?
- Как в Excel разделить данные в одной ячейке?
- Как в Excel разделить текст в одной ячейке на две строки?
- Как в Excel разбить число на несколько ячеек?
- Как сделать 2 страницы в Экселе?
- Как открыть 2 окна Excel на рабочем столе?
- Как сделать две страницы на одном листе в Excel?
- 4 способа разбить ячейки на части в программе Microsoft Excel
- Способ 1: объединение ячеек
- Способ 2: разделение объединенных ячеек
- Способ 3: разделение по диагонали путем форматирования
- Способ 4: разделение по диагонали через вставку фигуры
- Как разделить таблицу в Excel
- Другие интересные материалы
- Разделение таблицы по листам
- Постановка задачи
- Подготовка
- Способ 1. Макрос для деления по листам
- Способ 2. Создаем множественные запросы в Power Query
Как разделить таблицу в excel на 2 части по горизонтали
Как разделить таблицу на две части в Excel?
Как разделить таблицу на 2 части?
- Поместите курсор в строку, которая должна стать первой строкой второй таблицы. В представленном примере это третья строка. …
- На вкладке МАКЕТ в группе Объединение выберите команду Разделить таблицу. Таблица будет разделена на две части.
Как в Excel разделить таблицу?
- В таблице щелкните ячейку, которую вы хотите разделить.
- Перейдите на вкладку «Макет таблицы».
- В области «Ячейки»щелкните «Разделить».
- В диалоговом окне выберите нужное количество столбцов и строк.
Как разбить таблицу на колонки в Excel?
Разделение текста на столбцы с помощью мастера распределения текста по столбцам
- Выделите ячейку или столбец с текстом, который вы хотите разделить.
- На вкладке Данные нажмите кнопку Текст по столбцам.
- В мастере распределения текста по столбцам установите переключатель с разделителями и нажмите кнопку Далее.
Как разделить окно на две части в Excel?
Разделение листа на области
- Выделите ячейку под строкой или справа от столбца, по которым следует произвести разделение.
- На вкладке Вид в группе Окно нажмите кнопку Разделить. Чтобы отменить разделение листа, нажмите кнопку Разделить еще раз.
Как разделить таблицу в ворде по вертикали?
2. Вы также можете использовать простую комбинацию клавиш, чтобы разделить таблицу на несколько таблиц, поместите курсор в ячейку, из которой вы хотите разделить, и затем нажмите Ctrl + Shift + Enter вместе, чтобы разделить таблицу на две части.
Как перенести таблицу с одной страницы на другую?
Выполняется это одновременным нажатием клавиш Ctrl+Enter, при курсоре, установленном в строку, которую намереваемся перенести. Вторая часть таблицы переместится на новую страницу, перейдя на которую нажатием кнопки Enter, можно вписать «Продолжение…», вставить дополнительную строку и пронумеровать ее ячейки.
Как Разбить на страницы Excel?
Вставка разрыва страницы
- Щелкните лист, который нужно напечатать.
- На вкладке Вид в группе Режимы просмотра книги нажмите кнопку Страничный режим . …
- Выполните одно из указанных ниже действий. …
- На вкладке Разметка страницы в группе Параметры страницы нажмите кнопку Разрывы .
- Нажмите кнопку Вставить разрыв страницы .
Как в Excel разбить на страницы?
Как разделить лист в Excel
- Нажмите на разделитель, который находится справа над вертикальной полосой прокрутки.
- Перетащите его вниз, чтобы разделить окно.
- Обратите внимание на две вертикальные полосы прокрутки. …
- Чтобы удалить разделитель, дважды щелкните по горизонтальной линии, которая делит окно (или перетащите её на место).
Как в Excel разбить диапазон?
Распределение содержимого ячейки на соседние столбцы
- Выделите ячейку, диапазон или весь столбец, где содержатся текстовые значения, которые требуется разделить.
- На вкладке Данные в группе Работа с данными нажмите кнопку Текст по столбцам.
- Следуя инструкциям мастера текстов, укажите, как вы хотите разделить текст на отдельные столбцы.
Как в Excel разделить данные в одной ячейке?
Разделение содержимого ячейки на несколько ячеек
- Выделите одну или несколько ячеек, которые хотите разделить. …
- На вкладке Данные в группе Работа с данными нажмите кнопку Текст по столбцам. …
- Установите переключатель С разделителями, если выбран другой вариант, и нажмите кнопку Далее.
Как в Excel разделить текст в одной ячейке на две строки?
Чтобы разбить текст на строки в одной ячейке Excel нужно нажать комбинацию клавиш Alt+Enter.
Как в Excel разбить число на несколько ячеек?
Выделите ячейки с номерами, которые нужно разбить на цифры, затем нажмите Kutools > Слияние и разделение > Разделить клетки.
Как сделать 2 страницы в Экселе?
Вставка разрыва страницы
- Щелкните нужный таблицу.
- На вкладке Вид в группе Режимы просмотра книги щелкните элемент Страничный режим. …
- Выполните одно из указанных ниже действий. …
- На вкладке Разметка страницы в группе Параметры страницы нажмите кнопку Разрывы.
- Нажмите кнопку Вставить разрыв страницы.
Как открыть 2 окна Excel на рабочем столе?
Как открыть два документа в разных окнах на одном экране. Разделить экран на области в Excel.
- После открытия перейдите в панели быстрого доступа на вкладку «Вид».
- После нажатия на пиктограмму «Упорядочить все» на экране появится окошко с контекстным меню, предлагающим выбор расположения окон:
Как сделать две страницы на одном листе в Excel?
Щелкните маленькую стрелку запуска диалогового окна справа внизу. Откроется диалоговое окно Параметры страницы . Выберите вкладку Страница в диалоговом окне Параметры страницы . Установите переключатель разместить не более чем на в разделе Масштаб .
4 способа разбить ячейки на части в программе Microsoft Excel
При работе с таблицами Excel иногда нужно разбить определенную ячейку на две части. Сразу нужно отметить, что ячейки в программе Microsoft Excel являются первичными структурными элементами, и они не подлежат делению на более мелкие части, если до этого не были объединены. Но, что делать, если нам, например, нужно создать сложную шапку таблицы, один из разделов который, делится на два подраздела? В этом случае, можно применить небольшие хитрости.
Способ 1: объединение ячеек
Для того, чтобы определенные ячейки казались разделенными, следует объединить другие ячейки таблицы.
- Нужно хорошо продумать всю структуру будущей таблицы.
- Над тем местом на листе, где нужно иметь разделенный элемент, выделяем две соседние ячейки. Находясь во вкладке «Главная», ищем в блоке инструментов «Выравнивание» на ленте кнопку «Объединить и поместить в центре». Жмем на неё.
Как видим, несмотря на то, что мы ничего не делили, а наоборот соединяли, создается иллюзия разделенной ячейки.
Способ 2: разделение объединенных ячеек
Если нам нужно разделить ячейку не в шапке, а в середине таблицы, то в этом случае, легче объединить все ячейки двух соседних столбцов, а уже потом произвести разделение нужной ячейки.
- Выделяем два соседних столбца. Кликаем на стрелку около кнопки «Объединить и поместить в центре». В появившемся списке, кликаем по пункту «Объединить по строкам».
Кликаем по той объединенной ячейке, которую нужно разделить. Опять жмем на стрелку около кнопки «Объединить и поместить в центре». На этот раз выбираем пункт «Отменить объединение».
Таким образом, мы получили разделенную ячейку. Но, нужно учесть, что Excel воспринимает этим способом разделенную ячейку, как единый элемент.
Способ 3: разделение по диагонали путем форматирования
А вот, по диагонали можно разделить даже обычную ячейку.
- Кликаем правой кнопкой мыши по нужной ячейке, и в появившемся контекстном меню выбираем пункт «Формат ячеек…». Или же, набираем на клавиатуре сочетание клавиш Ctrl+1.
В открывшемся окне формата ячеек, переходим во вкладку «Граница».
Около размещенного посередине окна «Надпись» кликаем на одну из двух кнопок, на которых изображена косая линия, наклоненная справа налево, или слева направо. Выбираем нужный вариант. Тут же можно выбрать тип и цвет линии. Когда выбор сделан, жмем на кнопку «OK».
После этого, ячейка будет разделена косой чертой по диагонали. Но, нужно учесть, что Excel воспринимает этим способом разделенную ячейку, как единый элемент.
Способ 4: разделение по диагонали через вставку фигуры
Следующий способ подойдет для разделения ячейки по диагонали только в том случае, если она большая, или создана путем объединения нескольких ячеек.
- Находясь во вкладке «Вставка», в блоке инструментов «Иллюстрации», кликаем по кнопке «Фигуры».
В открывшемся меню, в блоке «Линии», кликаем по самой первой фигуре.
Проводим линию от угла к углу ячейки в том, направлении, которое вам требуется.
Как видим, несмотря на то, что в программе Microsoft Excel не существует стандартных способов разбить первичную ячейку на части, с помощью нескольких способов можно достигнуть требуемого результата.
Мы рады, что смогли помочь Вам в решении проблемы.
Помимо этой статьи, на сайте еще 11907 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Источник
Как разделить таблицу в Excel
Кнопка Деление на страницы — вызывает инструмент СПДС GraphiCS, который предназначен для разделения таблицы на отдельные части, без потери ее целостности. С помощью данной функции можно разбить большую таблицу для того, чтобы разместить ее на формате, и сохранить при этом возможность редактировать таблицу как единый объект.
Для того чтобы разделить таблицу необходимо:
- открыть таблицу (перейти в редактор таблиц);
- нажать на кнопку для вызова диалогового окна Деление на страницы;
- в диалоговом окне Деление на страницы доступны следующие варианты:
- переключатель Одной страницей отключает деление таблицы;
- выбрать способ деления таблицы:
- Произвольный — разбиение таблицы на произвольные части.
Разрыв страницы перед строкой задается командой контекстного меню Начать новую страницу.
Закрываем диалог и в окне Редактирование таблиц разрыв обозначится границей, с помощью которой можно менять высоту строки.
Таблица с разрывом на чертеже будет выглядеть следующим образом:
Части разделенной таблицы можно перемещать по чертежу независимо друг от друга, при двойном щелчке по любой части открывается полный редактор таблицы.
Строки заголовка таблицы не учитываются. В примере таблица будет разделена на части таким образом, чтобы в каждой части было 5 строк со значениями:
В примере таблица будет разделена на части таким образом, чтобы общая высота строк со значениями в каждой части была не менее 50 мм (допускается отклонение высоты отдельной части таблицы в большую сторону, если суммарная высота строк, входящих в неё не равна 50 мм)
Разделенная на части таблица допускает независимое перемещение каждой части.
В этом уроке Вы узнали об инструменте СПДС GraphiCS, с помощью которого производится деление любой таблицы СПДС. Данный набор инструментов позволит ускорить процесс редактирования таблиц, что в свою очередь сделает выполнение чертежей удобным и комфортным.
Другие интересные материалы
Источник
Разделение таблицы по листам
В 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 и скопируйте туда следующий код:
Здесь с помощью цикла For Each . Next реализован проход по ячейкам справочника таблГорода, где для каждого города происходит его фильтрация (метод AutoFilter) в исходной таблице продаж и затем копирование результатов на новый созданный лист. Попутно созданный лист переименовывается в то же имя города и на нем включается автоподбор ширины столбцов для красоты.
Запустить созданный макрос в Excel можно на вкладке Разработчик кнопкой Макросы (Developer — Macros) или сочетанием клавиш Alt + F8 .
Способ 2. Создаем множественные запросы в Power Query
У предыдущего способа, при всей его компактности и простоте, есть существенный недостаток — созданные макросом листы не обновляются при изменениях в исходной таблице продаж. Если обновление «на лету» необходимо, то придется использовать связку VBA+Power Query, а точнее — создавать с помощью макроса не просто листы со статическими данными, а обновляемые запросы Power Query.
Макрос в этом случае частично похож на предыдущий (в нём тоже есть цикл For Each . Next для перебора городов в справочнике), но внутри цикла будет уже не фильтрация и копирование, а создание запроса Power Query и выгрузка его результатов на новый лист:
После его запуска мы увидим те же листы по городам, но формировать их будут уже созданные запросы Power Query:
При любых изменениях в исходных данных достаточно будет обновить соответствующую таблицу правой кнопкой мыши — команда Обновить (Refresh) или обновить сразу все города оптом, используя кнопку Обновить всё на вкладке Данные (Data — Refresh All) .
Источник
Если у вас есть большой рабочий лист, содержащий несколько столбцов и сотни или тысячи данных строк, теперь вы хотите разделить эту большую таблицу на несколько небольших таблиц на основе значения столбца или количества строк, чтобы получить следующие результаты. Как бы вы могли справиться с этой задачей в 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% и сокращает количество щелчков мышью на сотни каждый день!
Как с помощью макроса разбить таблицу по опред. параметру? |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |