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

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 orodja za pisarniško produktivnost

Kutools za Excel rešuje večino vaših težav in poveča produktivnost za 80%

  • Ponovna uporaba: Hitro vstavite zapletene formule, grafikoni in vse, kar ste že uporabljali; Šifriraj celice z geslom; Ustvari poštni seznam in pošiljanje e-pošte ...
  • Vrstica Super Formula (enostavno urejanje več vrstic besedila in formule); Bralna postavitev (enostavno branje in urejanje velikega števila celic); Prilepite v filtrirani obseg...
  • Združi celice / vrstice / stolpce brez izgube podatkov; Vsebina razdeljenih celic; Združi podvojene vrstice / stolpce... prepreči podvojene celice; Primerjaj obsege...
  • Izberite Duplicate ali Unique Vrstice; Izberite prazne vrstice (vse celice so prazne); Super Find in Fuzzy Find v mnogih delovnih zvezkih; Naključna izbira ...
  • Natančna kopija Več celic brez spreminjanja sklica formule; Samodejno ustvarjanje referenc na več listov; Vstavi oznake, Potrditvena polja in še več ...
  • Izvleček besedila, Dodaj besedilo, Odstrani po položaju, Odstrani presledek; Ustvari in natisni vmesne seštevke strani Pretvarjanje med vsebino celic in komentarji...
  • Super filter (shranite in uporabite sheme filtrov za druge liste); Napredno razvrščanje glede na mesec / teden / dan, pogostost in drugo; Poseben filter s krepko, ležeče ...
  • Združite delovne zvezke in delovne liste; Spoji tabele na podlagi ključnih stolpcev; Razdelite podatke na več listov; Paketna pretvorba xls, xlsx in PDF...
  • Več kot 300 zmogljivih funkcij. Podpira Office / Excel 2007-2019 in 365. Podpira vse jezike. Preprosta namestitev v vašem podjetju ali organizaciji. Vse funkcije 30-dnevnega brezplačnega preskusa. 60-dnevno jamstvo za vračilo denarja.
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 z miško!
dno pisarniške mize
Komentarji (13)
Ocene še ni. Bodite prvi in ​​ocenite!
Ta komentar je moderator na spletnem mestu minimiziral
gospod, ali lahko prosim pomagate najprej razvrstiti podatke za dvojnik, ne glede na to, ali je majhen ali velik Primer 1211 ---> 1112 9495 ---> 9945 7379 ---> 7739 Najlepša hvala za vašo pomoč
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, spraševal sem se, kako ta UDF, = sortnumsincell (A1,1), se lahko spremeni na splošno, npr =sortnumsincell(A1," "," ",,1) kjer je prvi argument, A1, je ciljna celica, drugi argument,"", je ločilo, ki lahko vzame kateri koli znak, presledek ali nič, s tretjim argumentom, "", drugačen ali enak ločilo, in četrti argument, 1 ali 0, ki označuje naraščajoče ali padajoče razvrščanje, pri čemer je niz rezultatov prikazan, pravilno razvrščen, znotraj ene celice, privzeto ločilo pa je enako izvirnemu nizu, razen če je navedeno v tretjem izrazu. Želel bi, da deluje tako na nizih kot na številskih, včasih pa je lahko drugi ali tretji argument vir vrstice, kot bi ga vnesli ročno z alt-enter. Če bi to lahko storil, bi bil moj junak meseca. Poskušal sem, a mi ni uspelo. Hvala vam.
Ta komentar je moderator na spletnem mestu minimiziral
Imam vrsto celic s številkami, ločenimi s presledkom, ki jih želim razvrstiti. npr. 8 4 5 1 6 3, ki jih želim razvrstiti kot 1 3 4 5 6 8 Cenim kakršno koli pomoč
Ta komentar je moderator na spletnem mestu minimiziral
Ali obstaja način za razvrščanje več številk v istem času iz ene celice? Na primer, imam seznam 50000 številk sredstev, kot so A1234, A1235 ... in moram potegniti 500 določenih številk in moram potegniti 500 naenkrat, da spremenim in shranim. Hvala
Ta komentar je moderator na spletnem mestu minimiziral
moram razvrstiti 84-12-74-26-98 katero koli naročilo 12-26-74-84-98 ali 98-84-74-26-12 hvala
Ta komentar je moderator na spletnem mestu minimiziral
Če CInt(Arr(xMin)) > CInt(Arr(j)) in deluje
Ta komentar je moderator na spletnem mestu minimiziral
želim razvrstiti skupni znesek od 14000 do 20000 iz različnih vrstic Primer:- 2000,1500 ena vrstica in tako razporediti znesek vseh vrstic
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, zdi se, da koda VBA izpisuje napačno, na primer pred 13,50,47,7,39 in po 13-39-47-50-7. Kakšne ideje zakaj?
Ta komentar je moderator na spletnem mestu minimiziral
hOLA, MI PROBLEMA ES QUE TENGO EXEL 2019 EN ESPAÑOL COMO SERIA LA FORMULA?
Ta komentar je moderator na spletnem mestu minimiziral
Kako razvrstiti besedilo AZ znotraj celice v Excelu?
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, hvala za dobro razvrščanje številk, ki so znotraj celic s kodo VBA ločene z vejicami
Samo naletel sem na eno težavo s kodo.
Koda ne more zaznati trimestne številke. na primer številke (65, 93, 53, 72, 64, 85, 103, 48, 77, 81, 54) po uporabi kode, nov vrstni red (103, 48, 53, 54, 64, 65, 72, 77, 81, 85, 93)
Ali imate kakšno rešitev za problem?
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, omer, morda ti lahko pomaga spodnja koda, poskusi:
Javna funkcija CellSort(r kot obseg) kot niz
Dim bry() As Long, L As Long, U As Long
ch = r(1).Besedilo
ary = Split(ch, ",")
L = LBvezan(ary)
U = UBbound(ary)
ReDim bry (L do U)
Za i = LBound(ary) do UBound(ary)
bry(i) = CLng(ary(i))
Naslednja i
Pokliči BubbleSort (bry)
Za i = LBbound(bry) do UBound(bry)
ary(i) = CStr(bry(i))
Naslednja i
CellSort = Pridruži se (ary, ",")
End Function

Sub BubbleSort (arr)
Dim strTemp Kot različica
Dim i as Long
Dim j Tako dolgo
Dim lngMin tako dolgo
Dim lngMax As Long
lngMin = LBvezan(arr)
lngMax = UBound(arr)
Za i = lngMin do lngMax - 1
Za j = i + 1 do lngMax
Če arr(i) > arr(j) Potem
strTemp = arr(i)
arr(i) = arr(j)
arr(j) = strTemp
Konec Če
Naslednja j
Naslednja i
Konec SubKo vstavite zgornjo kodo, uporabite to formulo: =Razvrstitev celic (A1).In dobili boste rezultat, ki ga potrebujete.
Ta komentar je moderator na spletnem mestu minimiziral
Hola, se pueden ordenar letras en una sola celda por orden alfabético? Imate excel za Mac. Gracias
Tu še ni objavljenih komentarjev
Pustite vaše komentarje
Objava kot gost
×
Ocenite to objavo:
0   Znaki
Predlagane lokacije