Страницы: 1
RSS
Сортировка ряда строк, как настроить сортировку в диапазоне строк в множестве чисел
 
Всем привет, уважаемые гуру экселя!
Прошу помощи в решении... Часа три мучаюсь :)
Дано: 1000 строк с набором чисел от 1 до 250, расположенных в строке не по ранжиру в 10 столбцах - в произвольном порядке.
сортировать диапазон не получается, т.к. сортирует по первой строке, указанной в пути начала сортировки, перестраивая последовательность следующих столбцов, в соответствии с порядком первой указанной в запросе строки...
С макросами знаком только на уровне копи-паст, поэтому сам написать не могу(((
Прошу помощи у уважаемой публики в решении задачи - необходимо:
упорядочить числа во всех 1000 строках по возрастанию...
Заранее благодарен :idea: ,
С уважением, EPLLI

P.S. Пример из 10 строк во вложении...
Изменено: EPLLI - 27.08.2016 03:03:59 (Добавлен пример)
 
а "упорядочить" - это как? по каким правилам?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
банально - по возрастанию, от наименьшего к наибольшему, чтобы в первом столбце было наименьшее значение строки, а в 10 столбце - наибольшее...
добавил в топикстарт пример таблицы...
Изменено: EPLLI - 27.08.2016 19:46:14
 
разделить столбцы пустыми столбцами - отсортировать каждый отдельно - удалить пустые.
 
Мне нужен порядок строк... фильтр по строкам результата не дает. Может я не правильно понимаю алгоритм?! В каком смысле отсортировать отдельно? Столбец? Мне числовой порядок и последовательность в каждой строке важна :sceptic:
Изменено: EPLLI - 27.08.2016 19:46:23
 
Сортировка в одной строке работает правильно и результат соответствует ожиданиям, но... 1000 строк не протянуть((( думал может формат по образцу сработает - так нет, сортировку не копирует :cry:
 
1. Отметить столбец
2. Кнопка А-Я в группе сортировки и фильтры
3. отметить сортировать в пределах отмеченого
4. сортировка

Повторить п.1-4 10 раз.
пусть 2 сек, чтобы нажать 1 кнопку. итого 80 сек и на этом финиш 3-часовым мучениям
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, спасибо за вариант... После фильтра А-Я допустим строится последовательность 1-го столбца, пункт 3 - сортировать в пределах отмеченного сортирует только первую строку((( варианты по первой строке в моём случае 54... 54 раза сортировать?
Изменено: EPLLI - 27.08.2016 03:56:29 (грамматическая ошибка)))
 
Вот (вложение) результат после нажатия "ок"...(((
сортировка только во второй строке таблицы - этот результат мне уже знаком :oops:
Изменено: EPLLI - 27.08.2016 03:57:42
 
ув. EPLLI почему Вы не хотите воспользоваться советом Ігор Гончаренко, макрорекордером сделайте так как он советует, подкорректируйте и будет Вам сортировка...
 
Указанный метод сортирует по возрастанию столбец при этом искажая текущую последовательность строки... Мне нужна последовательность от меньшего к большему в существующем ряде чисел СТРОК!!! Может я что-то не так понимаю? По столбцу отсортировать не проблема...
Изменено: EPLLI - 29.08.2016 13:11:04
 
сортируются значения в 10-и первых колонках, начиная с строки 1 до первой, в которой пустая ячейка в первой колонке
Код
Sub SortInRow()
 Dim r&, ar, c%, s$, i%, var%(9)
 r = 1
 Do While Not IsEmpty(Cells(r, 1))
   s = " " & Cells(r, 1)
   For c = 2 To 10
     ar = Split(s): p = 1
     For i = 1 To UBound(ar)
       If Val(ar(i)) >= Cells(r, c) Then
         s = Left(s, p - 1) & " " & Cells(r, c) & Right(s, Len(s) - p + 1): Exit For
       Else
         p = InStr(p + 1, s, " ")
       End If
       If p = 0 Then s = s & " " & Cells(r, c)
     Next
   Next
   ar = Split(Right(s, Len(s) - 1))
   For i = 0 To UBound(ar): var(i) = Val(ar(i)): Next
   Cells(r, 1).Resize(1, 10).Value = var: r = r + 1
   Application.StatusBar = r
 Loop
 Application.StatusBar = False
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, спасибо огроменное!!! Всё получилось! Супер! Я знал, надеялся и верил))) Спасибо ещё раз!
 
Ігор Гончаренко,


Ігор Гончаренко,
Добрый День Игорь!!!

Хотел  воспользоваться Вашим кодом макроса. Как положено вставил этот код в  окно Excel и много строк были выделены красным цветом.
Что здесь не так? С моей стороны или же в коде проблема?
Если он не рабочий, то не могли бы Вы его исправить?
Напишите пожалуйста также, что и куда на странице Excel (СТОЛБЕЦ и Строка) вставлять мои данные.
Спасибо Вам! С Наступающим Вас Новым Годом!!!
 
Cristal,

https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=6&TID=153658&a...
Нас никому не сбить с пути, нам все равно куда идти.
 
OVG,

4 ОШИБКИ БЫЛИ ВРОДЕ БЫ ИСПРАВЛЕНЫ А 3 остались, что ещё я могу ещё сделать.
Нигде не мог найти информацию в подобном случае.
2 снимка для наглядности!
Спасибо!!
 
Cristal,


Edit->Replace

Find What:      Alt+0160 (на цифровой клавиатуре)
Replace With: пробел

Replace All
Нас никому не сбить с пути, нам все равно куда идти.
 
Cristal, в красных строках удалите все пробелы, который стоят перед этими строками (там где отступ слева).
На самом деле вам кажется, что там просто пробелы, но в действительности там стоят спец. символы, которые похожи на пробелы.
А вообще вам надо было делать так. Прямо в редакторе VBA нажать Ctrl+H (H английская буква), поставить курсор в поле Find what:, левой рукой нажать клавишу Alt и держать её, а на дополнительной цифровой клавиатуре (с правой стороны клавиатуры) правой рукой нажать последовательно 0160 и отпустить клавишу Alt. Затем в поле Replace with: поставить курсор и нажать 1 раз на клавишу пробел (т.е. написать 1 пробел в нижнем поле), затем нажать клавишу Replace All
Изменено: New - 26.12.2022 19:39:24
 
Цитата
написал:
Cristal , в красных строках удалите все пробелы
Как здорово с Вами работать, всё по шагам объяснили. Никогда не догадался бы я. Был на многих сайтах, подобное описание было но такие тонкости не было.
Хороший учитель. Всё у меня получилось!
Я много пропустил через себя подобные макросы и не стал вникать в их проблеме, думал что это плохой код.
Здорово, талант!
Спасибо!!!
Страницы: 1
Читают тему
Наверх