To Excel sorterings tallene i cellene i et regneark, kan du bruke følgende lang formel, kan du gjøre som dette:
1. Ved siden av dine data, kan du skrive inn følgende formel, i dette eksempelet, vil jeg skrive det inn i celle C1, se 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)))
2. Deretter trykker du Ctrl + Shift + Enter-tastene sammen, og drar fyllhåndtaket over til området som du ønsker å bruke denne formelen, og du vil få tallene er sortert fra liten til stor. Se skjermbilde:
Merknader:
1. Dersom siffer i nummeret er mer enn 15 i cellen, vil denne formelen ikke få riktig resultat.
2. Hvis du ønsker å sortere tallene i synkende rekkefølge, kan du bruke denne formelen: =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 formlene ovenfor, indikerer A1 cellen som inneholder tallene du vil sortere, kan du endre den til ditt behov.
Sortere tall innenfor celler med brukerdefinerte funksjonen
som det er noen begrensninger i formelen, kan du bruke følgende brukerdefinert funksjon for å sortere tallene i cellene lenger enn 15 siffer.
1. Hold nede ALT + F11-tastene, og det åpner Microsoft Visual Basic for Applications vinduet.
2. Klikk Sett > Modul, og lim inn følgende kode i modulen Window
VBA-kode. Sortere tall i cellene
Funksjon SortNumsInCell (pNum As String, Optional pOrder As Boolean) Som String'Update 20140717Dim xOutput Som StringFor i = 0 til 9 For j = 1 Til UBound (VBA.Split (pNum, i)) xOutput = IIf (pOrder, i & xOutput, xOutput & i) NextNextSortNumsInCell = xOutputEnd Function3. Deretter lagre og lukke denne koden, kan du gå tilbake til regnearket, og skriv inn denne formelen = sortnumsincell (A1) i en tom celle ved siden av dine data, kan du se skjermdump:
4. Og deretter drar fyllhåndtaket til cellene som du vil inneholde denne formelen, og alle tallene i cellene er sortert i stigende rekkefølge som følgende skjermbilde vises:
Merk: Hvis du vil sortere tallene i synkende rekkefølge, setter du inn denne formelen = sortnumsincell (A1,1).
Sortere tall som er atskilt med komma innen celler med VBA-kode
Hvis tallene er atskilt med visse tegn som komma, semikolon, periode og så videre som følgende skjermbilde, hvordan kunne du sortere dem i cellene? Nå, jeg introdusere en VBA-kode for å sortere dem.
En. Hold nede ALT + F11-tastene for å åpne Microsoft Visual Basic for Applications vinduet.
2. Klikk Sett > Modul, og lim inn følgende kode i modulen Window
VBA-kode. Sortere tallene er atskilt med komma i cellene
Sub SortNumsInRange () 'Update 20140717Dim RNG Som RangeDim WorkRng Som RangeDim Arr Som VariantOn Error Resume NextxTitleId = " KutoolsforExcel "Set WorkRng = Application.SelectionSet WorkRng = Application.InputBox (" Range ", xTitleId, WorkRng.Address, Type: = 8) Set objArrayList = Create (" System.Collections.ArrayList ") for hver RNG I WorkRng Arr = VBA .Split (Rng.Value, ",") For i = 0 For å UBound (Arr) xMin = i For j = i + 1 Til UBound (Arr) Hvis Arr (xMin) > Arr (j) Deretter xMin = j End If Neste j Hvis xMin < > Jeg så temp = Arr (i) Arr (i) = Arr (xMin) Arr (xMin) = temp End If Neste jeg Rng.Value = VBA.Join (Arr, ",") NextEnd Sub3. Deretter trykker F5 for å kjøre denne koden, og deretter velger du cellene som inneholder tallene i spratt ut teksten boksen, se skjermbilde:
4. Og klikk deretter på OK, har alle tallene i cellene er sortert ascendingly i den opprinnelige serien
. Merk: Du kan endre komma "," til andre tegn som du trenger i koden ovenfor. Og denne koden kun kan sortere data ascendingly. Anmeldelser
Hvis tallene er atskilt med visse tegn som komma, semikolon, periode og så videre som følgende skjermbilde, hvordan kunne du sortere dem i cellene? Nå, jeg introdusere en VBA-kode for å sortere dem.
En. Hold nede ALT + F11-tastene for å åpne Microsoft Visual Basic for Applications vinduet.
2. Klikk Sett > Modul, og lim inn følgende kode i modulen Window
VBA-kode. Sortere tallene er atskilt med komma i cellene
Sub SortNumsInRange () 'Update 20140717Dim RNG Som RangeDim WorkRng Som RangeDim Arr Som VariantOn Error Resume NextxTitleId = " KutoolsforExcel "Set WorkRng = Application.SelectionSet WorkRng = Application.InputBox (" Range ", xTitleId, WorkRng.Address, Type: = 8) Set objArrayList = Create (" System.Collections.ArrayList ") for hver RNG I WorkRng Arr = VBA .Split (Rng.Value, ",") For i = 0 For å UBound (Arr) xMin = i For j = i + 1 Til UBound (Arr) Hvis Arr (xMin) > Arr (j) Deretter xMin = j End If Neste j Hvis xMin < > Jeg så temp = Arr (i) Arr (i) = Arr (xMin) Arr (xMin) = temp End If Neste jeg Rng.Value = VBA.Join (Arr, ",") NextEnd Sub3. Deretter trykker F5 for å kjøre denne koden, og deretter velger du cellene som inneholder tallene i spratt ut teksten boksen, se skjermbilde:
4. Og klikk deretter på OK, har alle tallene i cellene er sortert ascendingly i den opprinnelige serien
. Merk: Du kan endre komma "," til andre tegn som du trenger i koden ovenfor. Og denne koden kun kan sortere data ascendingly. Anmeldelser