Страницы: 1 2 След.
RSS
как отсортировать обьединенные ячейки
 
нужно отсортировать объединенные ячейки по столбцу "А", а потом пронумеровать их, или хотя бы отсортировать
 
Стандартными средствами сортировать и нумеровать объединённые ячейки нельзя.  
Объединённые ячейки - зло, вносящее множество неприятностей в работу с таблицами!  
Избегайте их всеми возможными способами!  
Разъединяйте данные и заполняйте получившиеся после этого пустые ячейки значениями из первой таким, например, макросом:  
Sub UnMerge_and_Fill()   ' разгруппировать все ячейки в Selection и ячейки каждой бывшей группы заполнить значениями из их первых ячеек  
  If TypeName(Selection) <> "Range" Then Exit Sub  
  If Selection.Cells.Count <= 1 Then Exit Sub  
  Dim rCell As Range, sValue$, sAddress$, i&  
  Application.ScreenUpdating = False  
  For Each rCell In Intersect(Selection, ActiveSheet.UsedRange)  
     If rCell.MergeCells Then  
        sAddress = rCell.MergeArea.Address: sValue = rCell.Value: rCell.UnMerge  
        Range(sAddress).Value = rCell.Value  
     End If  
  Next  
  Application.ScreenUpdating = True  
End Sub  
А потом уж сортируйте/нумеруйте сколько хотите.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
*в таблице очень много повторений, то есть если есть материал с группой описаний, то объединив название материала эти самые группы сольются в неопределенном порядке  
*есть макрос "что то вроде"  
http://www.planetaexcel.ru/forum.php?thread_id=24998, возможно ли его применение в моем случае?  
 
* спасибо за Ваш макрос, все же буду пробовать  
 
 
и.. вопрос все ещё открыт
 
после Вашего макроса теперь нужен другой, снова объединяющий одинаковые в столбце A
 
Ахиллесовой пятой, а если точнее - неизлечимым геморроем Excel'я является не невозможность сортировки группированных ячеек, а возможность их создания, нарушающая принцип построения баз данных и нормальных электронных таблиц!  
Ну, я бы ещё как-то понял мелко-мягких, если бы они при объединении ячеек просто копировали значение первой ячейки во все скрываемые... Но очищать скрываемые ячейки - это бред!  
Вот здесь http://www.excelworld.ru/forum/3-44-1 и здесь http://www.excelworld.ru/forum/3-43-1 я описал макросы, хоть как-то улучшающие и заменяющие стандартное объединение ячеек.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Не согласен, Леш. В отчетах, бланках объединенные ячейки вполне к месту. Но не в рабочих таблицах, с к-рыми предполагается совершать какие либо действия. Там они так же неуместны, как шорты в Большом театре. Если пользователь бестолков и не понимает этого - это не проблема мелких. И правильно то, что под объединениями значения очищаются, потому как позволяет избежать непредсказуемых результатов при невидимых данных. И обязательно нашлись бы недовольные считающие, что оставлять надо не верхнее значение, а нижнее или среднее. Нормальный, грамотный пользователь понимает, что возможности экса избыточны. Если неопытный пользователь берет в руки достаточно сложный инструмент не имея необходимых знаний для работы с ним - это его и только его проблемы. Не надо хаять инструмент. Учиться надо.
Я сам - дурнее всякого примера! ...
 
Привет, Серёга!  
О том, что объединённые ячейки имеют право на существование, т.к. улучшают вид электронного документа, который не нужно никак программно обрабатывать, спорить не стану.  
Но согласись: лист Экселя - это по сути форма для вывода данных из внутренней 2D-таблицы базы данных с регулярной прямоугольной структурой. Ячейки листа - это поля формы для вывода данных из таблицы.  При этом форма легко настраивается пользователем "под себя" (меняется формат ячеек, создаются связи-формулы между данными ячеек и т.д.).  
В этом-то отношении всё придумано и реализовано отлично. НО с какого дуба нужно было рухнуть чтобы придумать затирать данные из полей таблицы, просто не выводимых в поля формы из-за того, что попали под объединение.  
 
Ладно. Теоретическую дискуссию оставим.  
Ты можешь набросать макрос, который будет объединять в столбце А идущие подряд ячейки с одинаковыми значениями?  
Просто я завтра не знаю, когда возьмусь. А у автора, похоже, горит.  
Ну а я, как освобожусь, посмотрю твой вариант и как всегда подполирую и наведу глянец :)
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Не Леш, не хочу заниматься тем, чего сам не одобряю. Автору подсказал другое решение здесь: http://www.planetaexcel.ru/forum.php/tips.php?thread_id=40231
Я сам - дурнее всякого примера! ...
 
Ну, я бы не сказал, что тот твой "посыл" можно считать полноценной подсказкой... :-)  
Честно говоря, я и сам-то там тебя с трудом понял.  
Ну а если автору никак без объединения не обойтись, а сортировать всё-таки надо?  
Я ему показал как можно разъединить ячейки с восстановлением утерянных при объединении данных.  
После этого он может сортировать как хочет.  
А после его обработки нужно обратно объединить ячейки с одинаковыми значениями(ну, требуют, например, для большей наглядности).
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Леш, валяй, полируй!
 
Парни, спасибо огромное
 
одной отрывистой фразой RAN сокрушил полемику )
 
Ну, если устроил вариант Андрея [RAN], то и ладно.
Только интересно, sanantoni, что вы будете делать когда через некоторое время понадобится провести аналогичную операцию, но с таблицей, в которой по другому расположены столбцы? Или критерий сортировки нужен будет другой? :)  
 
Всё-таки, ИМХО, должно быть 3 этапа обработки данных таблицы с объединёнными ячейками:  
1 - Разъединить все ячейки указанной пользователем области (макросом с заполнением образовавшихся пустых ячеек значениями из первой ячейки группы)  
2 - Ручная обработка (сортировка/добавление/удаление) разгруппированной таблицы пользователем так, как ему захочется  
3 - Группировка в указанных пользователем столбцах подряд идущих ячеек с одинаковыми значениями
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Привет, Леш!  
С обратным объединением проблем гораздо больше. Т.е. для одного столбца - больших вопросов нет, а в примере ТС после разгруппировки в столбце А 2 группы (условно 6 и 4 ячейки),которым в столбце В соответствуют 10 одинаковых. И как В объединять? По подряд идущим уже не катит.  А ежели еще столбец добавить? Поэтому что-то универсальное предложить сложно.  
А с этим макросом я перемудрил слегка, можно и упростить.
 
Привет, Андрей!  
Я тут написАл два макроса по своей методике.  
Посмотри.  
Только я что-то, кажется, в цикле объединения одинаковых намудрил... Чувствую, что можно как-то проще... Но как?
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Работает, тестирую
 
ОБЪЕДИНЕНИЕ идет только по второму столбцу на примере
 
Простите, чем Вы тут занимаетесь? : ) Что требуется получить? [тему не читал]
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
sanantoni,  
что-то я не понял:  
1 - как в вашем примере может что-то работать, когда в нём не прописаны мои макросы?  
2 - Когда я туда перенёс модуль с макросами всё заработало.  
Может, вы не поняли: разгруппировка с заполнением также как и группировка одинаковых идёт в ВЫДЕЛЕННОМ диапазоне, а не в конкретном столбце.  
3 - Я xlsx понимаю с трудом (для 2003-го приходится конвертировать). Если уж со мной общаться, то лучше с помощью XLS
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Мой и не будет работать с этим примером, поскольку он перед тем, как объединять, должен сначала разъединить.  
Макрос Алексея - тоже. Причины я указал выше.
 
{quote}{login=nerv}{date=11.04.2012 02:49}{thema=}{post}Простите, чем Вы тут занимаетесь? : ) Что требуется получить? [тему не читал]{/post}{/quote}
Саш, мы тут эта... Разъединяем, объединяем, … В общем "плюшками балуемся" :)  
 
Андрей,  
а почему это мой не будет работать? Раз нечего разъединять, он и не разъединит. А если найдёт, что объединять, то объединит.  
Только что проверил на адресованном тебе post_326322.xls: всё прекрасно объединил на листе "пример как есть"
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
{quote}{login=RAN}{date=11.04.2012 02:55}{thema=}{post}Мой и не будет работать с этим примером, поскольку он перед тем, как объединять, должен сначала разъединить.  
Макрос Алексея - тоже. Причины я указал выше.{/post}{/quote}  
 
Андрей, скажу по секрету, у товарища в 1-ом столбце уникальные. Объединять по ним )  
 
 
Alex_ST : )
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Леша, так да не так!  
В файле 5 кодов, которым соответствует названиа Сталь угловая.  
Все 5 кодов объединяются правильно в 5 ячеек.  
А вся сталь - в одну.  
Я понимаю, что с Selection твой макрос отработает правильно и по второму столбцу, если в нем выделить 5 различных диапазонов, но для этого есть кнопочка на ленте (или в меню), и макрос не нать.  
Я вижу так - проходим Selection, смотрим, где могут быть объединенные ячейки, запоминаем адреса столбцов, затем идем по столбцам и объединяем с учетом наличия объединенных ячеек в предыдущем столбце. Но чем дальше в лес - тем больше волки...-:)  
 
Саша, вопрос не в уникальных
 
{quote}{login=RAN}{date=11.04.2012 03:33}Саша, вопрос не в уникальных{/post}{/quote}Тогда в чем?
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Андрей,  
мы с тобой об одном и том же листе "пример как есть" файла post_326322.xls говорим?  
Если ДА, то там в столбце А ШЕСТЬ подряд идущих записей шифра товара "1.1-1-1110", которым соответствует наименование товара "Сталь угловая равнополочная общего назначения" в столбце В, и ТРИ подряд идущих записи с шифром товара 1.1-1-1111, которым соответствует точно такое же наименование товара "Сталь угловая равнополочная общего назначения" в столбце В.  
Программа, естественно, просматривая ячейки столбца А, объединяет ШЕСТЬ подряд идущих ячеек с шифром 1.1-1-1110, а потом - ТРИ с шифром 1.1-1-1111  
Аналогично - со столбцом В  
И то, что разным шифрам товара у автора соответствуют одинаковые наименования, это никто кроме него самого знать не может. И никакой автоматизации это не поддаётся.  
Я для того и написАл два макроса чтобы можно было спокойно перемещать\сортировать\удалять строки. А потом уж - наводить красоту, объединяя одинаковые ячейки.  
Если не нужно чтобы товары с одинаковыми названиями объединялись, то нужно их просто разнести в таблице (например, вставив между ними пустую строку, которую после группировки можно будет удалить).
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Именно об этом я и говорю.  
А для автора нужно пройти твоим макросом по столбцу А, объединить ячейки, затем пробежать снова, и объединить параллельно объединенным ячейки в В.
 
\на скорую руку
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
К стати, я всегда стараюсь делать макросы более-менее универсальными, поэтому обычно не использую конкретных названий книг, листов, адресов...    
А под конкретные нужды конкретного пользователя мне делать просто не интересно, т.к. это получается работа на один раз и не для себя. А оно мне нужно?  
Потому и в темах я участвую только в тех, результат которых я в итоге смогу положить в свою копилку потом где-то когда-нибудь применить (для того и комментарии подробные пишу чтобы мне же легче по прошествии времени разбираться было).  
Написанные в этом топике макросы я, наверное, смогу где-нибудь применить. Потому и писАл.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Нашу базу теперь нужно отсортировать по шифру товара, дабы убить повторы, коих огромное количество, а проблема сортировки в том что описания в разных ячейках, Алекс, предложил разбить заполнить по верхнему значению шифр а затем сортировать и объединять как надоразбить вроде как разбили, а вот с объединением теперь проблема в макросе рана слетает в разные стороны шапка, в алекса- остается одно описание а коды разные, excel ведет себя как кошка после валерьянки
 
Приветствую ) Если шифры повторяются, придется при разгруппировке это отслеживать, например, доп. столбец заполнять (уникальными) и при группировке ориентироваться по нему.
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
Страницы: 1 2 След.
Читают тему
Наверх