Note: The other languages of the website are Google-translated. Back to English
Login  \/ 
x
or
x
Registrati  \/ 
x

or

Come ordinare i numeri all'interno di una cella in Excel?

È facile e comune per noi ordinare i numeri in un elenco di colonne, ma hai mai provato a ordinare i numeri all'interno di una singola cella? Potrebbe non esserci un buon modo per te se non disporli uno per uno, qui parlerò di come ordinare i numeri all'interno delle celle in Excel.

Ordina i numeri all'interno delle celle con la formula

Ordina i numeri all'interno delle celle con la funzione definita dall'utente

Ordina i numeri separati da virgole all'interno delle celle con codice VBA


freccia blu freccia destra Ordina i numeri all'interno delle celle con la formula

Per ordinare i numeri all'interno delle celle in un foglio di lavoro, puoi applicare la seguente formula lunga, per favore fai come segue:

1. Accanto ai tuoi dati, inserisci la seguente formula, in questo esempio, la digiterò nella cella C1, vedi screenshot:

=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-sort-numbers-in-cells-1

2. Quindi premere CTRL + MAIUSC + INVIO tasti insieme, quindi trascina il quadratino di riempimento sull'intervallo in cui desideri applicare questa formula e otterrai che i numeri sono stati ordinati da piccoli a grandi. Vedi screenshot:

doc-sort-numbers-in-cells-1

Note:

1. Se la cifra del numero è più di 15 nella cella, questa formula non otterrà il risultato corretto.

2. Se desideri ordinare i numeri in ordine decrescente, puoi utilizzare questa formula: =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. Nelle formule precedenti, A1 indica la cella che contiene i numeri che si desidera ordinare, è possibile modificarla secondo le proprie necessità.


freccia blu freccia destra Ordina i numeri all'interno delle celle con la funzione definita dall'utente

Poiché esistono alcune limitazioni della formula, è possibile utilizzare quanto segue Funzione definita dall'utente per ordinare i numeri nelle celle più lunghe di 15 cifre.

1. Tieni premuto il ALT + F11 chiavi e apre il file Finestra di Microsoft Visual Basic, Applications Edition.

2. Clic inserire > Moduloe incolla il codice seguente nel file Finestra del modulo.

Codice VBA: ordina i numeri all'interno delle celle

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. Quindi salva e chiudi questo codice, torna al foglio di lavoro e inserisci questa formula = sortnumsincell (A1) in una cella vuota accanto ai tuoi dati, vedi screenshot:

doc-sort-numbers-in-cells-1

4. Quindi trascina il quadratino di riempimento sulle celle in cui desideri contenere questa formula e tutti i numeri nelle celle sono stati ordinati in ordine crescente come mostrato nella seguente schermata:

doc-sort-numbers-in-cells-1

Osservazioni:: Se vuoi ordinare i numeri in ordine decrescente, inserisci questa formula = sortnumsincell (A1,1).


freccia blu freccia destra Ordina i numeri separati da virgole all'interno delle celle con codice VBA

Se i tuoi numeri sono separati da determinati caratteri come virgola, punto e virgola, punto e così via come nella seguente schermata, come potresti ordinarli nelle celle? Ora, presento un codice VBA per ordinarli.

doc-sort-numbers-in-cells-1

1. Tieni premuto il ALT + F11 chiavi per aprire il Finestra di Microsoft Visual Basic, Applications Edition.

2. Clic inserire > Moduloe incolla il codice seguente nel file Finestra del modulo.

Codice VBA: i numeri di ordinamento sono separati da virgole all'interno delle celle

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. Quindi premere F5 chiave per eseguire questo codice, quindi selezionare le celle che contengono i numeri nella finestra di richiesta saltata fuori, vedi screenshot:

doc-sort-numbers-in-cells-1

4. E poi clicca OK, tutti i numeri nelle celle sono stati ordinati in modo crescente nell'intervallo originale.

Osservazioni:: Puoi cambiare la virgola "," con qualsiasi altro carattere di cui hai bisogno nel codice sopra. E questo codice può solo ordinare i dati in modo ascendente.


Articoli correlati:

Come ordinare i numeri con trattini in Excel?

Come ordinare i dati in base al valore più frequente in Excel?

Come ordinare l'indirizzo e-mail per dominio in Excel?

Come ordinare le righe per mettere le celle vuote in cima in Excel?


I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office / Excel 2007-2019 e 365. Supporta tutte le lingue. Facile distribuzione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce centinaia di clic del mouse ogni giorno!
fondo officetab
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    omer1905 · 9 months ago
    Hi thanks for nice good for sorting numbers which separated by commas within cells with VBA code

    Just I have faced one problem with the code.

    The code cannot detect three digit number. for example the numbers (65, 93, 53, 72, 64, 85, 103, 48, 77, 81, 54) after applying the code, the new order (103, 48, 53, 54, 64, 65, 72, 77, 81, 85, 93)

    Do you have any solution for the problem?
    • To post as a guest, your comment is unpublished.
      skyyang · 9 months ago
      Hello, omer,
      May be the below code can help you, please try:

      Public Function 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 To U) For i = LBound(ary) To UBound(ary) bry(i) = CLng(ary(i)) Next i Call BubbleSort(bry) For i = LBound(bry) To UBound(bry) ary(i) = CStr(bry(i)) Next i CellSort = Join(ary, ",") End Function Sub BubbleSort(arr) Dim strTemp As Variant Dim i As Long Dim j As Long Dim lngMin As Long Dim lngMax As Long lngMin = LBound(arr) lngMax = UBound(arr) For i = lngMin To lngMax - 1 For j = i + 1 To lngMax If arr(i) > arr(j) Then strTemp = arr(i) arr(i) = arr(j) arr(j) = strTemp End If Next j Next i End Sub
      After inserting the above code, please apply this formula: =CellSort(A1).
      And you will get the result you need.
  • To post as a guest, your comment is unpublished.
    Biplab Das · 1 years ago
    How to sort A-Z text within a cell in Excel?
  • To post as a guest, your comment is unpublished.
    WALLAS · 1 years ago
    hOLA, MI PROBLEMA ES QUE TENGO EXEL 2019 EN ESPAÑOL COMO SERIA LA FORMULA?
  • To post as a guest, your comment is unpublished.
    MF · 3 years ago
    Hi, the VBA code seems to output incorrectly, example before 13,50,47,7,39 and after 13-39-47-50-7. Any ideas why?
  • To post as a guest, your comment is unpublished.
    Jijoy P Jacob · 3 years ago
    i want to sort total an amount 14000 to 20000 from various row Example:- 2000,1500 one row and like that all row amount to arrange
  • To post as a guest, your comment is unpublished.
    orly · 4 years ago
    need to sort 84-12-74-26-98 any order 12-26-74-84-98 or 98-84-74-26-12
    thank you
    • To post as a guest, your comment is unpublished.
      dd · 1 years ago
      If CInt(Arr(xMin)) > CInt(Arr(j)) and it works
  • To post as a guest, your comment is unpublished.
    Dave · 4 years ago
    Is there is any way to sort more numbers in same time from one cell? Example, i have a list of 50000 asset numbers such as A1234,A1235... and i need to pull 500 specific numbers and i need to pull 500 at the time to make change and save.Thank you
  • To post as a guest, your comment is unpublished.
    Brian Dolan · 4 years ago
    I have a series of cells with numbers separated by a space that I want to sort.
    eg 8 4 5 1 6 3 that I want to sort as 1 3 4 5 6 8
    Any help appreciated
  • To post as a guest, your comment is unpublished.
    wschloss · 6 years ago
    Hi, I was wondering how this UDF, [b]=sortnumsincell(A1,1)[/b], can be modified more generally, like [b]=sortnumsincell(A1," "," ",,1)[/b] where the first argument, [b]A1[/b], is the target cell, the second argument,[b]" "[/b], is a delimiter that could take any character, or a space, or nothing, with third argument, [b]" "[/b], a different or same delimiter, and the fourth argument, [b]1 or 0[/b], indicating an ascending or descending sort, with the result string displaying, correctly sorted, within one cell, with delimiter default same as the original string unless specified in the third term. I would like it to work both on string and numerical, and sometimes the second or third argument might be a line feed, as would be manually entered with alt-enter.
    You'd be my hero of the month if you could do that. I tried but failed miserably.
    Thank you.
  • To post as a guest, your comment is unpublished.
    noob · 6 years ago
    sir, could you please help to sort the data for the duplicate first whether it's small or big
    Example
    1211 ---> 1112
    9495 ---> 9945
    7379 ---> 7739

    Thanks a lot for your help