Skip i'r prif gynnwys

Sut i ddidoli rhifau mewn cell yn Excel?

Mae'n hawdd ac yn gyffredin i ni ddidoli rhifau mewn rhestr o golofn, ond a ydych erioed wedi ceisio didoli rhifau mewn un gell? Efallai nad oes ffordd dda i chi heblaw eu trefnu fesul un, yma, byddaf yn siarad am sut i ddidoli rhifau o fewn celloedd yn Excel.

Trefnu rhifau o fewn celloedd gyda fformiwla

Trefnu rhifau o fewn celloedd sydd â Swyddogaeth Diffiniedig Defnyddiwr

Trefnu rhifau sy'n gwahanu gan atalnodau o fewn celloedd sydd â chod VBA


swigen dde glas saeth Trefnu rhifau o fewn celloedd gyda fformiwla

I ddidoli rhifau mewn celloedd mewn taflen waith, gallwch gymhwyso'r fformiwla hir ganlynol, gwnewch fel hyn:

1. Wrth ymyl eich data, nodwch y fformiwla ganlynol, yn yr enghraifft hon, byddaf yn ei theipio i mewn i gell C1, gweler y 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)))

doc-didoli-rhifau-mewn-celloedd-1

2. Yna, pwyswch Ctrl + Shift + Enter allweddi gyda'i gilydd, yna llusgwch y ddolen llenwi i'r ystod rydych chi am gymhwyso'r fformiwla hon, a byddwch yn sicrhau bod y rhifau wedi'u didoli o fach i fawr. Gweler y screenshot:

doc-didoli-rhifau-mewn-celloedd-1

Nodiadau:

1. Os yw digid y rhif yn fwy na 15 yn y gell, ni fydd y fformiwla hon yn cael y canlyniad cywir.

2. Os ydych chi am ddidoli'r rhifau yn nhrefn ddisgynnol, gallwch ddefnyddio'r fformiwla hon: =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. Yn y fformwlâu uchod, mae A1 yn nodi'r gell sy'n cynnwys y rhifau rydych chi am eu didoli, gallwch ei newid i'ch angen.


swigen dde glas saeth Trefnu rhifau o fewn celloedd sydd â Swyddogaeth Diffiniedig Defnyddiwr

Gan fod rhai cyfyngiadau ar y fformiwla, gallwch ddefnyddio'r canlynol Swyddogaeth Diffiniedig Defnyddiwr i ddidoli rhifau mewn celloedd sy'n hwy na 15 digid.

1. Daliwch i lawr y ALT + F11 allweddi, ac mae'n agor y Ffenestr Microsoft Visual Basic for Applications.

2. Cliciwch Mewnosod > Modiwlau, a gludwch y cod canlynol yn y Ffenestr Modiwl.

Cod VBA: Trefnu rhifau o fewn celloedd

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. Yna arbed a chau'r cod hwn, ewch yn ôl i'ch taflen waith, a nodi'r fformiwla hon = sortnumsincell (A1) i mewn i gell wag wrth ymyl eich data, gweler y screenshot:

doc-didoli-rhifau-mewn-celloedd-1

4. Ac yna llusgwch y ddolen llenwi i'r celloedd rydych chi am eu cynnwys yn y fformiwla hon, ac mae'r holl rifau yn y celloedd wedi'u didoli yn nhrefn esgynnol fel y dangosir y screenshot canlynol:

doc-didoli-rhifau-mewn-celloedd-1

Nodyn: Os ydych chi am ddidoli'r rhifau yn nhrefn ddisgynnol, nodwch y fformiwla hon = sortnumsincell (A1,1).


swigen dde glas saeth Trefnu rhifau sy'n gwahanu gan atalnodau o fewn celloedd sydd â chod VBA

Os yw'ch rhifau wedi'u gwahanu gan gymeriadau penodol fel coma, hanner colon, cyfnod ac ati fel a ganlyn ar y screenshot, sut allech chi eu didoli mewn celloedd? Nawr, rwy'n cyflwyno cod VBA i chi eu didoli.

doc-didoli-rhifau-mewn-celloedd-1

1. Daliwch i lawr y ALT + F11 allweddi i agor y Ffenestr Microsoft Visual Basic for Applications.

2. Cliciwch Mewnosod > Modiwlau, a gludwch y cod canlynol yn y Ffenestr Modiwl.

Cod VBA: Mae atalnodau wedi'u gwahanu gan atalnodau o fewn celloedd

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. Yna pwyswch F5 allwedd i redeg y cod hwn, ac yna dewiswch eich celloedd sy'n cynnwys y rhifau yn y blwch prydlon popped allan, gweler y screenshot:

doc-didoli-rhifau-mewn-celloedd-1

4. Ac yna cliciwch OK, mae'r holl rifau yn y celloedd wedi'u didoli yn esgynnol yn yr ystod wreiddiol.

Nodyn: Gallwch chi newid y coma “,” i unrhyw nodau eraill yn ôl yr angen yn y cod uchod. A dim ond didoli data y gall y cod hwn ei wneud.


Erthyglau cysylltiedig:

Sut i ddidoli rhifau â chysylltiadau yn Excel?

Sut i ddidoli data yn ôl y gwerth amlaf yn Excel?

Sut i ddidoli cyfeiriad e-bost yn ôl parth yn Excel?

Sut i ddidoli rhesi i roi'r celloedd gwag ar ei ben yn Excel?

Offer Cynhyrchiant Swyddfa Gorau

Nodweddion Poblogaidd: Darganfod, Amlygu neu Adnabod Dyblygiadau   |  Dileu Rhesi Gwag   |  Cyfuno Colofnau neu Gelloedd heb Colli Data   |   Rownd heb Fformiwla ...
Super-edrych: VLookup Meini Prawf Lluosog    VLookup Gwerth Lluosog  |   VLookup Ar Draws Taflenni Lluosog   |   Edrych Niwlog ....
Rhestr gwympo Uwch: Creu Rhestr Gollwng yn Gyflym   |  Rhestr Gollwng Dibynnol   |  Rhestr Gollwng Aml-ddewis ....
Rheolwr Colofn: Ychwanegu Nifer Penodol o Golofnau  |  Symud Colofnau  |  Toglo Statws Gwelededd Colofnau Cudd  |  Cymharwch Ystodau a Cholofnau ...
Nodweddion dan Sylw: Ffocws ar y Grid   |  Golwg Dylunio   |   Bar Fformiwla Mawr    Rheolwr Llyfr Gwaith a Thaflen   |  Llyfrgell Adnoddau (Testun Auto)   |  Dewiswr Dyddiad   |  Cyfuno Taflenni Gwaith   |  Amgryptio/Dadgryptio Celloedd    Anfon E-byst trwy Restr   |  Hidlo Super   |   Hidlo Arbennig (hidlo mewn print trwm/italig/strikethrough...) ...
15 Set Offer Gorau12 Testun offer (Ychwanegu Testun, Dileu Cymeriadau,...)   |   50 + Siart Mathau (Siart Gantt,...)   |   40+ Ymarferol Fformiwlâu (Cyfrifwch oedran yn seiliedig ar ben-blwydd,...)   |   19 mewnosod offer (Mewnosod Cod QR, Mewnosod Llun o'r Llwybr,...)   |   12 Trosi offer (Rhifau i Eiriau, Trosi arian cyfred,...)   |   7 Uno a Hollti offer (Rhesi Cyfuno Uwch, Celloedd Hollt,...)   |   ... a mwy

Supercharge Eich Sgiliau Excel gyda Kutools ar gyfer Excel, a Phrofiad Effeithlonrwydd Fel Erioed Erioed. Kutools ar gyfer Excel Yn Cynnig Dros 300 o Nodweddion Uwch i Hybu Cynhyrchiant ac Arbed Amser.  Cliciwch Yma i Gael Y Nodwedd Sydd Ei Angen Y Mwyaf...

tab kte 201905


Mae Office Tab yn dod â rhyngwyneb Tabbed i Office, ac yn Gwneud Eich Gwaith yn Haws o lawer

  • Galluogi golygu a darllen tabbed yn Word, Excel, PowerPoint, Cyhoeddwr, Mynediad, Visio a Phrosiect.
  • Agor a chreu dogfennau lluosog mewn tabiau newydd o'r un ffenestr, yn hytrach nag mewn ffenestri newydd.
  • Yn cynyddu eich cynhyrchiant 50%, ac yn lleihau cannoedd o gliciau llygoden i chi bob dydd!
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