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

Как скопировать группировку строк в excel

  • автор:

Как скопировать группировку строк в excel

Argument ‘Topic id’ is null or empty

Сейчас на форуме

© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru

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

ООО «Планета Эксел»
ИНН 7735603520
ОГРН 1147746834949
ИП Павлов Николай Владимирович
ИНН 633015842586
ОГРНИП 310633031600071

Скопировать диапазон с сохранением группировок

Author24 — интернет-сервис помощи студентам

Есть такая задача: скопировать ячейки на другой лист, сохраняя при этом группировки.

Я просто взял: выделил ячейки и скопировал их в нужное место — и группировки копировались тоже. Ничего специально не делал. А потом понадобилось второй раз скопировать — и группировки уже не копируются.

Как их скопировать?

Здесь вы можете заказать любую студенческую или школьную работу.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Найти диапазон который соответствует дате и данный диапазон имеет более старшую дату
Добрый день! Подскажите как лучше решить данную задачу — Задача — найти диапазон который.

Скопировать файл с сохранением прежней даты
Нужно скопировать файл так, чтобы новый файл имел ту же дату и время создания/изменения, что и.

Скопировать неизвестный диапазон данных
Необходимо обозначить ( выделить или скопировать ) диапазон данных, которые занимают неизвестное.

Скопировать заданный диапазон на указанные листы
Всем доброго времени суток. Что-то никак не могу сообразить как сделать макрос чтобы заранее.

772 / 615 / 294
Регистрация: 05.01.2014
Сообщений: 1,338

Если вы выделите все строки, т.е. наводите курсор на заголовок строки, появляется стрелка в виде указателя, выделяете все строки структуры, копируеете-вставляете. При таком выделении группировка строк будет сохраняться, если вы копируее, просто диапазон, группировка не сохраняется.

Изображения
Регистрация: 02.04.2012
Сообщений: 347
Из ответа я понял, что сохранить группировку в диапазоне нельзя. Так?
772 / 615 / 294
Регистрация: 05.01.2014
Сообщений: 1,338

Нет не правильно, если будете выделять все строки, вместе с заголовками строк, как описано в посте #2, группировка будет сохраняться.

Копирование только видимых ячеек

Если некоторые ячейки, строки или столбцы на сайте не отображаются, можно скопировать все ячейки или только видимые. По умолчанию Excel копирует не только видимые, но и скрытые или фильтрованные ячейки. Если же требуется скопировать только видимые ячейки, выполните действия, описанные ниже. Например, можно скопировать только суммарные данные со структурного таблицы.

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

Совет: Чтобы отменить выделение ячеек, щелкните любую ячейку на этом же.

Команда

  • Щелкните Главная >Найти и выделить, а затем выберите пункт Выделение группы ячеек.
  • Выберите параметр только видимые ячейки и нажмите кнопку ОК.
  • Щелкните Копировать (или нажмите клавиши CTRL+C).
  • Выберите левую верхнюю ячейку области вжатия и нажмите кнопку Вировать (или нажмите CTRL+V).

    Совет: Чтобы скопировать выделенный фрагмент на другой лист или в другую книгу, щелкните вкладку другого листа или выберите другую книгу и выделите левую верхнюю ячейку области вставки.

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

    При копировании и вставке видимых ячеек в диапазоне данных, который содержит скрытые ячейки или к которому применен фильтр, можно заметить, что скрытые ячейки вставляются вместе с видимыми. К сожалению, это нельзя изменить при копировании и вклеии диапазона ячеек в Excel в Интернете так как возможность в виде вметки только видимых ячеек недоступна.

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

    Если не нужно форматировать данные как таблицу и установлено классическое приложение Excel, можно открыть книгу в нем, чтобы скопировать и вставить видимые ячейки. Для этого нажмите кнопку Открыть в Excel и выполните действия, которые можно сделать в окте Копирование и вкопка только видимых ячеек.

    Дополнительные сведения

    Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.

    Многоуровневая группировка строк

    group1.png

    Если у вас имеется большая и сложная таблица на небольшом мониторе (например, ноутбука), то в процессе работы с ней часто возникает желание скрыть часть ненужных в текущий момент данных (строк или столбцов). Основные способы для решения этой проблемы — скрытие строк и группировка. Вот о последнем способе и пойдет речь далее. Предположим, что мы работаем вот с такой сложной многоуровневой таблицей с данными: Обратите внимание на то, что в таблице ясно и четко прослеживаются вложенные друг в друга уровни данных. Такую структуру часто можно увидеть в:

    • бюджетировании — статьи доходов/расходов группируются в блоки (cost centers) или по географическому признаку (страна-край-город)
    • управлении проектами — этапы проектов разбиты обычно на более мелкие подзадачи и действия
    • строительных сметах — похожим образом обычно расписываются расчеты расхода материалов и их стоимости при строительстве
    • и т.д. — дальше придумайте сами.

    Делать такую группировку вручную весьма мучительно, вследствие неудобности и ограниченности средств группировки самого Excel. Поэтому, столкнувшись как-то с подобной задачей в одном из своих проектов, я написал макрос для автоматической группировки подобных списков, которым и хочу тут поделиться. Чтобы применить его к вашему списку, проделайте следующие действия:

    Нажмите сочетание клавиш ALT+F11, чтобы открыть редактор Visual Basic. В нем выберите в меню команду Insert — Module, чтобы вставить новый модуль и скопируйте туда текст макроса:

    Sub Multilevel_Group() Dim level As Single, i As Single Dim start As Single, LastRow As Single Const FIRST_ROW = 2 'первая строка списка Const FIRST_COLUMN = 1 'первый столбец списка Const NUMBER_OF_LEVELS = 3 'количество уровней Set ws = ActiveSheet ws.UsedRange.ClearOutline 'убираем все группировки на листе LastRow = WorksheetFunction.Match("Конец", ws.Columns(FIRST_COLUMN), 0) 'определяем номер последней строки 'проходим во вложенном цикле по уровням и группируем For level = 1 To NUMBER_OF_LEVELS start = 0 For i = FIRST_ROW To LastRow 'если нашли начало группы - запоминаем номер строки If ws.Cells(i, level+FIRST_COLUMN-1) <> "" And _ WorksheetFunction.CountA(ws.Cells(i + 1, FIRST_COLUMN).Resize(1, level)) = 0 Then start = i 'если нашли конец группы - группируем If WorksheetFunction.CountA(ws.Cells(i + 1, FIRST_COLUMN).Resize(1, level)) > 0 And start > 0 Then ws.Rows(start + 1 & ":" & i).Group start = 0 End If Next i Next level End Sub

    При необходимости, текст можно слегка подкорректировать под ваши особенности, а именно изменить:

    • FIRST_ROW — номер первой строки списка, начиная с которой пойдет группировка. Если у вас шапка не из одной строки или над таблицей есть данные — меняйте.
    • FIRST_COLUMN — номер первого столбца списка, с которого начинается анализ и группировка. Если слева от вашей таблицы есть еще колонки, то эту константу также нужно изменить.
    • NUMBER_OF_LEVELS — количество уровней (столбцов) для анализа. В приведенном выше примере мы хотим проанализировать три первых столбца, поэтому значение этой константы =3

    Важно! Макрос предполагает, что:

    • Уровни заполняются по порядку, т.е., например, уровень 3 не может быть написан, если ему не предшествовал уровень 2.
    • В первом столбце списка в последней строке должно быть слово Конец, которое необходимо, чтобы макрос понял, где заканчивается список и пора остановиться:

    group2.png

    Чтобы запустить добавленный макрос для списка на текущем листе, нажмите сочетание клавиш ALT+F8, выберите в списке наш макрос Multilevel_Group и нажмите кнопку Выполнить (Run) .

    Ссылки по теме

    • Что такое макросы, как их создавать, куда копировать текст макроса на Visual Basic
    • Скрытие/отображение ненужных строк и столбцов
  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *