Come ordinare i numeri all'interno di una singola cella in Excel?
Quando si lavora con Excel, ordinare i numeri su un intervallo di celle o all'interno di una colonna è un'operazione comune e semplice. Tuttavia, possono verificarsi situazioni in cui è necessario ordinare numeri contenuti tutti all'interno di un'unica cella, ad esempio se si ricevono dati importati, report consolidati o file esportati in cui più numeri sono memorizzati insieme senza essere separati in celle distinte. Ordinare manualmente i numeri in ciascuna cella può risultare inefficiente e soggetto a errori, specialmente quando si gestiscono grandi quantità di dati o celle contenenti molte cifre. Utilizzando tecniche specifiche, è possibile riordinare rapidamente i numeri all'interno di singole celle per soddisfare le esigenze di organizzazione o analisi dei dati.
In questo articolo scoprirai diversi metodi pratici per ordinare i numeri all’interno delle celle in Excel, tra cui approcci basati su formule, funzioni definite dall’utente e codice VBA. Ogni metodo offre vantaggi specifici ed è ideale per scenari diversi, permettendoti di scegliere la soluzione più adatta alle tue esigenze.
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 codice VBA
Ordina i numeri all'interno delle celle utilizzando la funzione Riempimento automatico di Excel
Ordina i numeri all'interno delle celle con una formula
Per casi semplici in cui tutti i numeri in una cella sono costituiti da singole cifre e non sono presenti delimitatori, puoi utilizzare una formula matriciale per ordinare automaticamente le cifre all’interno della cella. Questo approccio è ideale per gestire codici, ID o qualsiasi situazione in cui le cifre di una cella devono essere riordinate in modo rapido ed efficace.
Segui attentamente questi passaggi:
1. Inserisci una nuova colonna accanto ai tuoi dati. Ad esempio, se i tuoi numeri si trovano nella cella A1, fai clic sulla cella B1 e inserisci la seguente formula:
=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.Poiché si tratta di una formula matriciale, conferma l'inserimento premendo Ctrl + Maiusc + Invio. Nella barra delle formule compariranno delle parentesi graffe attorno alla formula, a indicare che viene elaborata come matrice.
Successivamente, trascina il quadratino di riempimento verso il basso per copiare la formula nelle altre celle in cui desideri applicare la funzione di ordinamento. I numeri in ciascune cella verranno automaticamente ordinati in ordine crescente. Guarda l’esempio qui sotto:

Per un’esperienza più fluida, assicurati di fare riferimento alle celle corrette e che i tuoi dati originali contengano esclusivamente cifre: la presenza di testo misto o caratteri aggiuntivi potrebbe infatti causare problemi.
Note:
- Se una cella contiene più di 15 cifre, questa formula potrebbe non funzionare correttamente a causa del limite predefinito di Excel per la precisione numerica. Per stringhe più lunghe o configurazioni di cifre più complesse, valuta invece l’uso di soluzioni VBA o di una funzione definita dall’utente.
- Per ordinare i numeri in ordine decrescente, puoi sostituire PICCOLOcon GRANDEnella formula e utilizzare:
=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)))
Questa formula funziona allo stesso modo, ma ordina le cifre dal più grande al più piccolo.
- Nelle formule indicate, A1 fa riferimento alla cella contenente i numeri da ordinare. Se i tuoi dati si trovano in una cella diversa, aggiorna semplicemente il riferimento di conseguenza.
- Se compare un errore #VALORE!, assicurati che la cella contenga esclusivamente singole cifre, senza spazi o altri caratteri.
- Quando applichi questo metodo a un dataset ampio, assicurati che le opzioni di calcolo del sistema siano impostate su automatico, in modo che i risultati delle formule vengano aggiornati correttamente durante la copia o la modifica dei dati.

Sblocca la magia di Excel con KUTOOLS AI
- Esecuzione intelligente: Esegui operazioni sulle celle, analizza i dati e crea grafici, il tutto con comandi semplici e intuitivi.
- Formule personalizzate: crea formule su misura per ottimizzare i tuoi flussi di lavoro.
- Codifica VBA: Scrivi e implementa codice VBA in modo semplice e immediato.
- Interpretazione delle formule: Comprendi con facilità anche le formule più complesse.
- Traduzione del testo: Superate le barriere linguistiche direttamente nei vostri fogli di calcolo.
Ordina i numeri all'interno delle celle con una funzione definita dall'utente
In determinate situazioni, ad esempio quando si gestiscono numeri con più di 15 cifre o si richiede maggiore flessibilità, una funzione definita dall’utente (UDF) rappresenta un’alternativa efficace. Le UDF consentono di automatizzare l’ordinamento all’interno delle celle, soprattutto quando le tue esigenze vanno oltre ciò che le formule standard di Excel possono gestire.
Questa soluzione è ideale per chi lavora spesso con colonne di dati importati o codici raggruppati in singole celle, dove la lunghezza del contenuto può essere notevole e i numeri potrebbero richiedere ordinamenti ripetuti.
Ecco come implementarla:
1. Tieni premuto ALT + F11 per aprire la finestra di Microsoft Visual Basic, Applications.
2. Nella finestra di VBA, fai clic su Inserisci > Modulo, quindi copia e incolla il codice seguente nella nuova finestra del modulo:
Codice VBA: Ordina i numeri all'interno delle celle
Function SortNumsInCell(pNum As String, Optional pOrder As Boolean) As String
'UpdatebyExtendoffice
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. Dopo aver incollato il codice, salva e chiudi l'editor VBA. Torna al foglio di lavoro e, in una cella vuota accanto ai tuoi dati (ad esempio B1 o C1), inserisci:
=sortnumsincell(A1)

4. Trascina il quadratino di riempimento per estendere la funzione alle altre celle necessarie. Tutti i numeri all'interno di ciascuna cella selezionata verranno ora ordinati in ordine crescente, come mostrato di seguito:

Nota:Se desideri ordinare i numeri in ordine decrescente, inserisci invece la seguente formula:
=sortnumsincell(A1,1)
L'argomento aggiuntivo ()1) indica alla funzione di eseguire un ordinamento in ordine decrescente.
Questa soluzione basata su UDF offre maggiore flessibilità e precisione con dataset più ampi o complessi, aiutando a evitare errori comuni legati ai limiti delle cifre nelle formule.
Se compaiono errori di compilazione, verifica attentamente che il codice del modulo sia stato incollato correttamente e che il nome della funzione corrisponda a quello utilizzato nella formula del foglio di lavoro.
Ordina i numeri separati da virgole all'interno delle celle con codice VBA
Quando i numeri in una cella sono separati da delimitatori specifici—come virgole, punti e virgola o persino punti—le soluzioni basate su formule integrate potrebbero non essere sufficienti. In questi casi, un codice VBA personalizzato permette di ordinare i numeri in modo rapido ed efficiente, a prescindere dal numero di celle da elaborare.
Gli scenari applicabili includono elenchi esportati da database, risposte raccolte da sondaggi o qualsiasi set di dati in cui i valori numerici sono memorizzati in un’unica cella e separati da un carattere coerente.
Segui questi passaggi per eseguire il codice VBA per l’ordinamento:

1. Premi ALT + F11 per aprire la finestra di Microsoft Visual Basic, Applications.
2. Fai clic su Inserisci > Modulo, quindi incolla il codice seguente nella finestra del modulo:
Codice VBA: Ordina i numeri separati da virgole all'interno delle celle
Sub SortNumsInRange()
'Update20140717Dim Rng As RangeDim WorkRng As RangeDim Arr As VariantOn Error Resume NextxTitleId = "KutoolsforExcel"
Set WorkRng = Application.SelectionSet 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, ",")
NextEnd Sub 3. Per eseguire il codice, premi F5. Apparirà una finestra di dialogo che ti permetterà di selezionare l’intervallo contenente le celle da ordinare.

4. Dopo aver confermato con OK, il codice ordinerà in ordine crescente i numeri presenti in tutte le celle selezionate, applicando le modifiche direttamente senza influire su altri contenuti delle celle.
Nota: Se i tuoi numeri sono separati da un altro carattere (ad esempio un punto e virgola o uno spazio), sostituisci semplicemente la virgola “,” in Split(Rng.Value, ",") e Join(Arr, ",") con il delimitatore desiderato, in entrambe le posizioni del codice.
Questo codice esegue l'ordinamento solo in ordine crescente. Per ottenere un ordinamento decrescente, potresti dover modificare la logica di ordinamento nel codice VBA. Quando utilizzi VBA, ricorda sempre di salvare la cartella di lavoro prima di eseguire il codice, poiché le modifiche vengono applicate immediatamente e non possono essere annullate con il comando Annulla.
Se una cella contiene dati non numerici, il codice potrebbe non restituire il risultato desiderato; assicurati di verificare la presenza di contenuti misti nei tuoi dati prima di eseguirlo.
Ordina i numeri all'interno delle celle utilizzando la funzione Riempimento automatico di Excel
Per dataset di piccole dimensioni o quando i numeri in una cella seguono uno schema prevedibile, la funzione Riempimento automatico di Excel rappresenta una soluzione rapida e intuitiva. Questo approccio si rivela particolarmente efficace quando devi ordinare numeri solo in poche celle e la struttura è semplice.
Ecco come utilizzare il Riempimento automatico per ordinare i numeri all’interno delle celle:
1. In una nuova colonna adiacente ai tuoi dati, digita manualmente la versione ordinata dei numeri presenti nella prima cella (ad esempio, se A1 contiene)8371, digita 1378 nella cella B1).
2. Seleziona la cella successiva nella stessa colonna e inizia a digitare la versione ordinata del dato successivo. Dopo aver inserito un paio di esempi, premi Ctrl + E (scorciatoia di Riempimento automatico): Excel riconoscerà automaticamente il modello e compilerà le celle rimanenti in base al tuo esempio di ordinamento.
Questa tecnica è rapida, ma si adatta meglio a elenchi brevi o a modelli di dati molto regolari. Richiede che tu inserisca almeno un paio di risultati ordinati, in modo che Excel possa riconoscere la trasformazione desiderata.
Il Riempimento automatico non è sempre affidabile con modelli complessi o quando i numeri sono separati da caratteri speciali. Verifica sempre l’accuratezza dei risultati generati automaticamente.
Nota: questo metodo potrebbe non funzionare in ogni situazione.
Nella scelta di un approccio, tieni conto della struttura dei tuoi dati (cifre singole rispetto a numeri con separatori), della lunghezza della stringa e del numero di celle da elaborare. I metodi basati su formule sono ideali per stringhe brevi e prive di delimitatori, mentre le soluzioni VBA o UDF offrono maggiore flessibilità e potenza per gestire dati complessi o di grandi dimensioni.
Verifica attentamente i tuoi dati originali per eventuali spazi nascosti, testo residuo o problemi di formattazione prima di applicare qualsiasi soluzione. Dopo aver ordinato i numeri, è buona norma controllare l’output confrontando alcuni campioni con l’input originale.
Se riscontri problemi, assicurati che la tua versione di Excel supporti le formule matriciali (Excel 2016 o versioni successive offrono una compatibilità migliorata) e che le macro siano abilitate per l’utilizzo dei metodi VBA. Qualora l’ordinamento non dovesse funzionare come previsto, prova ad adattare la formula o il codice VBA alla struttura delle tue celle.
Articoli correlati:
Come ordinare in Excel i numeri che contengono trattini?
Come ordinare i dati in base al valore più frequente in Excel?
Come ordinare Indirizzo Email per dominio in Excel?
Come ordinare le righe in modo da portare le celle vuote in cima in Excel?
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 oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità 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 all’interno della stessa finestra, invece che in finestre separate.
- Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!
Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.
Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.
- Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
- Funziona meglio insieme— produttività ottimizzata tra le app di Office
- Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
- Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi