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? Forse non c'è un buon modo per te tranne che disporli uno per uno. Qui ti parlerò di come ordinare i numeri all'interno delle celle in Excel.
Ordina i numeri all'interno delle celle con una formula
Ordina i numeri all'interno delle celle con una Funzione Definita dall'Utente
Ordina i numeri separati da virgole all'interno delle celle con il codice VBA
Ordina i numeri all'interno delle celle con una formula
Per ordinare i numeri all'interno delle celle in un foglio di lavoro, puoi applicare la seguente formula lunga, procedi come segue:
1. Accanto ai tuoi dati, inserisci la seguente formula; in questo esempio, la digiterò nella cella C1, vedi screenshot:
=TESTO(SOMMA(PICCOLO(--STRINGA.ESTRAI(A1;RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A1)));1);RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A1))))*10^(LUNGHEZZA(A1)-RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A1)))));RIPETI("0";LUNGHEZZA(A1)))
2. Quindi premi contemporaneamente i tasti Ctrl + Maiusc + Invio, quindi trascina la maniglia di riempimento sul range in cui desideri applicare questa formula, e otterrai i numeri ordinati dal più piccolo al più grande. Vedi screenshot:
Note:
1. Se il numero di cifre del numero è superiore a 15 nella cella, questa formula non fornirà il risultato corretto.
2. Se vuoi ordinare i numeri in ordine decrescente, puoi usare questa formula: =TESTO(SOMMA(GRANDE(--STRINGA.ESTRAI(A1;RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A1)));1);RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A1))))*10^(LUNGHEZZA(A1)-RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A1)))));RIPETI("0";LUNGHEZZA(A1))).
3. Nelle formule sopra, A1 indica la cella che contiene i numeri che desideri ordinare, puoi cambiarla secondo necessità.

Sblocca la Magia di Excel con Kutools AI
- Esecuzione Intelligente: Esegui operazioni sulle celle, analizza i dati e crea grafici — tutto guidato da semplici comandi.
- Formule Personalizzate: Genera formule su misura per ottimizzare i tuoi flussi di lavoro.
- Codifica VBA: Scrivi e implementa codice VBA senza sforzo.
- Interpretazione delle Formule: Comprendi facilmente formule complesse.
- Traduzione del Testo: Superare le barriere linguistiche all'interno dei tuoi fogli di calcolo.
Ordina i numeri all'interno delle celle con una Funzione Definita dall'Utente
Poiché ci sono alcune limitazioni della formula, puoi utilizzare la seguente Funzione Definita dall'Utente per ordinare i numeri in celle più lunghe di 15 cifre.
1. Tieni premuti i tasti ALT + F11, e si aprirà la finestra di Microsoft Visual Basic for Applications.
2. Clicca su Inserisci > Modulo, e incolla il seguente codice nella 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 tuo foglio di lavoro, e inserisci questa formula =sortnumsincell(A1) in una cella vuota accanto ai tuoi dati, vedi screenshot:
4. E poi trascina la maniglia di riempimento alle celle che desideri contengano questa formula, e tutti i numeri nelle celle saranno ordinati in ordine crescente come mostrato nello screenshot seguente:
Nota: Se vuoi ordinare i numeri in ordine decrescente, inserisci questa formula =sortnumsincell(A1,1).
Ordina i numeri separati da virgole all'interno delle celle con il codice VBA
Se i tuoi numeri sono separati da determinati caratteri come virgola, punto e virgola, punto e così via come mostrato nello screenshot seguente, come potresti ordinarli nelle celle? Ora, ti presento un codice VBA per farlo.
1. Tieni premuti i tasti ALT + F11 per aprire la finestra di Microsoft Visual Basic for Applications.
2. Clicca su Inserisci > Modulo, e incolla il seguente codice nella Finestra del Modulo.
Codice VBA: Ordina i numeri 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 premi il tasto F5 per eseguire questo codice, e poi seleziona le celle che contengono i numeri nella finestra di dialogo che appare, vedi screenshot:
4. E poi clicca OK, tutti i numeri nelle celle saranno ordinati in ordine crescente nell'intervallo originale.
Nota: Puoi cambiare la virgola “,” con qualsiasi altro carattere di cui hai bisogno nel codice sopra. E questo codice può solo ordinare i dati in ordine crescente.
Articoli correlati:
Come ordinare i numeri con trattini in Excel?
Come ordinare i dati per il valore più frequente in Excel?
Come ordinare gli indirizzi email per dominio in Excel?
Come ordinare le righe per mettere le celle vuote in alto in Excel?
I migliori strumenti per la produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un'efficienza mai vista prima. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- 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, invece che in nuove finestre.
- Aumenta la tua produttività del50% e riduce centinaia di clic del mouse ogni giorno!