Μετάβαση στο κύριο περιεχόμενο

Πώς να ταξινομήσετε αριθμούς σε ένα κελί στο Excel;

Είναι εύκολο και κοινό για μας να ταξινομήσουμε αριθμούς σε μια λίστα στηλών, αλλά έχετε προσπαθήσει ποτέ να ταξινομήσετε αριθμούς σε ένα μόνο κελί; Μπορεί να μην υπάρχει καλός τρόπος για εσάς εκτός από το να τακτοποιήσετε ένα προς ένα, εδώ, θα μιλήσω για τον τρόπο ταξινόμησης αριθμών εντός κελιών στο Excel.

Ταξινόμηση αριθμών εντός κελιών με τύπο

Ταξινόμηση αριθμών εντός κελιών με συνάρτηση καθορισμένη από τον χρήστη

Ταξινόμηση αριθμών που διαχωρίζονται με κόμματα εντός κελιών με κώδικα VBA


βέλος μπλε δεξιά φούσκα Ταξινόμηση αριθμών εντός κελιών με τύπο

Για να ταξινομήσετε αριθμούς εντός κελιών σε ένα φύλλο εργασίας, μπορείτε να εφαρμόσετε τον ακόλουθο μακρύ τύπο, κάντε το ως εξής:

1. Δίπλα στα δεδομένα σας, εισαγάγετε τον ακόλουθο τύπο, σε αυτό το παράδειγμα, θα το πληκτρολογήσω στο κελί C1, δείτε το στιγμιότυπο οθόνης:

=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-sort-angka-σε-κελιά-1

2. Στη συνέχεια πατήστε Ctrl + Shift + Εισαγωγή πλήκτρα μαζί και, στη συνέχεια, σύρετε τη λαβή πλήρωσης στο εύρος που θέλετε να εφαρμόσετε αυτόν τον τύπο και θα λάβετε ότι οι αριθμοί έχουν ταξινομηθεί από μικρό σε μεγάλο. Δείτε το στιγμιότυπο οθόνης:

doc-sort-angka-σε-κελιά-1

:

1. Εάν το ψηφίο του αριθμού είναι μεγαλύτερο από 15 στο κελί, αυτός ο τύπος δεν θα έχει το σωστό αποτέλεσμα.

2. Εάν θέλετε να ταξινομήσετε τους αριθμούς με φθίνουσα σειρά, μπορείτε να χρησιμοποιήσετε αυτόν τον τύπο: =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. Στους παραπάνω τύπους, το A1 υποδεικνύει το κελί που περιέχει τους αριθμούς που θέλετε να ταξινομήσετε, μπορείτε να το αλλάξετε ανάλογα με τις ανάγκες σας.


βέλος μπλε δεξιά φούσκα Ταξινόμηση αριθμών εντός κελιών με συνάρτηση καθορισμένη από τον χρήστη

Καθώς υπάρχουν ορισμένοι περιορισμοί του τύπου, μπορείτε να χρησιμοποιήσετε τα ακόλουθα Λειτουργία καθορισμένη από τον χρήστη για ταξινόμηση αριθμών σε κελιά μεγαλύτερα από 15 ψηφία.

1. Κρατήστε πατημένο το ALT + F11 και ανοίγει το Παράθυρο Microsoft Visual Basic for Applications.

2. Κλίκ Κύριο θέμα > Μονάδα μέτρησηςκαι επικολλήστε τον ακόλουθο κώδικα στο Παράθυρο ενότητας.

Κωδικός VBA: Ταξινόμηση αριθμών εντός κελιών

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. Στη συνέχεια, αποθηκεύστε και κλείστε αυτόν τον κωδικό, επιστρέψτε στο φύλλο εργασίας σας και εισαγάγετε αυτόν τον τύπο = sortnumsincell (Α1) σε ένα κενό κελί δίπλα στα δεδομένα σας, δείτε το στιγμιότυπο οθόνης:

doc-sort-angka-σε-κελιά-1

4. Και, στη συνέχεια, σύρετε τη λαβή πλήρωσης στα κελιά που θέλετε να περιέχει αυτόν τον τύπο και όλοι οι αριθμοί στα κελιά έχουν ταξινομηθεί σε αύξουσα σειρά όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης:

doc-sort-angka-σε-κελιά-1

Note: Εάν θέλετε να ταξινομήσετε τους αριθμούς με φθίνουσα σειρά, εισαγάγετε αυτόν τον τύπο = sortnumsincell (A1,1).


βέλος μπλε δεξιά φούσκα Ταξινόμηση αριθμών που διαχωρίζονται με κόμματα εντός κελιών με κώδικα VBA

Εάν οι αριθμοί σας διαχωρίζονται από συγκεκριμένους χαρακτήρες όπως κόμμα, ερωτηματικό, τελεία και ούτω καθεξής όπως ακολουθεί το στιγμιότυπο οθόνης, πώς μπορείτε να τους ταξινομήσετε σε κελιά; Τώρα, σας παρουσιάζω έναν κωδικό VBA για να τα ταξινομήσετε.

doc-sort-angka-σε-κελιά-1

1. Κρατήστε πατημένο το ALT + F11 για να ανοίξετε το Παράθυρο Microsoft Visual Basic for Applications.

2. Κλίκ Κύριο θέμα > Μονάδα μέτρησηςκαι επικολλήστε τον ακόλουθο κώδικα στο Παράθυρο ενότητας.

Κωδικός VBA: Οι αριθμοί ταξινόμησης διαχωρίζονται με κόμματα εντός κελιών

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. Στη συνέχεια πατήστε F5 για να εκτελέσετε αυτόν τον κώδικα και, στη συνέχεια, επιλέξτε τα κελιά σας που περιέχουν τους αριθμούς στο αναδυόμενο πλαίσιο προτροπής, δείτε το στιγμιότυπο οθόνης:

doc-sort-angka-σε-κελιά-1

4. Και στη συνέχεια κάντε κλικ στο κουμπί OK, όλοι οι αριθμοί στα κελιά έχουν ταξινομηθεί ανοδικά στην αρχική περιοχή.

Note: Μπορείτε να αλλάξετε το κόμμα "," σε οποιονδήποτε άλλο χαρακτήρα όπως χρειάζεστε στον παραπάνω κώδικα. Και αυτός ο κώδικας μπορεί να ταξινομήσει τα δεδομένα μόνο ανοδικά.


Σχετικά άρθρα:

Πώς να ταξινομήσετε αριθμούς με ενωτικά στο Excel;

Πώς να ταξινομήσετε δεδομένα με την πιο συχνή τιμή στο Excel?

Πώς να ταξινομήσετε τη διεύθυνση email ανά τομέα στο Excel;

Πώς να ταξινομήσετε σειρές για να τοποθετήσετε τα κενά κελιά στην κορυφή στο Excel;

Τα καλύτερα εργαλεία παραγωγικότητας γραφείου

🤖 Kutools AI Aide: Επανάσταση στην ανάλυση δεδομένων με βάση: Ευφυής Εκτέλεση   |  Δημιουργία κώδικα  |  Δημιουργία προσαρμοσμένων τύπων  |  Αναλύστε δεδομένα και δημιουργήστε γραφήματα  |  Επίκληση Λειτουργιών Kutools...
Δημοφιλή χαρακτηριστικά: Εύρεση, επισήμανση ή αναγνώριση διπλότυπων   |  Διαγραφή κενών γραμμών   |  Συνδυάστε στήλες ή κελιά χωρίς απώλεια δεδομένων   |   Γύρος χωρίς φόρμουλα ...
Σούπερ Αναζήτηση: VLookup πολλαπλών κριτηρίων    VLookup πολλαπλών τιμών  |   VLookup σε πολλά φύλλα   |   Ασαφής αναζήτηση ....
Σύνθετη αναπτυσσόμενη λίστα: Γρήγορη δημιουργία αναπτυσσόμενης λίστας   |  Εξαρτημένη αναπτυσσόμενη λίστα   |  Πολλαπλή αναπτυσσόμενη λίστα ....
Διαχειριστής στήλης: Προσθέστε έναν συγκεκριμένο αριθμό στηλών  |  Μετακίνηση στηλών  |  Εναλλαγή κατάστασης ορατότητας κρυφών στηλών  |  Συγκρίνετε εύρη και στήλες ...
Επιλεγμένα Χαρακτηριστικά: Εστίαση πλέγματος   |  Προβολή σχεδίου   |   Μεγάλη Formula Bar    Διαχείριση βιβλίου εργασίας & φύλλου   |  Βιβλιοθήκη πόρων (Αυτόματο κείμενο)   |  Επιλογή ημερομηνίας   |  Συνδυάστε φύλλα εργασίας   |  Κρυπτογράφηση/Αποκρυπτογράφηση κελιών    Αποστολή email ανά λίστα   |  Σούπερ φίλτρο   |   Ειδικό φίλτρο (φίλτρο με έντονη γραφή/πλάγια γραφή/διαγραφή...) ...
Κορυφαία 15 σύνολα εργαλείων12 Κείμενο Εργαλεία (Προσθήκη κειμένου, Κατάργηση χαρακτήρων, ...)   |   50 + Διάγραμμα Τύποι (Gantt διάγραμμα, ...)   |   40+ Πρακτικό ΜΑΘΗΜΑΤΙΚΟΙ τυποι (Υπολογίστε την ηλικία με βάση τα γενέθλια, ...)   |   19 Εισαγωγή Εργαλεία (Εισαγωγή κωδικού QR, Εισαγωγή εικόνας από το μονοπάτι, ...)   |   12 Μετατροπή Εργαλεία (Αριθμοί σε λέξεις, Μετατροπή Συναλλάγματος, ...)   |   7 Συγχώνευση & διαχωρισμός Εργαλεία (Σύνθετες σειρές συνδυασμού, Διαίρεση κελιών, ...)   |   ... κι αλλα

Αυξήστε τις δεξιότητές σας στο Excel με τα Kutools για Excel και απολαύστε την αποτελεσματικότητα όπως ποτέ πριν. Το Kutools για Excel προσφέρει πάνω από 300 προηγμένες δυνατότητες για την ενίσχυση της παραγωγικότητας και την εξοικονόμηση χρόνου.  Κάντε κλικ εδώ για να αποκτήσετε τη δυνατότητα που χρειάζεστε περισσότερο...

Περιγραφή


Το Office Tab φέρνει τη διεπαφή με καρτέλες στο Office και κάνει την εργασία σας πολύ πιο εύκολη

  • Ενεργοποίηση επεξεργασίας και ανάγνωσης καρτελών σε Word, Excel, PowerPoint, Publisher, Access, Visio και Project.
  • Ανοίξτε και δημιουργήστε πολλά έγγραφα σε νέες καρτέλες του ίδιου παραθύρου και όχι σε νέα παράθυρα.
  • Αυξάνει την παραγωγικότητά σας κατά 50% και μειώνει εκατοντάδες κλικ του ποντικιού για εσάς κάθε μέρα!
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