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

Hur sorterar jag nummer i en cell i Excel?

Det är enkelt och vanligt för oss att sortera nummer i en kolumnlista, men har du någonsin försökt att sortera nummer i en enda cell? Det kan finnas att det inte finns något bra sätt för dig förutom att ordna dem en efter en, här kommer jag att prata om hur man sorterar nummer i celler i Excel.

Sortera nummer i celler med formel

Sortera nummer i celler med användardefinierad funktion

Sortera nummer som separeras med komma i celler med VBA-kod


pil blå höger bubbla Sortera nummer i celler med formel

För att sortera nummer i celler i ett kalkylblad kan du använda följande långa formel, gör så här:

1. Bredvid dina data, ange följande formel, i det här exemplet skriver jag den i cell C1, se skärmdump:

=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-sortera-nummer-i-celler-1

2. Tryck sedan på Ctrl + Skift + Enter genom att trycka på tangenterna tillsammans, dra sedan påfyllningshandtaget till det intervall som du vill använda den här formeln så får du siffrorna har sorterats från små till stora. Se skärmdump:

doc-sortera-nummer-i-celler-1

Anmärkningar:

1. Om siffran i siffran är mer än 15 i cellen, får denna formel inte rätt resultat.

2. Om du vill sortera siffrorna i fallande ordning kan du använda den här formeln: =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. I ovanstående formler anger A1 cellen som innehåller siffrorna du vill sortera, du kan ändra den efter ditt behov.


pil blå höger bubbla Sortera nummer i celler med användardefinierad funktion

Eftersom det finns vissa begränsningar av formeln kan du använda följande Användardefinierad funktion för att sortera siffror i celler som är längre än 15 siffror.

1. Håll ner ALT + F11 knapparna och det öppnar Microsoft Visual Basic for Applications-fönstret.

2. Klicka Insert > Modulernaoch klistra in följande kod i Modulfönster.

VBA-kod: Sortera nummer i celler

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. Spara och stäng sedan den här koden, gå tillbaka till ditt kalkylblad och ange den här formeln = sortnumsincell (A1) i en tom cell bredvid dina data, se skärmdump:

doc-sortera-nummer-i-celler-1

4. Och dra sedan fyllningshandtaget till cellerna som du vill ha den här formeln, och alla siffror i cellerna har sorterats i stigande ordning enligt följande skärmdump:

doc-sortera-nummer-i-celler-1

Anmärkningar: Om du vill sortera siffrorna i fallande ordning, ange denna formel = sortnumsincell (A1,1).


pil blå höger bubbla Sortera nummer som separeras med komma i celler med VBA-kod

Om dina nummer är åtskilda av vissa tecken som komma, semikolon, punkt och så vidare som följande skärmdump, hur kan du sortera dem i celler? Nu introducerar jag en VBA-kod för dig att sortera dem.

doc-sortera-nummer-i-celler-1

1. Håll ner ALT + F11 nycklar för att öppna Microsoft Visual Basic for Applications-fönstret.

2. Klicka Insert > Modulernaoch klistra in följande kod i Modulfönster.

VBA-kod: Sorteringsnummer separeras med kommatecken i celler

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. Tryck sedan på F5 nyckel för att köra den här koden och välj sedan dina celler som innehåller siffrorna i rutan för poppad ut, se skärmdump:

doc-sortera-nummer-i-celler-1

4. Och klicka sedan på OK, alla siffror i cellerna har sorterats stigande i det ursprungliga intervallet.

Anmärkningar: Du kan ändra komma ”,” till andra tecken som du behöver i ovanstående kod. Och den här koden kan bara sortera data stigande.


Relaterade artiklar:

Hur sorterar jag siffror med bindestreck i Excel?

Hur man sorterar data efter det vanligaste värdet i Excel?

Hur sorterar jag e-postadresser efter domän i Excel?

Hur sorterar jag rader för att placera de tomma cellerna ovanpå i Excel?


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (13)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
herr, kan du snälla hjälpa till att sortera data för dubbletten först, oavsett om den är liten eller stor. Exempel 1211 ---> 1112 9495 ---> 9945 7379 ---> 7739 Tack så mycket för din hjälp
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, jag undrade hur denna UDF, = sortnumsincell (A1,1), kan modifieras mer generellt, som =sortnumsincell(A1," "," ",,1) där det första argumentet, A1, är målcellen, det andra argumentet,"", är en avgränsare som kan ta vilket tecken som helst, eller ett mellanslag, eller ingenting, med tredje argument, "", en annan eller samma avgränsare, och det fjärde argumentet, 1 eller 0, vilket indikerar en stigande eller fallande sortering, med resultatsträngen som visas, korrekt sorterad, inom en cell, med avgränsare som standard samma som den ursprungliga strängen om det inte anges i den tredje termen. Jag skulle vilja att det fungerar både på sträng och numeriskt, och ibland kan det andra eller tredje argumentet vara en radmatning, som skulle skrivas in manuellt med alt-enter. Du skulle vara min månadens hjälte om du kunde göra det. Jag försökte men misslyckades totalt. Tack.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har en serie celler med siffror åtskilda av ett mellanslag som jag vill sortera. t.ex. 8 4 5 1 6 3 som jag vill sortera som 1 3 4 5 6 8 All hjälp uppskattas
Denna kommentar minimerades av moderatoren på webbplatsen
Finns det något sätt att sortera fler nummer samtidigt från en cell? Exempel, jag har en lista med 50000 1234 tillgångsnummer som A1235, A500... och jag behöver dra 500 specifika nummer och jag måste dra XNUMX åt gången för att göra ändringar och spara. Tack
Denna kommentar minimerades av moderatoren på webbplatsen
behöver sortera 84-12-74-26-98 valfri beställning 12-26-74-84-98 eller 98-84-74-26-12 tack
Denna kommentar minimerades av moderatoren på webbplatsen
Om CInt(Arr(xMin)) > CInt(Arr(j)) och det fungerar
Denna kommentar minimerades av moderatoren på webbplatsen
jag vill sortera totalt ett belopp 14000 till 20000 från olika rader Exempel:- 2000,1500 en rad och sådär alla radbelopp att ordna
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, VBA-koden verkar matas ut felaktigt, till exempel före 13,50,47,7,39 och efter 13-39-47-50-7. Några idéer varför?
Denna kommentar minimerades av moderatoren på webbplatsen
hOLA, MI PROBLEMA ES QUE TENGO EXEL 2019 EN ESPAÑOL COMO SERIA LA FORMULA?
Denna kommentar minimerades av moderatoren på webbplatsen
Hur man sorterar A-Ö-text i en cell i Excel?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej tack för bra bra för att sortera siffror som separeras med kommatecken i celler med VBA-kod
Jag har bara stött på ett problem med koden.
Koden kan inte identifiera tresiffrigt nummer. till exempel siffrorna (65, 93, 53, 72, 64, 85, 103, 48, 77, 81, 54) efter applicering av koden, den nya ordningen (103, 48, 53, 54, 64, 65, 72, 77, 81, 85, 93)
Har du någon lösning på problemet?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, omer, kanske koden nedan kan hjälpa dig, försök:
Public Function CellSort(r As Range) Som String
Dim bry() As Long, L As Long, U As Long
ch = r(1). Text
ary = Split(ch, ","")
L = LBound(är)
U = UBound(ary)
ReDim bry(L till U)
För i = LBound(ary) Till UBound(ary)
bry(i) = CLng(ary(i))
Nästa jag
Ring BubbleSort(bry)
För i = LBound(bry) Till UBound(bry)
ary(i) = CStr(bry(i))
Nästa jag
CellSort = Join(ary, ","")
Änden Funktion

Sub BubbleSort(arr)
Dim strTemp Som Variant
Dim jag så länge
Dim j As Long
Dim lngMin As Long
Dim lngMax As Long
lngMin = LBound(arr)
lngMax = UBound(arr)
För i = lngMin Till lngMax - 1
För j = i + 1 Till lngMax
Om arr(i) > arr(j) Då
strTemp = arr(i)
arr(i) = arr(j)
arr(j) = strTemp
End If
Nästa j
Nästa jag
End SubEfter att du har infogat ovanstående kod, använd denna formel: =CellSort(A1).Och du kommer att få det resultat du behöver.
Denna kommentar minimerades av moderatoren på webbplatsen
Hola, se pueden ordenar letras en una sola celda por orden alfabético? Du använder excel för Mac. Tack
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL