Страницы: 1
RSS
Сортировка по горизонтали, Отсортировать числа по горизонтали в порядке увеличения
 
Здравствуйте

С сортировкой по вертикали всё ясно, а как быть с сортировкой по горизонтали?
Книга1 ссылка на гугл диск

5 2 8      сделать так 2 5 8
3 5 1                           1 3 5
8 7 9                           7 8 9

самая обычная сортировка по возрастанию.
 
Привет.

НАИМЕНЬШИЙ() функцию поюзайте. Должна помочь.
Вы хотите получить новую таблицу или на месте сортировать?
Изменено: Bema - 28.02.2018 02:00:54
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Настраиваемая сортировка - параметры - столбцы диапазона
и т.д.
 
Цитата
Bema написал:
Вы хотите получить новую таблицу или на месте сортировать?
Желательно на месте
 
ser987,
Код
Sub Макрос2()
Dim r As Range
  For Each r In ActiveSheet.UsedRange.Rows
    r.Sort r(1), xlAscending, Orientation:=xlSortRows
  Next
End Sub
 
Цитата
ser987 написал:
Желательно на месте
Ну тогда Catboyun, подсказал решение.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Казанский, я извиняюсь, но я чайник( что с кодом делать?
 
Цитата
Catboyun написал:
Настраиваемая сортировка - параметры - столбцы диапазонаи т.д.
одну строку понятно как сделать. так нужно каждую строку вручную набирать, а если там их больше тысячи(?
 
Offtop
Цитата
ser987 написал:
я извиняюсь, но я чайник( что с этим делать?
Заваривать и читать #3
По вопросам из тем форума, личку не читаю.
 
Цитата
ser987 написал:
я извиняюсь, но я чайник( что с этим делать?
F1 - Создание макроса
https://www.planetaexcel.ru/techniques/3/59/
 
Процедура для сортировки небольших массивов (до 32767 элементов по горизонтали):
Прочитал про заварку и понял, что зря я здесь это выложил)
Если что, то в переменной "n" процедуры номер сортируемой строки.
Код
Sub ArrSort(mass(), ByVal n%)
Dim a%, b%, c%, i%, xx%, jj%, mm, x1%
Dim arr%(), arr0%(), sArr()
  If UBound(mass, 2) < 2 Then Exit Sub
  ReDim arr(1 To UBound(mass, 2))
  ReDim arr0(1 To UBound(mass, 2)): xx = 1
  For i = 1 To UBound(mass, 2): arr(i) = i: Next
  b = UBound(mass, 2): c = b / 1.247331: i = 1
  Do While c > 2
    Do While i + c <= b
      If mass(n, arr(i)) > mass(n, arr(i + c)) Then
        x1 = arr(i): arr(i) = arr(i + c): arr(i + c) = x1
      End If
      i = i + 1
    Loop
    c = c / 1.247331: i = 1
  Loop
  jj = xx: arr0(xx) = arr(1)
  For c = 2 To b
    xx = xx + 1: x1 = xx
    mm = mass(n, arr(c))
    Do While mass(n, arr0(x1 - 1)) > mm
      arr0(x1) = arr0(x1 - 1): x1 = x1 - 1
      If x1 = jj Then Exit Do
    Loop
    arr0(x1) = arr(c)
  Next
  ReDim sArr(1 To UBound(mass, 1), 1 To UBound(mass, 2))
  For a = 1 To UBound(arr0)
    For c = 1 To UBound(mass, 1)
      sArr(c, a) = mass(c, arr0(a))
    Next c
  Next a: Erase arr: Erase arr0
  mass = sArr: Erase sArr
End Sub
Пример вызова:
Код
ArrSort mass(), 1
Call (ArrSort mass(), 1)
Изменено: Anchoret - 27.02.2018 20:09:58
 
Цитата
Bema написал:
НАИМЕНЬШИЙ() функцию поюзайте. Должна помочь.
{=(НАИМЕНЬШИЙ(($B3:$F3);СТОЛБЕЦ(A:A)))}

вроде разобрался, спасибо за совет, правда придётся создавать новую таблицу и потом ctrl+c ctrl+v, но это не сложно.
совет с #3 у меня не сработал, не знаю почему, в некоторых строках заменят по возрастанию, а в некоторых наоборот, хз что за фигня(наверно я что-то не так сделал, хотя где там можно что-то  напутать...)

народ кидающий макросы и тп, вы считаете человек который шарит в макросах не сможет расставить значения по возрастанию?)))

всем спс, проблема решена!  
 
ser987, так разбираться в макросах и уметь запустить макрос - это две большие разницы)
 
да надо как-нибудь сесть и разобраться что же такое макросы и как их вообще запускать, но времени нет, да и работаю совсем в другой сфере(тобишь может раз в жизни пригодится, а может и не разу)))  
 
OFF: ser987, Вы удивитесь, но здесь на форуме мало профессиональных программистов. Все тоже искали ответы и пр.. Пишу на VBA седьмой год и ни копейки на этом не заработал)
 
Цитата
Anchoret написал:
ни копейки на этом не заработал)
Слава богу, оказывается,  я не один.  :D  :D  
 
Цитата
Anchoret написал:
Пишу на VBA седьмой год и ни копейки на этом не заработал)
Вы хотя бы пишите на VBA . А я и не пишу и ничего не заработал:D  
Изменено: Bema - 27.02.2018 21:24:42
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
Страницы: 1
Наверх