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

Hvordan sorterer man tal i en celle i Excel?

Det er let og almindeligt for os at sortere tal i en kolonneliste, men har du nogensinde prøvet at sortere tal inden for en enkelt celle? Måske er der ingen god måde for dig undtagen at arrangere dem en efter en, her vil jeg tale om, hvordan man sorterer tal inden for celler i Excel.

Sorter tal i celler med formel

Sorter numre i celler med brugerdefineret funktion

Sorter numre, der adskilles med kommaer i celler med VBA-kode


pil blå højre boble Sorter tal i celler med formel

For at sortere tal inden for celler i et regneark kan du anvende følgende lange formel, gør venligst som denne:

1. Ved siden af ​​dine data skal du indtaste følgende formel, i dette eksempel vil jeg skrive det i celle C1, se skærmbillede:

=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-sorter-numre-i-celler-1

2. Tryk derefter på Ctrl + Skift + Enter nøgler sammen, træk derefter fyldhåndtaget over til det område, som du vil anvende denne formel, og du får tallene sorteret fra lille til stor. Se skærmbillede:

doc-sorter-numre-i-celler-1

Bemærkninger:

1. Hvis cifret i tallet er mere end 15 i cellen, får denne formel ikke det rigtige resultat.

2. Hvis du vil sortere tallene i faldende rækkefølge, kan du bruge denne formel: =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 ovenstående formler angiver A1 den celle, der indeholder de numre, du vil sortere, du kan ændre den til dit behov.


pil blå højre boble Sorter numre i celler med brugerdefineret funktion

Da der er nogle begrænsninger for formlen, kan du bruge følgende Brugerdefineret funktion for at sortere tal i celler, der er længere end 15 cifre.

1. Hold nede ALT + F11 tasterne, og det åbner Vinduet Microsoft Visual Basic til applikationer.

2. Klik indsatte > Moduler, og indsæt følgende kode i Modul vindue.

VBA-kode: Sorter numre 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. Gem derefter og luk denne kode, gå tilbage til dit regneark, og indtast denne formel = sorteringsnummer (A1) i en tom celle ved siden af ​​dine data, se skærmbillede:

doc-sorter-numre-i-celler-1

4. Og træk derefter påfyldningshåndtaget til de celler, som du vil have denne formel, og alle numrene i cellerne er sorteret i stigende rækkefølge som vist på følgende skærmbillede:

doc-sorter-numre-i-celler-1

Bemærk: Hvis du vil sortere tallene i faldende rækkefølge, skal du indtaste denne formel = sorteringsnummer (A1,1).


pil blå højre boble Sorter numre, der adskilles med kommaer i celler med VBA-kode

Hvis dine tal er adskilt af visse tegn som komma, semikolon, punktum og så videre som følgende skærmbillede, hvordan kan du sortere dem i celler? Nu introducerer jeg en VBA-kode, som du kan sortere dem.

doc-sorter-numre-i-celler-1

1. Hold nede ALT + F11 nøgler til at åbne Vinduet Microsoft Visual Basic til applikationer.

2. Klik indsatte > Moduler, og indsæt følgende kode i Modul vindue.

VBA-kode: Sorteringsnumre adskilles med kommaer inden 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. Tryk derefter på F5 nøgle til at køre denne kode, og vælg derefter dine celler, der indeholder tallene i den poppede prompt-boks, se skærmbillede:

doc-sorter-numre-i-celler-1

4. Og klik derefter på OK, er alle numrene i cellerne sorteret stigende i det oprindelige interval.

Bemærk: Du kan ændre kommaet “,” til andre tegn, som du har brug for i ovenstående kode. Og denne kode kan kun sortere data stigende.


Relaterede artikler:

Hvordan sorterer man tal med bindestreger i Excel?

Sådan sorteres data efter den hyppigste værdi i Excel?

Hvordan sorterer jeg e-mail-adresse efter domæne i Excel?

Hvordan sorterer man rækker for at placere de tomme celler øverst i Excel?


De bedste Office-produktivitetsværktøjer

Kutools til Excel løser de fleste af dine problemer og øger din produktivitet med 80%

  • Genbruge: Indsæt hurtigt komplekse formler, diagrammer og alt, hvad du har brugt før; Krypter celler med adgangskode Opret postliste og send e-mails ...
  • Super formel bar (let redigere flere linjer med tekst og formel); Læsning Layout (let at læse og redigere et stort antal celler); Indsæt til filtreret rækkevidde...
  • Flet celler / rækker / kolonner uden at miste data; Split celler indhold; Kombiner duplikerede rækker / kolonner... Forhindre duplikerede celler; Sammenlign områder...
  • Vælg Duplicate eller Unique Rækker; Vælg tomme rækker (alle celler er tomme); Super Find og Fuzzy Find i mange arbejdsbøger; Tilfældig valg ...
  • Præcis kopi Flere celler uden at ændre formelreference; Auto Opret referencer til flere ark; Indsæt kugler, Afkrydsningsfelter og mere ...
  • Uddrag tekst, Tilføj tekst, Fjern efter position, Fjern mellemrum; Opret og udskriv personsøgningssubtotaler; Konverter mellem celler indhold og kommentarer...
  • Superfilter (gem og anvend filterskemaer på andre ark); Avanceret sortering efter måned / uge / dag, hyppighed og mere; Specielt filter af fed, kursiv ...
  • Kombiner arbejdsbøger og arbejdsark; Fletabeller baseret på nøglekolonner; Opdel data i flere ark; Batch Konverter xls, xlsx og PDF...
  • Mere end 300 kraftfulde funktioner. Understøtter Office / Excel 2007-2021 og 365. Understøtter alle sprog. Nem implementering i din virksomhed eller organisation. Fuld funktioner 30-dages gratis prøveperiode. 60 dages pengene tilbage garanti.
kte-fane 201905

Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
officetab bund
Sorter kommentarer efter
Kommentarer (13)
Ingen vurderinger endnu. Vær den første til at bedømme!
Denne kommentar blev minimeret af moderatoren på webstedet
sir, kan du hjælpe med at sortere dataene for duplikatet først, uanset om det er lille eller stort Eksempel 1211 ---> 1112 9495 ---> 9945 7379 ---> 7739 Mange tak for din hjælp
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, jeg tænkte på, hvordan denne UDF, = sorteringsnummer (A1,1), kan ændres mere generelt, f.eks =sortnumsincell(A1," "," ",,1) hvor det første argument, A1, er målcellen, det andet argument,"", er et afgrænsningstegn, der kan tage et hvilket som helst tegn, et mellemrum eller ingenting, med tredje argument, "", en anden eller samme afgrænsning, og det fjerde argument, 1 eller 0, der angiver en stigende eller faldende sortering, hvor resultatstrengen vises, korrekt sorteret, inden for én celle, med afgrænsningstegnet som standard, der er det samme som den oprindelige streng, medmindre det er angivet i det tredje led. Jeg vil gerne have det til at fungere både på streng og numerisk, og nogle gange kan det andet eller tredje argument være et linjeskift, som det ville blive indtastet manuelt med alt-enter. Du ville være min månedens helt, hvis du kunne gøre det. Jeg prøvede, men mislykkedes dybt. Tak skal du have.
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg har en række celler med tal adskilt af et mellemrum, som jeg vil sortere. f.eks. 8 4 5 1 6 3, som jeg vil sortere som 1 3 4 5 6 8 Al hjælp værdsat
Denne kommentar blev minimeret af moderatoren på webstedet
Er der nogen måde at sortere flere tal på samme tid fra en celle? Eksempel, jeg har en liste med 50000 aktivnumre, såsom A1234, A1235... og jeg skal trække 500 specifikke numre, og jeg skal trække 500 på det tidspunkt for at foretage ændringer og gemme. Tak
Denne kommentar blev minimeret af moderatoren på webstedet
skal sortere 84-12-74-26-98 enhver ordre 12-26-74-84-98 eller 98-84-74-26-12 tak
Denne kommentar blev minimeret af moderatoren på webstedet
Hvis CInt(Arr(xMin)) > CInt(Arr(j)), og det virker
Denne kommentar blev minimeret af moderatoren på webstedet
jeg vil sortere i alt et beløb på 14000 til 20000 fra forskellige rækker Eksempel: - 2000,1500 en række og gerne det hele rækkebeløb for at arrangere
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, VBA-koden ser ud til at udskrive forkert, f.eks. før 13,50,47,7,39 og efter 13-39-47-50-7. Nogle ideer hvorfor?
Denne kommentar blev minimeret af moderatoren på webstedet
hOLA, MI PROBLEMA ES QUE TENGO EXEL 2019 DA ESPAÑOL COMO SERIA LA FORMULA?
Denne kommentar blev minimeret af moderatoren på webstedet
Hvordan sorterer man AZ-tekst i en celle i Excel?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej tak for god god til at sortere tal, som er adskilt af kommaer i celler med VBA-kode
Jeg har bare stået over for et problem med koden.
Koden kan ikke registrere et trecifret tal. f.eks. tallene (65, 93, 53, 72, 64, 85, 103, 48, 77, 81, 54) efter anvendelse af koden, den nye rækkefølge (103, 48, 53, 54, 64, 65, 72, 77, 81, 85, 93)
Har du en løsning på problemet?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, omer, kan nedenstående kode måske hjælpe dig, prøv venligst:
Public Function CellSort(r As Range) Som streng
Dim bry() Så længe, ​​L så længe, ​​U så længe
ch = r(1). Tekst
ary = Split(ch, ","")
L = LBound(ær)
U = UBound(ær)
ReDim bry(L til U)
For i = LBound(ary) Til UBound(ary)
bry(i) = CLng(ary(i))
Næste jeg
Ring til BubbleSort(bry)
For i = LBound(bry) Til UBound(bry)
ary(i) = CStr(bry(i))
Næste jeg
CellSort = Join(ary, ","")
End Function

Sub BubbleSort(arr)
Dim strTemp Som Variant
Dim jeg så længe
Dim j As Long
Dæmp lngMin Så længe
Dim lngMax Så længe
lngMin = LBound(arr)
lngMax = UBound(arr)
For i = lngMin Til lngMax - 1
For j = i + 1 Til lngMax
Hvis arr(i) > arr(j) Så
strTemp = arr(i)
arr(i) = arr(j)
arr(j) = strTemp
End If
Næste j
Næste jeg
Afslut underNår du har indsat ovenstående kode, skal du anvende denne formel: =CellSort(A1).Og du får det resultat, du har brug for.
Denne kommentar blev minimeret af moderatoren på webstedet
Hola, se pueden ordenar letras en una sola celda por orden alfabético? Du bruger excel til Mac. Tak
Der er endnu ingen kommentarer her
Efterlad dine kommentarer
Sender som gæst
×
Bedøm dette indlæg:
0   Tegn
Foreslåede steder

Følg os

Copyright © 2009 - www.extendoffice.com. | Alle rettigheder forbeholdes. Drevet af ExtendOffice. | | Sitemap
Microsoft og Office-logoet er varemærker eller registrerede varemærker tilhørende Microsoft Corporation i USA og / eller andre lande.
Beskyttet af Sectigo SSL