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

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-ordina-numeri-in-celle-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-ordina-numeri-in-celle-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-ordina-numeri-in-celle-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-ordina-numeri-in-celle-1

Note:: 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-ordina-numeri-in-celle-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-ordina-numeri-in-celle-1

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

Note:: 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-2021 e 365. Supporta tutte le lingue. Facile implementazione 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 ogni giorno centinaia di clic del mouse!
fondo officetab
Commenti (13)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
signore, potrebbe per favore aiutarmi a ordinare i dati per il duplicato prima se è piccolo o grande Esempio 1211 ---> 1112 9495 ---> 9945 7379 ---> 7739 Grazie mille per il tuo aiuto
Questo commento è stato fatto dal moderatore sul sito
Ciao, mi chiedevo come questo UDF, = sortnumsincell (A1,1), può essere modificato più in generale, come =sortnumsincella(A1," "," ",,1) dove il primo argomento, A1, è la cella di destinazione, il secondo argomento,"", è un delimitatore che potrebbe prendere qualsiasi carattere, o uno spazio, o niente, con il terzo argomento, "", un delimitatore diverso o uguale e il quarto argomento, 1 o 0, che indica un ordinamento crescente o decrescente, con la stringa del risultato visualizzata, correttamente ordinata, all'interno di una cella, con il delimitatore predefinito uguale alla stringa originale se non specificato nel terzo termine. Mi piacerebbe che funzionasse sia su stringa che su numeri, e talvolta il secondo o il terzo argomento potrebbero essere un avanzamento riga, come verrebbe inserito manualmente con alt-enter. Saresti il ​​mio eroe del mese se potessi farlo. Ci ho provato ma ho fallito miseramente. Grazie.
Questo commento è stato fatto dal moderatore sul sito
Ho una serie di celle con numeri separati da uno spazio che voglio ordinare. es. 8 4 5 1 6 3 che voglio ordinare come 1 3 4 5 6 8 Qualsiasi aiuto apprezzato
Questo commento è stato fatto dal moderatore sul sito
C'è un modo per ordinare più numeri contemporaneamente da una cella? Esempio, ho un elenco di 50000 numeri di asset come A1234, A1235... e devo estrarre 500 numeri specifici e devo estrarre 500 al momento per apportare modifiche e salvare. Grazie
Questo commento è stato fatto dal moderatore sul sito
bisogno di ordinare 84-12-74-26-98 qualsiasi ordine 12-26-74-84-98 o 98-84-74-26-12 grazie
Questo commento è stato fatto dal moderatore sul sito
Se CInt(Arr(xMin)) > CInt(Arr(j)) e funziona
Questo commento è stato fatto dal moderatore sul sito
voglio ordinare il totale di un importo da 14000 a 20000 da varie righe Esempio:- 2000,1500 una riga e così l'importo di tutte le righe da organizzare
Questo commento è stato fatto dal moderatore sul sito
Ciao, il codice VBA sembra emettere in modo errato, esempio prima di 13,50,47,7,39 e dopo 13-39-47-50-7. Qualche idea perché?
Questo commento è stato fatto dal moderatore sul sito
hOLA, MI PROBLEMA E QUE TENGO EXEL 2019 EN ESPAÑOL COMO SERIA LA FORMULA?
Questo commento è stato fatto dal moderatore sul sito
Come ordinare il testo AZ all'interno di una cella in Excel?
Questo commento è stato fatto dal moderatore sul sito
Ciao, grazie per l'ottimo ordinamento dei numeri separati da virgole all'interno di celle con codice VBA
Solo che ho affrontato un problema con il codice.
Il codice non è in grado di rilevare il numero a tre cifre. ad esempio i numeri (65, 93, 53, 72, 64, 85, 103, 48, 77, 81, 54) dopo aver applicato il codice, il nuovo ordine (103, 48, 53, 54, 64, 65, 72, 77, 81, 85, 93)
Hai qualche soluzione per il problema?
Questo commento è stato fatto dal moderatore sul sito
Ciao, omer, potrebbe essere il codice seguente può aiutarti, per favore prova:
Funzione pubblica CellSort(r As Range) As String
Dim bry() As Long, L As Long, U As Long
ch = r(1).Testo
ary = Dividi(ch, ",")
L = LBound(ario)
U = UBound(ario)
ReDim bry(L A U)
Per i = LBound(ary) A UBound(ary)
bry(i) = CLng(ary(i))
Avanti
Chiama BubbleSort(bry)
Per i = LBound(bry) A UBound(bry)
ary(i) = CStr(bry(i))
Avanti
CellSort = Join(ary, ",")
End Function

Sub BubbleSort(arr)
Dim strTemp come variante
Dim I As Long
Dim j quanto a lungo
Dim lngMin quanto a lungo
Dim lngMax finché
lngMin = LBound(arr)
lngMax = UBound(arr)
Per i = da lngMin a lngMax - 1
Per j = i + 1 A lngMax
Se arr(i) > arr(j) Allora
strTemp = arr(i)
arr(i) = arr(j)
arr(j) = strTemp
End If
Successivo j
Avanti
End SubDopo aver inserito il codice sopra, applica questa formula: =OrdinamentoCell(A1).E otterrai il risultato di cui hai bisogno.
Questo commento è stato fatto dal moderatore sul sito
Hola, se pueden ordenar letras en una sola celda por orden alfabético? Yo uso excel per Mac. Grazia
Non ci sono ancora commenti pubblicati qui
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite

Seguici

Copyright © 2009 - www.extendoffice.com. | Tutti i diritti riservati. Offerto da ExtendOffice, | Mappa del sito
Microsoft e il logo Office sono marchi o marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri paesi.
Protetto da Sectigo SSL