Ana içeriğe atla

Excel'de bir hücre içindeki sayıları nasıl sıralayabilirim?

Sayıları bir sütun listesinde sıralamak bizim için kolay ve yaygındır, ancak sayıları tek bir hücrede sıralamayı denediniz mi? Bunları birer birer düzenlemek dışında sizin için iyi bir yol olmayabilir, burada Excel'deki hücrelerdeki sayıları nasıl sıralayacağımı konuşacağım.

Hücrelerdeki sayıları formülle sıralama

Kullanıcı Tanımlı İşleviyle hücrelerdeki sayıları sıralama

VBA kodu ile hücreler içinde virgülle ayrılmış sayıları sıralayın


ok mavi sağ balon Hücrelerdeki sayıları formülle sıralama

Bir çalışma sayfasındaki hücrelerdeki sayıları sıralamak için aşağıdaki uzun formülü uygulayabilirsiniz, lütfen şu şekilde yapın:

1. Verilerinizin yanında, lütfen aşağıdaki formülü girin, bu örnekte, C1 hücresine yazacağım, ekran görüntüsüne bakın:

=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-numbers-in-hücreler-1

2. Daha sonra tuşuna basın. Ctrl + Üst Karakter + Enter tuşlarını bir araya getirin, ardından doldurma tutamacını bu formülü uygulamak istediğiniz aralığın üzerine sürükleyin ve sayıların küçükten büyüğe sıralandığını göreceksiniz. Ekran görüntüsüne bakın:

doc-sort-numbers-in-hücreler-1

Notlar:

1. Hücredeki sayının rakamı 15'ten fazlaysa, bu formül doğru sonucu almayacaktır.

2. Sayıları azalan düzende sıralamak istiyorsanız, şu formülü kullanabilirsiniz: =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. Yukarıdaki formüllerde A1, sıralamak istediğiniz sayıların bulunduğu hücreyi belirtir, ihtiyacınıza göre değiştirebilirsiniz.


ok mavi sağ balon Kullanıcı Tanımlı İşleviyle hücrelerdeki sayıları sıralama

Formülün bazı sınırlamaları olduğundan, aşağıdakileri kullanabilirsiniz. Kullanıcı Tanımlı İşlev 15 basamaktan uzun hücrelerdeki sayıları sıralamak için.

1. Basılı tutun ALT + F11 anahtarlar ve açılır Uygulamalar için Microsoft Visual Basic penceresi.

2. tıklayın Ekle > modülve aşağıdaki kodu Modül Penceresi.

VBA kodu: Hücrelerdeki sayıları sıralama

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. Ardından bu kodu kaydedip kapatın, çalışma sayfanıza geri dönün ve bu formülü girin = sortnumsincell (A1) verilerinizin yanındaki boş bir hücreye, ekran görüntüsüne bakın:

doc-sort-numbers-in-hücreler-1

4. Ve sonra doldurma tutamacını bu formülü içermesini istediğiniz hücrelere sürükleyin ve hücrelerdeki tüm sayılar aşağıda gösterilen ekran görüntüsü gibi artan sırada sıralanmıştır:

doc-sort-numbers-in-hücreler-1

not: Sayıları azalan sırada sıralamak istiyorsanız, lütfen bu formülü girin = sortnumsincell (A1,1).


ok mavi sağ balon VBA kodu ile hücreler içinde virgülle ayrılmış sayıları sıralayın

Numaralarınız aşağıdaki ekran görüntüsünde olduğu gibi virgül, noktalı virgül, nokta vb. Gibi belirli karakterlerle ayrılmışsa, bunları hücrelerde nasıl sıralayabilirsiniz? Şimdi, onları sıralamanız için bir VBA kodu ekliyorum.

doc-sort-numbers-in-hücreler-1

1. Basılı tutun ALT + F11 tuşlarını açmak için Uygulamalar için Microsoft Visual Basic penceresi.

2. tıklayın Ekle > modülve aşağıdaki kodu Modül Penceresi.

VBA kodu: Sıralama numaraları hücreler içinde virgülle ayrılır

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. Daha sonra tuşuna basın. F5 Bu kodu çalıştırmak için tuşuna basın ve ardından açılan komut kutusundaki sayıları içeren hücrelerinizi seçin, ekran görüntüsüne bakın:

doc-sort-numbers-in-hücreler-1

4. Ve sonra tıklayın OK, hücrelerdeki tüm sayılar orijinal aralıkta artan şekilde sıralanmıştır.

not: Yukarıdaki kodda ihtiyaç duyduğunuzda virgül "," yi diğer karakterlerle değiştirebilirsiniz. Ve bu kod sadece verileri artan şekilde sıralayabilir.


İlgili yazılar:

Sayıları Excel'de kısa çizgilerle nasıl sıralayabilirim?

Veriler Excel'de en sık kullanılan değere göre nasıl sıralanır?

Excel'de e-posta adresini etki alanına göre nasıl sıralayabilirim?

Boş hücreleri Excel'de en üste koymak için satırları nasıl sıralayabilirim?

En İyi Ofis Üretkenlik Araçları

🤖 Kutools AI Yardımcısı: Aşağıdakilere dayalı olarak veri analizinde devrim yaratın: Akıllı Yürütme   |  Kodunu oluşturun  |  Özel Formüller Oluşturun  |  Verileri Analiz Edin ve Grafikler Oluşturun  |  Kutools İşlevlerini Çağır...
Popüler Özellikler: Yinelenenleri Bul, Vurgula veya Tanımla   |  Boş Satırları Sil   |  Veri Kaybı Olmadan Sütunları veya Hücreleri Birleştirin   |   Formülsüz Tur ...
Süper Arama: Çoklu Ölçütlü VLookup    Çoklu Değer VLookup  |   Birden Çok Sayfada VLookup   |   Bulanık Arama ....
Gelişmiş Açılır Liste: Hızla Açılır Liste Oluşturun   |  Bağımlı Açılır Liste   |  Çoklu Seçim Açılır Liste ....
Sütun Yöneticisi: Belirli Sayıda Sütun Ekleme  |  Sütunları Taşı  |  Gizli Sütunların Görünürlük Durumunu Değiştir  |  Aralıkları ve Sütunları Karşılaştırın ...
Öne Çıkan Özellikler: Izgara Odağı   |  Tasarım görünümü   |   Büyük Formül Çubuğu    Çalışma Kitabı ve Sayfa Yöneticisi   |  Kaynak Kütüphanesi (Otomatik metin)   |  Tarih Seçici   |  Çalışma Sayfalarını Birleştirin   |  Hücreleri Şifrele/Şifresini Çöz    E-postaları Listeye Göre Gönder   |  Süper Filtre   |   Özel Filtre (kalın/italik/üstü çizili filtre...) ...
En İyi 15 Araç Seti12 Metin Tools (Metin ekle, Karakterleri Kaldır, ...)   |   50+ Grafik Türleri (Gantt şeması, ...)   |   40+ Pratik Formüller (Yaşı doğum gününe göre hesapla, ...)   |   19 sokma Tools (QR Kodunu Girin, Yoldan Resim Ekle, ...)   |   12 Dönüştürme Tools (Sayılardan Kelimelere, Para Birimi Dönüştürme, ...)   |   7 Birleştir ve Böl Tools (Gelişmiş Kombine Satırları, Bölünmüş hücreler, ...)   |   ... ve dahası

Kutools for Excel ile Excel Becerilerinizi Güçlendirin ve Daha Önce Hiç Olmadığı Gibi Verimliliği Deneyimleyin. Kutools for Excel, Üretkenliği Artırmak ve Zamandan Tasarruf Etmek için 300'den Fazla Gelişmiş Özellik Sunar.  En Çok İhtiyacınız Olan Özelliği Almak İçin Buraya Tıklayın...

Açıklama


Office Tab, Office'e Sekmeli Arayüz Getirir ve İşinizi Çok Daha Kolay Hale Getirir

  • Word, Excel, PowerPoint'te sekmeli düzenlemeyi ve okumayı etkinleştirin, Publisher, Access, Visio ve Project.
  • Yeni pencereler yerine aynı pencerenin yeni sekmelerinde birden çok belge açın ve oluşturun.
  • Üretkenliğinizi% 50 artırır ve her gün sizin için yüzlerce fare tıklamasını azaltır!
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