Preskoči na glavno vsebino

Kako razvrstiti številke znotraj celice v Excelu?

Za nas je enostavno in običajno razvrščati številke na seznamu stolpcev, vendar ste že kdaj poskusili razvrstiti številke znotraj ene celice? Morda za vas ni dobrega načina, razen da jih uredite enega za drugim, tukaj bom govoril o razvrščanju številk v celicah v Excelu.

Razvrsti številke znotraj celic s formulo

Razvrstite številke znotraj celic z uporabniško določeno funkcijo

Razvrsti številke, ločene z vejicami v celicah s kodo VBA


puščica modri desni mehurček Razvrsti številke znotraj celic s formulo

Če želite razvrstiti številke znotraj celic na delovnem listu, lahko uporabite naslednjo dolgo formulo, naredite tako:

1. Zraven svojih podatkov vnesite naslednjo formulo, v tem primeru jo vtipkam v celico C1, glejte posnetek zaslona:

=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-razvrsti-številke-v-celicah-1

2. Nato pritisnite Ctrl + Shift + Enter tipke skupaj, nato povlecite ročico za polnjenje do obsega, za katerega želite uporabiti to formulo, in dobili boste, da so številke razvrščene od majhnih do velikih. Oglejte si posnetek zaslona:

doc-razvrsti-številke-v-celicah-1

Opombe:

1. Če je številka števila več kot 15 v celici, ta formula ne bo dobila pravilnega rezultata.

2. Če želite številke razvrstiti po padajočem vrstnem redu, lahko uporabite to formulo: =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. V zgornjih formulah A1 označuje celico, ki vsebuje številke, ki jih želite razvrstiti, lahko pa jih spremenite po svojih željah.


puščica modri desni mehurček Razvrstite številke znotraj celic z uporabniško določeno funkcijo

Ker obstaja nekaj omejitev formule, lahko uporabite naslednje Uporabniško določena funkcija za razvrščanje števil v celicah, daljših od 15 števk.

1. Držite tipko ALT + F11 in odpre tipko Okno Microsoft Visual Basic for Applications.

2. Kliknite Vstavi > Moduliin prilepite naslednjo kodo v Okno modula.

Koda VBA: Razvrsti številke znotraj celic

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. Nato shranite in zaprite to kodo, se vrnite na svoj delovni list in vnesite to formulo = sortnumsincell (A1) v prazno celico poleg vaših podatkov si oglejte posnetek zaslona:

doc-razvrsti-številke-v-celicah-1

4. Nato povlecite ročico za polnjenje do celic, ki jih želite vsebovati s to formulo, in vse številke v celicah so bile razvrščene po naraščajočem vrstnem redu, kot je prikazano na sliki spodaj:

doc-razvrsti-številke-v-celicah-1

Opombe: Če želite številke razvrstiti po padajočem vrstnem redu, vnesite to formulo = sortnumsincell (A1,1).


puščica modri desni mehurček Razvrsti številke, ločene z vejicami v celicah s kodo VBA

Če so vaše številke ločene z določenimi znaki, kot so vejica, podpičje, pika in tako naprej, kot je prikazano na spodnjem posnetku zaslona, ​​kako jih lahko razvrstite v celice? Zdaj vam predstavljam kodo VBA, da jih razvrstite.

doc-razvrsti-številke-v-celicah-1

1. Držite tipko ALT + F11 tipke za odpiranje Okno Microsoft Visual Basic for Applications.

2. Kliknite Vstavi > Moduliin prilepite naslednjo kodo v Okno modula.

Koda VBA: Številke razvrščanja so znotraj celic ločene z vejicami

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. Nato pritisnite F5 tipko za zagon te kode in nato izberite celice, ki vsebujejo številke v izpuščenem pozivnem polju, glejte posnetek zaslona:

doc-razvrsti-številke-v-celicah-1

4. In nato kliknite OK, so vse številke v celicah razvrščene naraščajoče v prvotnem obsegu.

Opombe: Vejico “,” lahko spremenite v katere koli druge znake, kot jih potrebujete v zgornji kodi. In ta koda lahko sortira podatke naraščajoče.


Sorodni članki:

Kako razvrstiti številke z vezaji v Excelu?

Kako razvrstiti podatke po najpogostejši vrednosti v Excelu?

Kako razvrstiti e-poštni naslov po domeni v Excelu?

Kako razvrstiti vrstice, da bi prazne celice postavili na vrh v Excelu?

Najboljša pisarniška orodja za produktivnost

Priljubljene funkcije: Poiščite, označite ali identificirajte dvojnike   |  Izbriši prazne vrstice   |  Združite stolpce ali celice brez izgube podatkov   |   Krog brez formule ...
Super iskanje: Več kriterijev VLookup    Multiple Value VLookup  |   VLookup na več listih   |   Nejasno iskanje ....
Napredni spustni seznam: Hitro ustvarite spustni seznam   |  Odvisni spustni seznam   |  Večkrat izberite spustni seznam ....
Upravitelj stolpcev: Dodajte določeno število stolpcev  |  Premakni stolpce  |  Preklop stanja vidnosti skritih stolpcev  |  Primerjaj obsege in stolpce ...
Predstavljene funkcije: Mrežni fokus   |  Pogled oblikovanja   |   Velika vrstica formule    Upravitelj delovnih zvezkov in listov   |  Knjižnica virov (Samodejno besedilo)   |  Izbirnik datuma   |  Združite delovne liste   |  Šifriranje/dešifriranje celic    Pošljite e-pošto po seznamu   |  Super filter   |   Poseben filter (filter krepko/ležeče/prečrtano ...) ...
15 najboljših kompletov orodij12 Besedilo Orodja (dodajanje besedila, Odstrani znake,...)   |   50 + Graf Vrste (Gantt Chart,...)   |   40+ Praktično Formule (Izračunajte starost glede na rojstni dan,...)   |   19 vstavljanje Orodja (Vstavite kodo QR, Vstavi sliko s poti,...)   |   12 Pretvorba Orodja (Številke v besede, Pretvorba valut,...)   |   7 Spoji in razdeli Orodja (Napredne kombinirane vrstice, Razdeljene celice,...)   |   ... in več

Napolnite svoje Excelove spretnosti s Kutools za Excel in izkusite učinkovitost kot še nikoli prej. Kutools za Excel ponuja več kot 300 naprednih funkcij za povečanje produktivnosti in prihranek časa.  Kliknite tukaj, če želite pridobiti funkcijo, ki jo najbolj potrebujete...

zavihek kte 201905


Kartica Office prinaša vmesnik z zavihki v Office in poenostavi vaše delo

  • Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Poveča vašo produktivnost za 50%in vsak dan zmanjša na stotine klikov miške za vas!
Comments (13)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hola, se pueden ordenar letras en una sola celda por orden alfabético? Yo uso excel para Mac. Gracias
This comment was minimized by the moderator on the site
Hi thanks for nice good for sorting numbers which separated by commas within cells with VBA code
Just I have faced one problem with the code.
The code cannot detect three digit number. for example the numbers (65, 93, 53, 72, 64, 85, 103, 48, 77, 81, 54) after applying the code, the new order (103, 48, 53, 54, 64, 65, 72, 77, 81, 85, 93)
Do you have any solution for the problem?
This comment was minimized by the moderator on the site
Hello, omer,May be the below code can help you, please try:
<div data-tag="code">Public Function CellSort(r As Range) As String
Dim bry() As Long, L As Long, U As Long
ch = r(1).Text
ary = Split(ch, ",")
L = LBound(ary)
U = UBound(ary)
ReDim bry(L To U)
For i = LBound(ary) To UBound(ary)
bry(i) = CLng(ary(i))
Next i
Call BubbleSort(bry)
For i = LBound(bry) To UBound(bry)
ary(i) = CStr(bry(i))
Next i
CellSort = Join(ary, ",")
End Function

Sub BubbleSort(arr)
Dim strTemp As Variant
Dim i As Long
Dim j As Long
Dim lngMin As Long
Dim lngMax As Long
lngMin = LBound(arr)
lngMax = UBound(arr)
For i = lngMin To lngMax - 1
For j = i + 1 To lngMax
If arr(i) > arr(j) Then
strTemp = arr(i)
arr(i) = arr(j)
arr(j) = strTemp
End If
Next j
Next i
End SubAfter inserting the above code, please apply this formula: =CellSort(A1).And you will get the result you need.
This comment was minimized by the moderator on the site
How to sort A-Z text within a cell in Excel?
This comment was minimized by the moderator on the site
hOLA, MI PROBLEMA ES QUE TENGO EXEL 2019 EN ESPAÑOL COMO SERIA LA FORMULA?
This comment was minimized by the moderator on the site
Hi, the VBA code seems to output incorrectly, example before 13,50,47,7,39 and after 13-39-47-50-7. Any ideas why?
This comment was minimized by the moderator on the site
i want to sort total an amount 14000 to 20000 from various row Example:- 2000,1500 one row and like that all row amount to arrange
This comment was minimized by the moderator on the site
need to sort 84-12-74-26-98 any order 12-26-74-84-98 or 98-84-74-26-12 thank you
This comment was minimized by the moderator on the site
If CInt(Arr(xMin)) > CInt(Arr(j)) and it works
This comment was minimized by the moderator on the site
Is there is any way to sort more numbers in same time from one cell? Example, i have a list of 50000 asset numbers such as A1234,A1235... and i need to pull 500 specific numbers and i need to pull 500 at the time to make change and save.Thank you
This comment was minimized by the moderator on the site
I have a series of cells with numbers separated by a space that I want to sort. eg 8 4 5 1 6 3 that I want to sort as 1 3 4 5 6 8 Any help appreciated
This comment was minimized by the moderator on the site
Hi, I was wondering how this UDF, =sortnumsincell(A1,1), can be modified more generally, like =sortnumsincell(A1," "," ",,1) where the first argument, A1, is the target cell, the second argument," ", is a delimiter that could take any character, or a space, or nothing, with third argument, " ", a different or same delimiter, and the fourth argument, 1 or 0, indicating an ascending or descending sort, with the result string displaying, correctly sorted, within one cell, with delimiter default same as the original string unless specified in the third term. I would like it to work both on string and numerical, and sometimes the second or third argument might be a line feed, as would be manually entered with alt-enter. You'd be my hero of the month if you could do that. I tried but failed miserably. Thank you.
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations