Как да сортирате числа в клетка в Excel?
За нас е лесно и обичайно да сортираме числа в списък от колони, но опитвали ли сте някога да сортирате числа в една клетка? Може би няма добър начин за вас, освен да ги подредите един по един, тук ще говоря за това как да сортирате числа в клетки в Excel.
Сортирайте числа в клетки с формула
Сортирайте числа в клетки с дефинирана от потребителя функция
Сортирайте числата, разделени със запетаи в клетки с VBA код
Сортирайте числа в клетки с формула
За да сортирате числа в клетки в работен лист, можете да приложите следната дълга формула, моля, направете следното:
1. До вашите данни, моля, въведете следната формула, в този пример ще я въведа в клетка C1, вижте екранната снимка:
=TEXT(SUM(SMALL(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),ROW(INDIRECT("1:"&LEN(A1))))*10^(LEN(A1)-ROW(INDIRECT("1:"&LEN(A1))))),REPT("0",LEN(A1)))
2. След това натиснете Ctrl + Shift + Enter клавиши заедно, след това плъзнете манипулатора за попълване до диапазона, към който искате да приложите тази формула, и ще получите, че числата са сортирани от малки към големи. Вижте екранна снимка:
Забележки:
1. Ако цифрата на числото е повече от 15 в клетката, тази формула няма да даде правилния резултат.
2. Ако искате да сортирате числата в низходящ ред, можете да използвате тази формула: =TEXT(SUM(LARGE(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),ROW(INDIRECT("1:"&LEN(A1))))*10^(LEN(A1)-ROW(INDIRECT("1:"&LEN(A1))))),REPT("0",LEN(A1))).
3. В горните формули A1 показва клетката, която съдържа числата, които искате да сортирате, можете да я промените според вашите нужди.
Сортирайте числа в клетки с дефинирана от потребителя функция
Тъй като има някои ограничения на формулата, можете да използвате следното Потребителска функция за сортиране на числа в клетки, по-дълги от 15 цифри.
1. Задръжте натиснат ALT + F11 ключове и отваря Прозорец на Microsoft Visual Basic за приложения.
2. Щракнете Поставете > Модулии поставете следния код в Прозорец на модула.
VBA код: Сортирайте числа в клетки
Function SortNumsInCell(pNum As String, Optional pOrder As Boolean) As String
'Update 20140717
Dim xOutput As String
For i = 0 To 9
For j = 1 To UBound(VBA.Split(pNum, i))
xOutput = IIf(pOrder, i & xOutput, xOutput & i)
Next
Next
SortNumsInCell = xOutput
End Function
3. След това запазете и затворете този код, върнете се към работния си лист и въведете тази формула =sortnumsincell(A1) в празна клетка до вашите данни, вижте екранна снимка:
4. И след това плъзнете манипулатора за попълване към клетките, които искате да съдържат тази формула, и всички числа в клетките са сортирани във възходящ ред, както е показано на следната екранна снимка:
Забележка: Ако искате да сортирате числата в низходящ ред, моля, въведете тази формула =sortnumsincell(A1,1).
Сортирайте числата, разделени със запетаи в клетки с VBA код
Ако числата ви са разделени с определени знаци като запетая, точка и запетая, точка и т.н., както следва екранната снимка, как можете да ги сортирате в клетки? Сега представям VBA код, за да ги сортирате.
1. Задръжте натиснат ALT + F11 за да отворите Прозорец на Microsoft Visual Basic за приложения.
2. Щракнете Поставете > Модулии поставете следния код в Прозорец на модула.
VBA код: Номерата за сортиране са разделени със запетаи в клетките
Sub SortNumsInRange()
'Update 20140717
Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Set objArrayList = CreateObject("System.Collections.ArrayList")
For Each Rng In WorkRng
Arr = VBA.Split(Rng.Value, ",")
For i = 0 To UBound(Arr)
xMin = i
For j = i + 1 To UBound(Arr)
If Arr(xMin) > Arr(j) Then
xMin = j
End If
Next j
If xMin <> i Then
temp = Arr(i)
Arr(i) = Arr(xMin)
Arr(xMin) = temp
End If
Next i
Rng.Value = VBA.Join(Arr, ",")
Next
End Sub
3. След това натиснете F5 клавиш, за да стартирате този код, и след това изберете вашите клетки, които съдържат числата в изскачащото поле за подкана, вижте екранната снимка:
4, И после щракнете върху OK, всички числа в клетките са сортирани във възходящ ред в оригиналния диапазон.
Забележка: Можете да промените запетаята „,“ на всякакви други знаци, които са ви необходими в горния код. И този код може да сортира данните само по възходящ ред.
Още по темата:
Как да сортирате числа с тирета в Excel?
Как да сортирате данните по най-честата стойност в Excel?
Как да сортирате имейл адрес по домейн в Excel?
Как да сортирате редове, за да поставите празните клетки отгоре в Excel?
Най-добрите инструменти за продуктивност в офиса
Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време. Щракнете тук, за да получите функцията, от която се нуждаете най-много...
Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна
- Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
- Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!