Страницы: 1
RSS
Перемешать ячейки в столбце в хаотичном порядке, соблюдая диапазоны ячеек смешивания
 
Доброе утро уважаемые форумчане!
Столкнулся с такой задачей:
Есть у меня в столбце Е набор из +2000 строк.
Хочу перемешать строки, которые содержат текст "КИНО", идущие подряд друг за другом, пока не появится пустая строка.
Перемешивать строки можно только в пределах, диапазона, когда строки идут подряд.

Пытался прикрутить =СЛЧИС() и =ИНДЕКС(B$4:B$8;РАНГ($F7;$F$4:$F$8)), но данные перемешиваются по всему столбцу Е.

Пользовался поиском, нашел http://www.planetaexcel.ru/forum/?PAGE_NAME=read&FID=8&TID=22238
но немного не мой случай
На выходе хочу получить такой результат:
Исходные данные

Конечный результат

Но пока нет в голове понимания как это сделать.

Обычно делал так:
1. копировал столбец Е в столбец Н
2. добавлял формулу "=СЛЧИС()" в столбец J и растягивал на +2000 строк
3. Выделял строки, в которых есть текст "КИНО"
4. Нажимал сортировка по возрастанию столбца J
Это очень утомительно и однообразно.

Решить проблему хотел макросом.
Подскажите пожалуйста, что можно сделать с такой задачей.
Заранее спасибо всем откликнувшимся!
Файл примера прилагаю вложением.
 
Владислав, пробуйте
Код
Sub Макрос3()
Dim r As Range
  Application.ScreenUpdating = False
  ActiveSheet.AutoFilterMode = False
  Range("E1").Insert Shift:=xlDown
  Range("E1") = "a"
  Columns("E:E").AutoFilter Field:=1, Criteria1:="=*КИНО*"
  ActiveSheet.AutoFilter.Range.Offset(, 1).Formula = "=RAND()"
  For Each r In Range("F2:F" & Cells(Rows.Count, "E").End(xlUp).Row).SpecialCells(xlCellTypeVisible).Areas
    r.Offset(, -1).Resize(, 2).Sort r.Cells(1), Header:=xlNo
  Next
  Cells.AutoFilter
  Range("F:F").Clear
  Range("E1").Delete xlUp
  Application.ScreenUpdating = True
End Sub
 
Казанский, спасибо огромное!
Это именно то, что нужно!
Разрешите Вас отблагодарить.
У Вас есть киви кошелек или веб мани?
 
Владислав, ответил в привате.
Страницы: 1
Читают тему
Наверх