Note: The other languages of the website are Google-translated. Back to English

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


săgeată albastru dreapta balon 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)))

doc-sortare-numere-în-celule-1

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:

doc-sortare-numere-în-celule-1

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.


săgeată albastru dreapta balon 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:

doc-sortare-numere-în-celule-1

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:

doc-sortare-numere-în-celule-1

notițe: Dacă doriți să sortați numerele în ordine descrescătoare, vă rugăm să introduceți această formulă = sortnumsincell (A1,1).


săgeată albastru dreapta balon 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.

doc-sortare-numere-în-celule-1

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:

doc-sortare-numere-în-celule-1

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 Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

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!
fundul officetab
Comentarii (13)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
domnule, vă rog să ne ajutați să sortați datele pentru duplicat mai întâi, indiferent dacă este mic sau mare. Exemplu 1211 ---> 1112 9495 ---> 9945 7379 ---> 7739 Mulțumesc mult pentru ajutor
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, mă întrebam cum este acest UDF, = sortnumsincell (A1,1), poate fi modificat mai general, cum ar fi =sortnumsincell(A1," "," ",,1) unde primul argument, A1, este celula țintă, al doilea argument,"", este un delimitator care poate lua orice caracter, sau un spațiu, sau nimic, cu al treilea argument, "", un delimitator diferit sau același, iar al patrulea argument, 1 sau 0, indicând o sortare ascendentă sau descendentă, cu șirul rezultat afișat, sortat corect, într-o celulă, cu delimitator implicit același cu șirul original, dacă nu este specificat în al treilea termen. Mi-ar plăcea să funcționeze atât pe șir, cât și pe numere, iar uneori al doilea sau al treilea argument ar putea fi un avans de linie, așa cum ar fi introdus manual cu alt-enter. Ai fi eroul meu al lunii dacă ai putea face asta. Am încercat, dar am eșuat lamentabil. Mulțumesc.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am o serie de celule cu numere separate printr-un spațiu pe care vreau să le sortez. de ex. 8 4 5 1 6 3 pe care vreau să le sortez ca 1 3 4 5 6 8 Orice ajutor apreciat
Acest comentariu a fost redus la minimum de moderatorul de pe site
Există vreo modalitate de a sorta mai multe numere în același timp dintr-o celulă? De exemplu, am o listă de 50000 de numere de active, cum ar fi A1234, A1235... și trebuie să trag 500 de numere specifice și trebuie să trag 500 la momentul respectiv pentru a face o schimbare și a salva. Mulțumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
trebuie să sortați 84-12-74-26-98 orice comandă 12-26-74-84-98 sau 98-84-74-26-12 mulțumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dacă CInt(Arr(xMin)) > CInt(Arr(j)) și funcționează
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vreau să sortez o sumă totală de la 14000 la 20000 din diferite rânduri. Exemplu: - 2000,1500 un rând și astfel, toată cantitatea de rând de aranjat
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, codul VBA pare să iasă incorect, de exemplu înainte de 13,50,47,7,39 și după 13-39-47-50-7. Ceva idei de ce?
Acest comentariu a fost redus la minimum de moderatorul de pe site
hOLA, MI PROBLEMA ES QUE TENGO EXEL 2019 EN ESPAÑOL COMO SERIA LA FORMULA?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum se sortează textul AZ într-o celulă în Excel?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, mulțumesc pentru binele pentru sortarea numerelor care sunt separate prin virgule în celule cu cod VBA
Doar că m-am confruntat cu o problemă cu codul.
Codul nu poate detecta numărul cu trei cifre. de exemplu numerele (65, 93, 53, 72, 64, 85, 103, 48, 77, 81, 54) după aplicarea codului, noua ordine (103, 48, 53, 54, 64, 65, 72, 77, 81, 85, 93)
Aveti vreo solutie pentru problema?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, omer, poate că codul de mai jos vă poate ajuta, vă rugăm să încercați:
Funcție publică CellSort(r As Range) As String
Dim bry() As Long, L As Long, U As Long
ch = r(1).Text
ary = Split(ch, ",")
L = LBound(ary)
U = UBound(ary)
Redim bry (L la U)
Pentru i = LBound(ary) To UBound(ary)
bry(i) = CLng(ary(i))
Apoi eu
Apelați BubbleSort(bry)
Pentru i = LBound(bry) To UBound(bry)
ary(i) = CStr(bry(i))
Apoi eu
CellSort = Join(ary, ",")
Sfârşit Funcţia

Sub BubbleSort(arr)
Dim strTemp ca variantă
Dim i As Long
Dim j As Long
Dim lngMin As Long
Dim lngMax As Long
lngMin = LBound(arr)
lngMax = UBound(arr)
Pentru i = lngMin la lngMax - 1
Pentru j = i + 1 To lngMax
Dacă arr(i) > arr(j) Atunci
strTemp = arr(i)
arr(i) = arr(j)
arr(j) = strTemp
Final, dacă
Următorul j
Apoi eu
End SubDupă introducerea codului de mai sus, vă rugăm să aplicați această formulă: =CellSort(A1).Și vei obține rezultatul de care ai nevoie.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hola, se pueden ordenar letras en una sola celda por orden alfabético? Folosești excel pentru Mac. Multumesc
Nu există comentarii postate aici încă

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL