Подобной темы не нашли, искали долго, честно(.. Подскажите пожалуйста форумчане, как можно добиться слейдующего результата..
Нужно упорядочить по Возрастанию (или Убыванию) цифры (, а лучше ещё и буквы) внутри только одной отдельной ячейки.. Имея к примеру хаотичный набор символов, вот такой вот 3461456434 .... Ячеек очень очень много, все они в один столбец.. Подскажите пожалуйста как это можно реализовать ?..
Подобной темы не нашли, искали долго, честно(.. Подскажите пожалуйста форумчане, как можно добиться слейдующего результата..
Нужно упорядочить по Возрастанию (или Убыванию) цифры (, а лучше ещё и буквы) внутри только одной отдельной ячейки.. Имея к примеру хаотичный набор символов, вот такой вот 3461456434 .... Ячеек очень очень много, все они в один столбец.. Подскажите пожалуйста как это можно реализовать ?.. nokeMoH
Большое спасибо Hugo за оперативный ответ, но эта формула не захотела работать в 2003 Excel, выдаёт ошибку Вместо ожидаемого результата, выдаёт фразу #ЗНАЧ! .... Кликнули по Alt+F11 === >>> Insert -> Module ,, вставили формулу, и кликнули далее по [Fx], в нескольких пикселях справа от которой отображается содержимое выделенной ячейки.. Подскажите пожалуйста какое-нибудь решение этой проблемки ?..
Большое спасибо Hugo за оперативный ответ, но эта формула не захотела работать в 2003 Excel, выдаёт ошибку Вместо ожидаемого результата, выдаёт фразу #ЗНАЧ! .... Кликнули по Alt+F11 === >>> Insert -> Module ,, вставили формулу, и кликнули далее по [Fx], в нескольких пикселях справа от которой отображается содержимое выделенной ячейки.. Подскажите пожалуйста какое-нибудь решение этой проблемки ?..
У меня в 2003 работает. Но правда для её работы нужен .Net Framework. Если этого компонента нет - нужно переписывать на коллекцию или словарь, его выгрузку в массив, его сортировку... или в коллекцию складывать сразу сортированно... Ставьте .Net
Хотя вообще из скрина я не понял что там за ошибка.
У меня в 2003 работает. Но правда для её работы нужен .Net Framework. Если этого компонента нет - нужно переписывать на коллекцию или словарь, его выгрузку в массив, его сортировку... или в коллекцию складывать сразу сортированно... Ставьте .Net
Хотя вообще из скрина я не понял что там за ошибка.Hugo
Function SortStr$(txt$) Dim i&, j&, tmp As Byte, b() As Byte b = txt For i = 0 To UBound(b) Step 2 For j = 0 To i - 2 Step 2 If b(j) > b(i) Then tmp = b(j): b(j) = b(i): b(i) = tmp Next j, i SortStr = b End Function
[/vba] [vba]
Код
Function SortStr2$(txt$) Dim i&, n& n = Len(txt) For i = 1 To 255 SortStr2 = SortStr2 & String(n - Len(Replace(txt, Chr$(i), "")), i) Next i End Function
[/vba]
пара вариантов UDF: [vba]
Код
Function SortStr$(txt$) Dim i&, j&, tmp As Byte, b() As Byte b = txt For i = 0 To UBound(b) Step 2 For j = 0 To i - 2 Step 2 If b(j) > b(i) Then tmp = b(j): b(j) = b(i): b(i) = tmp Next j, i SortStr = b End Function
[/vba] [vba]
Код
Function SortStr2$(txt$) Dim i&, n& n = Len(txt) For i = 1 To 255 SortStr2 = SortStr2 & String(n - Len(Replace(txt, Chr$(i), "")), i) Next i End Function
Первая функция с кириллецей плохо работает, придется с байтовых массивов на символьные переписывать: [vba]
Код
Function SortStr3$(txt$) Dim i&, j&, tmp$ ReDim a(1 To Len(txt)) For i = 1 To Len(txt) a(i) = Mid$(txt, i, 1) For j = 1 To i - 1 If a(j) > a(i) Then tmp = a(j): a(j) = a(i): a(i) = tmp Next j, i SortStr3 = Join(a, "") End Function
[/vba]
Первая функция с кириллецей плохо работает, придется с байтовых массивов на символьные переписывать: [vba]
Код
Function SortStr3$(txt$) Dim i&, j&, tmp$ ReDim a(1 To Len(txt)) For i = 1 To Len(txt) a(i) = Mid$(txt, i, 1) For j = 1 To i - 1 If a(j) > a(i) Then tmp = a(j): a(j) = a(i): a(i) = tmp Next j, i SortStr3 = Join(a, "") End Function
Мы разобрались в чём была причина неработоспособности формул, не до конца установленный ExceL (почему-то), после его обновления всё заработало Hugo, MCH, спасибо большое Вам за представленные формулы, они все работают безупречно, как и ожидалось.. Но ни как не получается сделать слейдующее.. Имеется целый список из таких хаотичных наборов символов, записанных всех в один единый столбец, скажем [A].. В этом списке в каждой из ячеек, - всего по одной строчке, - в строчке не более 20-25 символов.. Всего в Столбце несколько тысяч Ячеек, следующих друг за другом всё вниз и вниз, и ещё дальше вниз данного листа до самого его конца.. Имеется несколько документов, в каждом из которых разное количество Ячеек в столбце.. 200, 500, 1000, 3000, 10.000, 20.000 штук.. Вопрос слейдующего характера..
Как применить данные принципы этих формул выше, для массового упорядочивания в каждой отдельной независимо друг от друга ячейке ?.. ни как не получается это сделать..
Мы разобрались в чём была причина неработоспособности формул, не до конца установленный ExceL (почему-то), после его обновления всё заработало Hugo, MCH, спасибо большое Вам за представленные формулы, они все работают безупречно, как и ожидалось.. Но ни как не получается сделать слейдующее.. Имеется целый список из таких хаотичных наборов символов, записанных всех в один единый столбец, скажем [A].. В этом списке в каждой из ячеек, - всего по одной строчке, - в строчке не более 20-25 символов.. Всего в Столбце несколько тысяч Ячеек, следующих друг за другом всё вниз и вниз, и ещё дальше вниз данного листа до самого его конца.. Имеется несколько документов, в каждом из которых разное количество Ячеек в столбце.. 200, 500, 1000, 3000, 10.000, 20.000 штук.. Вопрос слейдующего характера..
Как применить данные принципы этих формул выше, для массового упорядочивания в каждой отдельной независимо друг от друга ячейке ?.. ни как не получается это сделать..nokeMoH