Разделение таблицы по листам
В 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 может оказать вам услугу. Пожалуйста, сделайте так:
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.
Код VBA: разделите большую таблицу на несколько таблиц по ключевому столбцу:
3. После вставки кода нажмите F5 нажмите клавишу для запуска этого кода, и появится окно подсказки, выберите строку заголовка из ваших данных, см. снимок экрана:
4, Затем нажмите OK, и появится другое диалоговое окно, выберите данные столбца, на основе которых вы хотите разделить таблицу, см. снимок экрана:
5. Нажмите OK, эта большая таблица была разделена на несколько листов по значению столбца, которое расположено после основного листа. И новым листам присваивается имя со значением столбца. Смотрите скриншот:
Разделите большую таблицу на несколько таблиц на основе определенного количества строк с кодом VBA
Если вам нужно разделить таблицу на несколько таблиц в зависимости от количества строк, следующий код VBA может вам помочь.
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.
Код VBA: разделите большую таблицу на несколько таблиц по количеству строк:
3, Затем нажмите F5 нажмите, в появившемся диалоговом окне выберите строку заголовка, см. снимок экрана:
4, Затем нажмите OKи во втором поле подсказки выберите диапазон данных, который вы хотите разделить по количеству строк, см. снимок экрана:
5. А затем продолжайте нажимать OK кнопку, в третьем поле запроса введите количество строк, которые вы хотите разделить, см. снимок экрана:
6, Затем нажмите OK Кнопка, основная таблица была разделена на несколько листов в зависимости от количества строк, как показано ниже:
Разделите большую таблицу на несколько таблиц на основе значения столбца или количества строк с удивительной функцией
Возможно, приведенные выше коды трудны для большинства пользователей, здесь я расскажу об удивительной функции —Разделить данные of Kutools for Excel. С помощью этой утилиты вы можете быстро и легко разделить большую таблицу на несколько таблиц по ключевому столбцу или количеству строк.
Советы: Чтобы применить это Разделить данные функция, во-первых, вы должны скачать Kutools for Excel, а затем быстро и легко примените эту функцию.
После установки Kutools for Excel, пожалуйста, сделайте так:
1. Выберите диапазон данных, который вы хотите разделить, а затем щелкните Kutools Дополнительная > Разделить данные, см. снимок экрана:
2. В Разделить данные на несколько листов диалоговом окне укажите необходимые параметры:
(1.) Выберите Конкретный столбец or Фиксированные строки из Сплит на основе раздел по мере необходимости;
(2.) Укажите имя нового листа из Правила раскрывающийся список, вы можете добавить Префикс or Суффикс к именам листов.
3, Затем нажмите Ok кнопку, и теперь большая таблица была разделена на несколько небольших таблиц в новой книге. Смотрите скриншоты:
4 способа разбить ячейки на части в программе Microsoft Excel
При работе с таблицами Excel иногда нужно разбить определенную ячейку на две части. Сразу нужно отметить, что ячейки в программе Microsoft Excel являются первичными структурными элементами, и они не подлежат делению на более мелкие части, если до этого не были объединены. Но, что делать, если нам, например, нужно создать сложную шапку таблицы, один из разделов который, делится на два подраздела? В этом случае, можно применить небольшие хитрости.
Способ 1: объединение ячеек
Для того, чтобы определенные ячейки казались разделенными, следует объединить другие ячейки таблицы.
- Нужно хорошо продумать всю структуру будущей таблицы.
- Над тем местом на листе, где нужно иметь разделенный элемент, выделяем две соседние ячейки. Находясь во вкладке «Главная», ищем в блоке инструментов «Выравнивание» на ленте кнопку «Объединить и поместить в центре». Жмем на неё.
- Для наглядности, чтобы лучше видеть, что у нас получилось, установим границы. Выделяем весь диапазон ячеек, который планируем отвести под таблицу. В той же вкладке «Главная» в блоке инструментов «Шрифт» жмем на иконку «Границы». В появившемся списке выбираем пункт «Все границы».
Как видим, несмотря на то, что мы ничего не делили, а наоборот соединяли, создается иллюзия разделенной ячейки.
Способ 2: разделение объединенных ячеек
Если нам нужно разделить ячейку не в шапке, а в середине таблицы, то в этом случае, легче объединить все ячейки двух соседних столбцов, а уже потом произвести разделение нужной ячейки.
- Выделяем два соседних столбца. Кликаем на стрелку около кнопки «Объединить и поместить в центре». В появившемся списке, кликаем по пункту «Объединить по строкам».
- Кликаем по той объединенной ячейке, которую нужно разделить. Опять жмем на стрелку около кнопки «Объединить и поместить в центре». На этот раз выбираем пункт «Отменить объединение».
Таким образом, мы получили разделенную ячейку. Но, нужно учесть, что Excel воспринимает этим способом разделенную ячейку, как единый элемент.
Способ 3: разделение по диагонали путем форматирования
А вот, по диагонали можно разделить даже обычную ячейку.
- Кликаем правой кнопкой мыши по нужной ячейке, и в появившемся контекстном меню выбираем пункт «Формат ячеек…». Или же, набираем на клавиатуре сочетание клавиш Ctrl+1.
- В открывшемся окне формата ячеек, переходим во вкладку «Граница».
- Около размещенного посередине окна «Надпись» кликаем на одну из двух кнопок, на которых изображена косая линия, наклоненная справа налево, или слева направо. Выбираем нужный вариант. Тут же можно выбрать тип и цвет линии. Когда выбор сделан, жмем на кнопку «OK».
После этого, ячейка будет разделена косой чертой по диагонали. Но, нужно учесть, что Excel воспринимает этим способом разделенную ячейку, как единый элемент.
Способ 4: разделение по диагонали через вставку фигуры
Следующий способ подойдет для разделения ячейки по диагонали только в том случае, если она большая, или создана путем объединения нескольких ячеек.
- Находясь во вкладке «Вставка», в блоке инструментов «Иллюстрации», кликаем по кнопке «Фигуры».
- В открывшемся меню, в блоке «Линии», кликаем по самой первой фигуре.
- Проводим линию от угла к углу ячейки в том, направлении, которое вам требуется.
Как видим, несмотря на то, что в программе Microsoft Excel не существует стандартных способов разбить первичную ячейку на части, с помощью нескольких способов можно достигнуть требуемого результата.
Разделение в Excel данных по столбцам
В статье «Excel — Оптимизация таблицы» оговаривалось, что для корректной работы с таблицей в каждом ее столбце должны содержаться только логически неделимые данные.
Например, в таблице сотрудников на рис.1, требуется отсортировать данные по фамилиям, а затем по именам сотрудников (для упорядочения однофамильцев). Для этого следует распределить фамилии, имена и отчества по отдельным столбцам.
исходная таблица для разделения данных
Когда требуется разделить данные, находящиеся в одном столбце можно использовать встроенную возможность Excel – разбиение содержимого одного столбца на несколько.
Для этого необходимо выполнить следующие действия:
1. Справа от разделяемого диапазона вставить несколько пустых столбцов по числу отделяемых данных. Это делается, чтобы избежать замены данных в соседних столбцах. В нашем случае вставим два новых столбца (рис.2).
добавляем пустые столбцы
2. Выделить столбец, который содержит разделяемые данные (Фамилия Имя Отчество).
3. На панели Работа с данными вкладки Данные нажимаем кнопку Текст по столбцам.
В открывшемся диалоговом окне Мастер текстов (разбор) – шаг 1 из 3 (рис.3) в области Формат исходных данных указать вариант разбиения:
— с разделителями – если текст в ячейках разделен пробелами, запятыми, точками с запятой, знаками табуляции и т.п. (это наш случай – разделение пробелами);
— фиксированной ширины – если мы разделяем данные на равные (по столбцам) части.
мастер разделения данных Excel
4. Нажимаем кнопку Далее.
5. В окне Мастер текстов (разбор) – шаг 2 из 3 (рис.4) выбираем символ-разделитель — пробел. Если среди предложенного набора отсутствует нужный знак, следует установить флажок другой и в поле ввести требуемый символ. При этом в нижней части окна будет приведен образец разбиения.
указываем признак разделения данных
6. Нажатием кнопки Далее переходим в следующее диалоговое окно: Мастер текстов (разбор) – шаг 3 из 3 (рис.5), которое позволяет установить формат данных для каждого нового столбца. Кнопка Подробнее открывает диалоговое окно, в котором можно установить дополнительные настройки числовых данных.
Можно при разбиении исключить отдельный столбец. Для этого следует выделить его в образце разбора и включить опцию Пропустить столбец.
указываем признак разделения данных
7. После установки всех требуемых параметров нажимаем кнопку Готово, в результате чего содержимое выделенного диапазона будет разбито на три столбца (рис.6).
применяем разделение данных
Теперь можно выполнять сортировку по фамилиям и именам сотрудников (рис.7). Для однофамильцев имена будут располагаться в порядке возрастания алфавита.