Cum se sortează numerele într-o celulă din Excel?
Este ușor și obișnuit pentru noi să sortăm numerele într-o listă de coloane, dar ați încercat vreodată să sortați numerele într-o singură celulă? Poate că nu există o modalitate bună pentru dvs., cu excepția aranjării lor una câte una, aici, voi vorbi despre cum să sortați numerele în celule în Excel.
Sortați numerele în celule cu formula
Sortați numerele în celule cu funcția definită de utilizator
Sortează numerele care sunt separate prin virgule în celule cu cod VBA
Sortați numerele în celule cu formula
Pentru a sorta numerele în celule dintr-o foaie de lucru, puteți aplica următoarea formulă lungă, vă rugăm să procedați astfel:
1. Lângă datele dvs., introduceți următoarea formulă, în acest exemplu, o voi tasta în celula C1, a se vedea captura de ecran:
=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. Apoi apăsați Ctrl + Shift + Enter tastele împreună, apoi trageți mânerul de umplere peste intervalul pe care doriți să îl aplicați cu această formulă și veți obține numerele care au fost sortate de la mic la mare. Vedeți captura de ecran:
note:
1. Dacă cifra numărului este mai mare de 15 în celulă, această formulă nu va obține rezultatul corect.
2. Dacă doriți să sortați numerele în ordine descrescătoare, puteți utiliza această formulă: =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. În formulele de mai sus, A1 indică celula care conține numerele pe care doriți să le sortați, o puteți schimba în funcție de nevoile dvs.
Sortați numerele în celule cu funcția definită de utilizator
Deoarece există unele limitări ale formulei, puteți utiliza următoarele Funcție definită de utilizator pentru a sorta numerele în celule mai lungi de 15 cifre.
1. Țineți apăsat butonul ALT + F11 tastele și deschide fișierul Fereastra Microsoft Visual Basic pentru aplicații.
2. Clic Insera > Moduleși lipiți următorul cod în Fereastra modulului.
Cod VBA: Sortează numerele în celule
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. Apoi salvați și închideți acest cod, reveniți la foaia de lucru și introduceți această formulă = sortnumsincell (A1) într-o celulă goală lângă datele dvs., consultați captura de ecran:
4. Și apoi trageți mânerul de umplere în celulele pe care doriți să le conțineți această formulă și toate numerele din celule au fost sortate în ordine crescătoare, după cum se arată în următoarea captură de ecran:
notițe: Dacă doriți să sortați numerele în ordine descrescătoare, vă rugăm să introduceți această formulă = sortnumsincell (A1,1).
Sortează numerele care sunt separate prin virgule în celule cu cod VBA
Dacă numerele dvs. sunt separate de anumite caractere, cum ar fi virgulă, punct și virgulă, punct și așa mai departe ca următoarea captură de ecran, cum le-ați putea sorta în celule? Acum, introduc un cod VBA pentru a le sorta.
1. Țineți apăsat butonul ALT + F11 tastele pentru a deschide Fereastra Microsoft Visual Basic pentru aplicații.
2. Clic Insera > Moduleși lipiți următorul cod în Fereastra modulului.
Cod VBA: numerele de sortare sunt separate prin virgule în celule
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. Apoi apăsați F5 tasta pentru a rula acest cod, apoi selectați celulele care conțin numerele în caseta de prompt popped out, consultați captura de ecran:
4. Apoi faceți clic pe OK, toate numerele din celule au fost sortate ascendent în intervalul original.
notițe: Puteți schimba virgula „,” cu orice alte caractere, după cum aveți nevoie în codul de mai sus. Și acest cod poate sorta doar datele ascendent.
Legate de articole:
Cum se sortează numerele cu cratime în Excel?
Cum se sortează datele după cea mai frecventă valoare din Excel?
Cum se sortează adresa de e-mail după domeniu în Excel?
Cum se sortează rândurile pentru a pune celulele goale deasupra în Excel?
Cele mai bune instrumente de productivitate de birou
Îmbunătățiți-vă abilitățile Excel cu Kutools pentru Excel și experimentați eficiența ca niciodată. Kutools pentru Excel oferă peste 300 de funcții avansate pentru a crește productivitatea și a economisi timp. Faceți clic aici pentru a obține funcția de care aveți cea mai mare nevoie...
Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară
- Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
- Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ferestrele noi.
- Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!