Как разделить таблицу в эксель

Как разделить таблицу в эксель

Как разделить таблицу в эксель

Совет. Видео не на вашем языке? Попробуйте выбрать Скрытые субтитры .

Проверьте, как это работает!

Разделите таблицу, чтобы разнести ее данные по двум таблицам.

Выделите ячейку в строке, которая должна быть первой в новой таблице.

На вкладке Работа с таблицами | Макет нажмите кнопку Разделить таблицу.

Примечание: Если новая таблица содержит несколько строк, ее также можно разделить.

Если вы хотите отформатировать таблицу или применить к ней стиль, откройте вкладку Работа с таблицами | Конструктор и выберите нужный стиль.

Быстро разбейте и разнесите таблицу на разные листы

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

Инструмент «Разбить таблицу» автоматически разнесёт данные одного листа по нескольким листам:

Перед началом работы добавьте «Разбить таблицу» в Excel

«Разбить таблицу» – это один из 20+ инструментов в составе надстройки XLTools для Excel. Работает в Excel 2019, 2016, 2013, 2010, десктоп Office 365.

Как разбить таблицу на несколько листов на основе значений столбца

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

Отметьте флажком Таблица с заголовками , если это так.

Выберите разбить по Значениям в этом столбце в качестве метода разделения В выпадающем списке найдите и выберите ключевой столбец:

Задайте способ именования листов результата:

В результате: новые листы размещены по порядку сразу после исходного листа. Каждая вкладка содержит таблицу данных, связанных только с конкретным ключевым значением. Исходные данные в сохранности и не подвергались изменениям.

Разбить таблицу по листам по значению столбца

Как разбить таблицу на несколько листов по заданному числу строк

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

Отметьте флажком Таблица с заголовками , если это так.

Задайте способ именования листов результата:

В результате: новые листы размещены по порядку сразу после исходного листа. Каждая вкладка содержит таблицу с фиксированным числом строк. Исходные данные в сохранности и не подвергались изменениям.

Разбить таблицу по листам по количеству строк

Как образом данные копируются на новые листы

Разнесение таблицы по нескольким рабочим листам по сути означает извлечение и копирование данных из исходнго листа на новые листы книги.

Формулы и ссылки на ячейки:

Чтобы избежать искажения данных, вместо ссылок на ячейки, функций или формул на исходном листе, в листы результата надстройка XLTools «Разбить таблицу» вставляет их значения.

Надстройка «Разбить таблицу» сохраняет форматирование ячеек и таблиц такими же, как на исходном листе. Это относится к формату ячеек (число, дата, текст, т.д.), ширине столбцов, высоте строк, цвету заливки, т.д. Тем не менее, если к вашей исходной таблице применен стиль, то таблицы результата будут вставлены как диапазоны.

Если в таблице есть объединённые ячейки, объединение автоматически снимается, а соответствующие значения дублируются.

Как сохранить листы результата отдельными файлами

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

Разделение таблицы по листам

В 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:

Созданные запросы для каждого города в Power Query

При любых изменениях в исходных данных достаточно будет обновить соответствующую таблицу правой кнопкой мыши — команда Обновить (Refresh) или обновить сразу все города оптом, используя кнопку Обновить всё на вкладке Данные (Data — Refresh All) .

Ссылка на основную публикацию