Макрос группировать строки по условию в excel

Обновлено: 01.07.2024

Прошу помочь с написанием макроса, который бы работал следующим образом:

0. На листе создается кнопка "Группировка", которая активирует макрос, при нажатии на нее; кнопка "Сгруппировать", которая группирует все существующие связи; "Разгруппировать", которая разгруппирует их, соответственно.

При нажатии на кнопку "Группировка", происходят следующие процессы:
1. Сбрасываются (удаляются) все действующие группировки на листе;
2. Определяется диапазон работы макроса - со строки № 6 листа (включительно), до строки, в столбце В которой значение "Общий итог" (номер строки не определен!!);
3. Группируются строки, в столбце А которых стоит значение "-", разумеется каждый набор последовательно идущих строк, удовлетворяющих условие, группируется отдельно, "не задевая" те строки, которые условие не удовлетворяют.

ПС. Если есть вариант решения задачи не макросом, а иным способом - то будет вообще супер!

Пример прилагаю. Благодарю за уделенное время!

Прошу помочь с написанием макроса, который бы работал следующим образом:

0. На листе создается кнопка "Группировка", которая активирует макрос, при нажатии на нее; кнопка "Сгруппировать", которая группирует все существующие связи; "Разгруппировать", которая разгруппирует их, соответственно.

При нажатии на кнопку "Группировка", происходят следующие процессы:
1. Сбрасываются (удаляются) все действующие группировки на листе;
2. Определяется диапазон работы макроса - со строки № 6 листа (включительно), до строки, в столбце В которой значение "Общий итог" (номер строки не определен!!);
3. Группируются строки, в столбце А которых стоит значение "-", разумеется каждый набор последовательно идущих строк, удовлетворяющих условие, группируется отдельно, "не задевая" те строки, которые условие не удовлетворяют.

ПС. Если есть вариант решения задачи не макросом, а иным способом - то будет вообще супер!

Пример прилагаю. Благодарю за уделенное время! Sl1mka

Прошу помочь с написанием макроса, который бы работал следующим образом:

0. На листе создается кнопка "Группировка", которая активирует макрос, при нажатии на нее; кнопка "Сгруппировать", которая группирует все существующие связи; "Разгруппировать", которая разгруппирует их, соответственно.

При нажатии на кнопку "Группировка", происходят следующие процессы:
1. Сбрасываются (удаляются) все действующие группировки на листе;
2. Определяется диапазон работы макроса - со строки № 6 листа (включительно), до строки, в столбце В которой значение "Общий итог" (номер строки не определен!!);
3. Группируются строки, в столбце А которых стоит значение "-", разумеется каждый набор последовательно идущих строк, удовлетворяющих условие, группируется отдельно, "не задевая" те строки, которые условие не удовлетворяют.

ПС. Если есть вариант решения задачи не макросом, а иным способом - то будет вообще супер!

Пример прилагаю. Благодарю за уделенное время! Автор - Sl1mka
Дата добавления - 10.07.2015 в 13:17

Помогите, пожалуйста, я так устала вручную группировать строки. Как написать макрос, чтобы в таблице EXCEL строки автоматом группировались по одинаковым названиям в первом столбце. Т.е. сбоку слева появлялся "плюсик" и можно было группу свернуть или развернуть.

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

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь


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

Макрос сортировки строк в Excel
Добрый вечер, помогите пожалуйста с макросом в excel 2010. Есть таблица шириной в 6 столбцев (A-F).

Макрос для фильтрации строк в Excel.
Необходимо написать макрос в Worde Который должен как в екселя фильровать строки (результат.

Макрос для фильтрации строк в Excel
Помогите написать макрос в Worde Который должен как в екселя фильровать строки (результат.

А нужен ли макрос, если есть встроенный инструмент?
Data -> Subtotals. далее по инструкции. Спасибо буду искать, что это такое Если у ВАс есть возможность можно чуть подробнее.

По-русски это называется консолидация.
Вот здесь можно почитать:

Vi mozhete poprobovat' sovet Tsveta. Vot vam esche odin: idite v menu [bold]Data/Pivot Table[/bold] .
V techenie 20 sekund sdelal vashu zadachu metodom Drag and Drop.

Про консолидацию прочитала спасибо, но мне не надо сумировать и т.д. Мне надо просто огромную таблицу привести в более сжатый вид. Одинаковые позиции по первому столбцу сгруппировать так, чтобы сбоку слева появлялся "плюсик" и можно было группу свернуть или развернуть. Чтобы клиент мог сначала выбрать нужную группу в списке и только затем с помощью плюсика её развернуть и искать подробнее что ему надо.

Я это обычно делаю в ручную с помощью меню Данные-группа и структура-группировать. Очень хочу эту процедуру автоматизировать

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

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

Настройка – очень важный подготовительный этап. Без него невозможно сделать так, чтобы итоговый результат устроил человека. Для правильной настройки группировки, точно следуйте этой инструкции:

  1. Развернуть вкладку «Данные» в том документе, котором надо сгруппировать информацию.
  2. Открываем раздел «Структура», в котором разворачиваем набор инструментов.
  3. Всплывет окно, в каком надо задать настройки группировки. Предустановленные параметры следующие: результаты по колонкам записываются непосредственно в правой части от колонок, а по рядам – внизу. Часто людям не нравится эта идея, поскольку по их мнению расположение наименования сверху позволяет значительно сэкономить время. Чтобы это сделать, надо убрать флажок с чекбокса, который находится непосредственно возле соответствующего параметра. В целом, всем пользователям доступна настройка группировки таким способом, чтобы она подходила именно им. Но также можно сделать формирование стиля автоматическим, включив соответствующий пункт.
  4. Подтверждаем свои действия после того, как в параметры будут внесены нужные изменения, нажатием клавиши ОК.

На этом подготовительный этап можно считать оконченным.

Группировка по строкам в Excel

Осуществим группировку информации по рядам.

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

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

Далее ряды, которые надо объединить, выделяем и открываем вкладку «Данные». При этом итоговая строка не включается в диапазон, который следует группировать.

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

Теперь переходим в раздел «Структура». Для этого надо сделать клик по соответствующей кнопке, располагаемой в правой части ленты. Кликаем по кнопке «Группировать». Там появится специальное меню, в котором и нажимаем эту кнопку.

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

После этого программа предложит метод группировки – по рядам или колонкам. Нужно выбрать тот, который подходит больше всего в конкретной ситуации. То есть, в нашем случае, по строкам. Подтверждаем свои действия путем нажатия клавиши «ОК». После этого процесс создания группы может считаться законченным. Свернуть ее можно с помощью знака минуса.

После того, как группа спрячется, знак минуса будет заменен на плюс. Клик на него позволит развернуть группу.

Группировка по столбцам в Excel

Группировка по колонкам осуществляется аналогично, как и по строкам, только тип группировки нужно выбрать другой в соответствующем диалоговом окне. Но все же, давайте по порядку.

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

  1. Определяемся с тем, какие данные нам нужно группировать. После этого вставляем новую колонку, в которой будет записываться заголовок группы.
  2. Далее выделяем те ячейки, которые предстоит группировать. Аналогично предыдущему примеру, заголовок не выделять.
  3. Переходим на «Данные» и там находим пункт «Структура». После клика на эту кнопку развернется меню, в котором выбираем «Группировать».
  4. В появившемся диалогово окне выбираем пункт «Столбцы». Подтверждаем наши действия.

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

Создание вложенных групп

На описанных выше пунктах меню группировка не заканчивается. Пользователь вполне может создавать вложенные группы, которые позволяют более четко структурировать информацию. Логика действий, в целом, та же самая. Только все описанные выше шаги нужно совершать в рамках материнской группы. Последовательность действий следующая:

  1. Если материнская группа была свернута, ее нужно развернуть.
  2. Те ячейки, которые надо отнести к подгруппе, надо выделить.
  3. После этого открываем вкладку «Данные», переходим в раздел «Структура» и там нажимаем «Группировать».
  4. Затем выбираем способ группировки – по строкам или по колонкам, после чего подтверждаем свои действия.

После этого у нас появится дополнительная вложенная группа. Сколько максимально подгрупп может создавать пользователь? Количество неограниченное. Мы можем увидеть, что сверху над значками минуса появились цифры. Они позволяют быстро переключаться между разными уровнями вложенности.

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

Если же группировка осуществляется по строкам, а не столбцам, а не строкам, то эти цифры будут располагаться слева от листа (или знаков минуса/плюса).

Разгруппирование в Эксель

Предположим, нам группа уже не нужна. Что делать в такой ситуации? Есть ли возможность ее удалить? Да, конечно. Эта операция называется разгруппированием. Для начала выделяем все элементы группы, которую нужно расформировать. После этого переходим во вкладку «Данные» и там ищем раздел «Структура». После того, как мы нажмем на соответствующую кнопку, и в этом меню появится кнопка «Разгруппировать». Нажимаем на нее.

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

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

Давайте теперь немного систематизируем полученную выше информацию и приведем готовую пошаговую инструкцию по тому, как осуществлять многоуровневую группировку данных:

  1. Сначала осуществляем настройку, соответствующую первому разделу этой статьи.
  2. После этого создаем заголовок группы. Для этого делаем дополнительную строку или колонку в зависимости от того, какие данные мы хотим сгруппировать.
  3. Присваиваем в этой колонке или строке название группы.
  4. Выделяем ячейки, которые нужно объединить в одну группу.
  5. Переходим во вкладку «Данные», и там находим группу инструментов «Структура».
  6. Затем нажимаем на кнопку «Группировать», выбираем тип группировки, который нужен в конкретной ситуации и нажимаем на кнопку ОК.
  7. После этого определяемся с тем, как должна называться вторая группа и создаем дополнительную строку с этими данными.
  8. Выделяем ячейки подгруппы, которую нужно выделить. Заголовок, как и в предыдущем примере, не включаем в группу.
  9. Повторяем шаги 5 и 6 применительно ко второму уровню группы.
  10. Повторяем шаги 7-9 применительно к каждому следующему уровню группы.

Как видим, инструкция эта довольно простая для понимания, и умещается в 10 пунктов. Как только ее почувствовать интуитивно, сразу не будет проблемы с тем, чтобы выполнить все эти действия на практике. А теперь давайте разберем некоторые важные аспекты группировки данных.

Автоматическая структуризация в Excel

Весь описанный выше метод – пример ручной группировки данных электронной таблицы. Но есть способ автоматизировать деление информации на группы. Правда, выборку для группировки будет создавать сама программа. Но во многих ситуациях Excel осуществляет структурирование информации правильно.

Самое большое преимущество автоматической структуризации данных в Эксель – экономия времени. Хотя нужно всегда быть готовым к тому, что придется некоторые правки вносить самостоятельно. К сожалению, роботы пока не научились читать мысли.

Когда оптимальнее всего использовать автоматическую группировку? Лучше всего она работает, когда пользователь работает с формулами. В этом случае ошибок, как правило, не возникает.

Что же нужно делать для того, чтобы сгруппировать данные автоматически? Нужно открыть раздел «Группировать» и там выбрать пункт «Создание структуры». Все остальное Эксель сделает за пользователя.

Отмена автоматической группировки осуществляется несколько иным образом. Нужно выбрать пункт «Разгруппировать», но нажать на меню «Очистить структуру». После этого таблица вернется в первоначальный вид.

Как сортировать данные таблицы

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

Цветовое деление

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

Затем переходим в раздел «Столбец». Там находим группу «Сортировать по», и далее выбираем ту колонку, которая нужна в нашей ситуации. Далее задаем критерий, по которому должна осуществляться сортировка данных. Например, им может выступать цвет ячеек. Если мы планируем его использовать, надо предварительно окрасить подходящие ячейки соответствующим цветом.

Чтобы определить цвет, необходимо в разделе «Порядок» сделать клик по изображению стрелочки. Рядом будет располагаться пункт, с помощью которого можно определить, куда будут направляться данные, которые программа отсортировала в автоматическом режиме. Если вам нужно, чтобы они были размещены сверху, надо нажать соответствующую кнопку. Если же требуется, чтобы смещение осуществлялось по направлению по строке, надо выбрать пункт «Влево».

Эти же действия можно выполнить и с другими критериями, создав еще один уровень. Для этого нужно найти пункт «Добавить уровень» в диалоговом окне. Далее мы сохраняем документ, после чего можно снова объединить данные, нажав на кнопку «Применить повторно».

Объединение значений

Excel дает возможность осуществлять группировку значений, основываясь на значении, содержащемся в определенной ячейке. Это нужно, например, когда надо осуществить поиск полей, в которых содержатся определенные имена или данные другого типа (например, коды). Как это сделать? Первые два шага соответствуют предыдущему разделу, только вместо критерия в виде цвета нужно настроить значение, по которому будет осуществляться группировка.

Нас в группе «Порядок» интересует пункт «Настраиваемый список», кликнув по которому, пользователь может как сделать собственный перечень условий для сортировки, так и воспользоваться предустановленным в Excel. Так можно осуществлять объединение данных по любому критерию, включая дату, дни недели и так далее.

Как упростить большую таблицу Эксель

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

  1. В начале каждого диапазона должен быть заголовок и не должно быть пустых ячеек. Заголовки должны включать одинакового типа данные.
  2. Предварительно рекомендуется отсортировать данные в алфавитном порядке.
  3. Воспользуемся командой «Промежуточные итоги», которая находится в том же разделе – «Группировать».

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

Я пытаюсь создать макрос, который группирует строки в зависимости от того, есть ли значение в столбце A. Некоторые ячейки без значения все еще могут иметь текстовую строку null, поэтому было бы лучше использовать что-то вроде длины больше 2 в качестве условия для группировки, а не просто пробелы. Диапазон для применения макроса будет составлять строку 3 через последнюю строку набора данных (или, если диапазон должен быть определен, достаточно будет пройти через строку 3000). Например, если A4 имеет значение, а A10 имеет значение, то строки с 5 по 9 должны стать группой. Я нашел какой-то код, просто погуглив его, но не смог применить его правильно, поэтому предпочел бы просто начать с нуля. Заранее спасибо!

2 ответа

У меня есть файл excel, на первом листе у него есть такие данные, как total count with status active is 59 rows status obsolete 10 rows. Во втором листе 59 записей со столбцом состояния типа ACTIVE AND OBSOLETE . Я хочу создать макрос для выбора записей, нажав на кнопку, которая должна фильтровать.

попробуйте это работает для меня, если пустые ячейки являются пустыми

если вам нужно сгруппировать текст или пробелы, то этот код объединения сделает свое дело

Похожие вопросы:

Я наивный пользователь VBA и ищу макрос VBA, который выполнял бы следующую задачу Удалите 3 вкладки из файла и удалите первые 6 строк из повторных вкладок. Выполните это для всех файлов excel (2013).

Excel macros, похоже, не позволяют использовать undo после их запуска. Есть ли какой-нибудь способ запечь функциональность undo в макрос VBA в Excel?

Мне нужно сгенерировать лист Excel из данных, извлеченных из базы данных через Java. Для этого мне нужно вызвать некоторые Макрофункции VBA при генерации этого Excel. Может ли кто-нибудь помочь мне.

У меня есть файл excel, на первом листе у него есть такие данные, как total count with status active is 59 rows status obsolete 10 rows. Во втором листе 59 записей со столбцом состояния типа ACTIVE.

У меня есть проблема с моим проектом, использующим VBA. У меня есть этот столбец, который имеет тысячи строк. И эти столбцы имеют такие значения, как 0.05, 1.3 и т. д., а также сложные значения с.

У меня есть встроенный документ Word в файле Excel. Я использую макрос ниже, чтобы скопировать значение ячейки из Excel во встроенную закладку документа Word. Макрос отлично работает в Excel 2016.

Для моего программного регрессионного теста я использую Excel для сравнения числовых значений между эталонной версией и версией-кандидатом на выпуск: Заголовок листа Excel для регрессионного.

Я создал рабочую книгу EXCEL 2010 (например, workbook1), которая имеет макрос, который (1) открывает другую рабочую книгу (например, workbook2), (2) извлекает данные из workbook2 и помещает.

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

Читайте также: