Всем привет. Уже все излазил в интернетах наших и ненаших, проблему не решил и вот последний оплот надежды - ваш форум. Суть вопроса: Не работает сортировка по числу. Сортирует только так: 1,10,100... и только потом 2. В ячейках есть текст. Знаю, сто раз писано и расписано про форматы и прочее. Игра с форматами никак не помогает. Ячейки бажные, они экспортированы из SQL базы одного кривого скрипта, соответсвенно там куча пробелов перед числами и после... В SQL сортануть не вариант. Пытался просто вставить весь столбец во временный и удалить весь текст, но так же столкнулся с непониманием Использовал вот этот код:
Код
Public Function GetNumbers(TargetCell As Range) As String
Dim LenStr As Long
For LenStr = 1 To Len(TargetCell)
Select Case Asc(Mid(TargetCell, LenStr, 1))
Case 48 To 57
GetNumbers = GetNumbers & Mid(TargetCell, LenStr, 1)
End Select
Next
End Function
но он не сработал на все ячейки, ошибка. (хотя, на первой ячейке сработал). Как быть? Помогите
anton.myaso, ищите макрофункцию (UDF), которая извлекает числа из ячейки (в интернете их немало), её в доп. столбец и сортировать по нему либо инструмент "текст по столбцам" и "р." в качестве разделителя - так тоже можно отделить число от текста, если принцип будет такой же, как в примере. Ссылка на сайт с макросом из шапки.
Макрос из файла
Код
Option Explicit
Public Function GetNumbersSirXL(TargetCell As Range) As Single
Dim LenStr As Long
For LenStr = 1 To Len(TargetCell)
Select Case Asc(Mid(TargetCell, LenStr, 1))
Case 48 To 57
GetNumbersSirXL = GetNumbersSirXL & Mid(TargetCell, LenStr, 1)
End Select
Next
End Function
P.S.: в исходной UDF некорректный тип переменной (строка). Вот на выходе числа и были как текст. Без принудительного выравнивания, числа будут выравниваться по правому краю, а текст - по левому. Таким образом можно легко визуально определить косяк. Либо можно предварительно выполнить арифметическое действие =1*GetNumbersSirXL(A1), но это неточно)))
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
anton.myaso, пожалуйста) а вообще пример на то и пример, чтобы показать ВСЕ возможные комбинации, а то сначала один набор, а потом потом добавляются случаи, которые под предыдущее правило не попадают… Вот у вас, например, к чему привязываться теперь (даже если пробелы удалить)??? Раньше к "р" можно было, а теперь только к "="…
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄