Skip to main content

Excel'de değerleri gruplara göre nasıl sıralarız?

Author: Sun Last Modified: 2025-08-07

Excel'de gruplandırılmış verilerle çalışmak, genellikle her gruptaki değerleri karşılaştırmayı gerektirir; örneğin bölgeye göre satış rakamlarını, sınıfa göre sınav notlarını veya kategoriye göre işlem miktarlarını sıralamak gibi. Excel, verileri sıralamak için güçlü araçlar sağlarken, gruplar içindeki sıralama (aynı zamanda "grup bazında sıralama" veya "koşullu sıralama" olarak da adlandırılır) belirli bir yaklaşım gerektirir. Bu özellikle, gruplar arası sonuçları karıştırmadan farklı kategoriler arasında performans değerlendirmesi yapmanız veya en iyi ve en düşük kayıtları belirlemeniz gerektiğinde kullanışlıdır. Aşağıdaki yöntemler, gruplara göre değerleri sıralamak için pratik çözümleri ele alarak günlük görevlerde verilerinizi doğru bir şekilde yorumlamanızı ve analiz etmenizi kolaylaştırır.
A screenshot showing a grouped data set with ranked values in Excel

Gruplara göre değerleri sırala
VBA Kodu - Her gruptaki değerleri otomatik olarak sıralamak için makro kullanın


arrow blue right bubble Gruplara göre değerleri sırala

Öğrencileri sınıflara göre puanlamak veya farklı bölgelere göre satışları listelemek gibi farklı gruplar içinde değerleri sıralamanız gereken durumlarda, Excel'in doğrudan bir "gruba göre sıralama" özelliği bulunmamaktadır. Ancak, iyi tasarlanmış bir formül, fazladan veri işleme olmadan grup bazında sıralamayı etkili bir şekilde gerçekleştirebilir.

Bunu yapmak için mantıksal testleri toplama işlevleriyle birleştiren bir dizi formülü kullanabilirsiniz. Bu yaklaşım, her değeri yalnızca belirlenen grubu içinde karşılaştırmanıza olanak tanır ve her veri noktası için gerekli sıralamayı üretir.

Aşağıdaki adımları izleyin:

  • Grup (A2:A11) ve Değer (B2:B11) gibi sütunlarda gruplandırılmış verilerinizi hazırlayın.
  • Verilerinizin yanındaki boş bir hücre seçin — genellikle değerlerinizin yanındaki ilk satırda olur, örneğin C2 hücresi.
  • Aşağıdaki formülü girin:
=SUMPRODUCT(($A$2:$A$11=A2)*(B2<$B$2:$B$11))+1

Bu formül, aynı gruptaki değerlerden kaçının şu anki değerden küçük olduğunu sayarak çalışır. İşte her parametrenin anlamı:

  • ($A$2:$A$11=A2)
    → Bu, A2:A11 aralığındaki her hücrenin A2'deki değere eşit olup olmadığını kontrol eder.
    → Bu, her satırın A2 ile aynı gruba ait olup olmadığını temsil eden TRUE/FALSE (veya 1/0) değerlerinden oluşan bir dizi döndürür.
  • (B2<$B$2:$B$11)
    → Bu, B2:B11'deki değerlerden kaçının B2'den büyük olduğunu kontrol eder.
    → Eğer B2 belirli bir değerden küçükse TRUE (1), aksi takdirde FALSE (0) döndürür.
  • * (Çarpma)
    → Bu, iki koşulu birleştirir:
  • Grup eşleşmesi (A2)
    B2'deki değer diğerlerinden küçüktür
    → Yani yalnızca aynı grupta olan ve daha küçük bir değere sahip olan satırlar sayılacaktır.
  • SUMPRODUCT(...)
    → Her iki koşulu da karşılayan satır sayısını toplar.
  • +1
    → Sıralamalar 1'den başlar (0 yerine), bu yüzden daha küçük değerlere 1 ekleriz.

Formül C2'ye girildikten sonra, otomatik doldurma tutamacını aşağı çekerek bu formülü veri setinizdeki tüm ilgili satırlar için doldurun. Formül, her satırın grubunu ve değerini otomatik olarak ayarlayarak o gruptaki sıralamayı döndürür. A screenshot showing the Excel formula applied to rank values by group in a worksheet

İpuçları ve önlemler:

  • Eğer aralığınız büyükse, hücre referanslarını buna göre güncellemeyi unutmayın.
  • Azalan düzende sıralamalar için (örneğin, en yüksek değer 1 ise), formül karşılaştırmasını B2<$B$2:$B$11'den B2>$B$2:$B$11 olarak değiştirin.
  • Yinelenen değerlere gelince, bu formül aynı gruptaki eşit değerlere aynı sırayı atar. Eğer ardışık benzersiz sıralara ihtiyacınız varsa, ek yardımcı sütunlar kullanmayı düşünün.

Bu formül tabanlı yöntem esnektir ve Excel'deki çoğu gruplandırılmış tablo yapısına kolayca uygulanabilir. Ancak çok büyük veri setleri için, dizi mantığına dayalı olduğundan hesaplama performansı yavaşlayabilir.


VBA Kodu - Her gruptaki değerleri otomatik olarak sıralamak için makro kullanın

Sıralama sürecini otomatikleştirmek isteyen kullanıcılar veya daha büyük veri setlerini daha verimli bir şekilde işlemek isteyenler için VBA makrosu yazmak değerli bir yaklaşımdır. Makrolar, tekrarlayan adımları otomatikleştirebilir, daha fazla özelleştirme sağlayabilir ve karmaşık formüllere kıyasla verileri hızlı bir şekilde işleyebilir. Bu, planlanmış rapor oluşturma, tekrarlanan sıralama görevleri veya çalışma sayfanızda formül karmaşasından kaçınmak istediğiniz durumlar için idealdir.

Devam etmeden önce, çalışmalarınızı kaydettiğinizden ve Excel ayarlarınızda makroları etkinleştirdiğinizden emin olun. İşte bu çözümü nasıl kodlayabileceğiniz ve çalıştırabileceğiniz:

  1. VBA düzenleyicisini etkinleştirmek için Alt + F11 tuşlarına basın. Görüntülenen Microsoft Visual Basic for Applications penceresinde Ekle > Modül'e tıklayın, ardından aşağıdaki kodu açılan modüle yapıştırın:
Sub RankValuesByGroup()
    Dim DataRange As Range
    Dim GroupRng As Range
    Dim ValueRng As Range
    Dim OutCol As Range
    Dim dictGroups As Object
    Dim arrValues, arrRanks
    Dim i As Long, j As Long
    Dim GroupKey As String
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set DataRange = Application.InputBox("Select the data table range (including group and value columns)", xTitleId, Selection.Address, Type:=8)
    If DataRange Is Nothing Then Exit Sub
    
    Set GroupRng = Application.InputBox("Select the group column within your range", xTitleId, DataRange.Columns(1).Address, Type:=8)
    Set ValueRng = Application.InputBox("Select the value column to rank within your range", xTitleId, DataRange.Columns(2).Address, Type:=8)
    
    Set OutCol = DataRange.Offset(0, DataRange.Columns.Count).Resize(DataRange.Rows.Count, 1)
    OutCol.Cells(1).Value = "RankByGroup"
    
    Set dictGroups = CreateObject("Scripting.Dictionary")
    arrValues = ValueRng.Value
    arrRanks = ValueRng.Value
    
    ' Build group dictionaries for ranking
    For i = 2 To UBound(arrValues, 1)
        GroupKey = GroupRng.Cells(i, 1).Value
        If Not dictGroups.Exists(GroupKey) Then
            dictGroups.Add GroupKey, CreateObject("System.Collections.ArrayList")
        End If
        dictGroups(GroupKey).Add arrValues(i, 1)
    Next i
    
    ' Rank within each group
    For i = 2 To UBound(arrValues, 1)
        GroupKey = GroupRng.Cells(i, 1).Value
        Dim countLower As Long
        countLower = 0
        For j = 0 To dictGroups(GroupKey).Count - 1
            If dictGroups(GroupKey)(j) < arrValues(i, 1) Then
                countLower = countLower + 1
            End If
        Next j
        arrRanks(i, 1) = countLower + 1
    Next i
    
    ' Output results
    For i = 2 To UBound(arrRanks, 1)
        OutCol.Cells(i, 1).Value = arrRanks(i, 1)
    Next i
    
    MsgBox "Ranking by group completed.", vbInformation, xTitleId
End Sub
  1. Çalıştır'a tıklayın. Bir iletişim kutusu, tam veri aralığınızı, grup sütununu ve değer sütununu seçmenizi isteyecektir. Makro, ardından her bir değerin grubu içindeki sıralarını içeren yeni bir sütun oluşturacaktır.

Notlar ve sorun giderme:

  • Sütun seçimlerinin verilerinizle eşleştiğinden emin olun: grup ve değer sütunlarının doğru şekilde hizalanması gerekir.
  • Veri başlığı dahil edilmişse, doğru sıralama için koddaki başlangıç döngüsü indeksini (veri yapınıza göre) ayarlayın.
  • Azalan düzende sıralamak için, If dictGroups(GroupKey)(j) < arrValues(i,1) karşılaştırmasını buna göre değiştirin.
  • İzin veya makro güvenlik uyarılarıyla karşılaşırsanız, Dosya > Seçenekler > Güven Merkezi altındaki Excel Makro Güvenlik ayarlarını kontrol edin.

Bu VBA yöntemi, özellikle otomatik raporlama iş akışlarıyla entegre edildiğinde, daha gelişmiş veya ölçeklendirilmiş uygulamalar için esneklik ve güçlü performans sunar.


a screenshot of kutools for excel ai

Kutools AI ile Excel Sihirini Keşfedin

  • Akıllı Yürütme: Hücre işlemleri gerçekleştirin, verileri analiz edin ve grafikler oluşturun—tümü basit komutlarla sürülür.
  • Özel Formüller: İş akışlarınızı hızlandırmak için özel formüller oluşturun.
  • VBA Kodlama: VBA kodunu kolayca yazın ve uygulayın.
  • Formül Yorumlama: Karmaşık formülleri kolayca anlayın.
  • Metin Çevirisi: Elektronik tablolarınız içindeki dil engellerini aşın.
Yapay zeka destekli araçlarla Excel yeteneklerinizi geliştirin. Şimdi İndirin ve daha önce hiç olmadığı gibi bir verimlilik deneyimi yaşayın!

En İyi Ofis Verimlilik Araçları

🤖 Kutools AI Asistanı: Veriye dayalı analizi devrimsel olarak değiştirin: Akıllı Yürütme |Kod Oluştur |Özel Formüller Oluştur |Verileri Analiz Edin ve Grafikler Oluşturun |Geliştirilmiş İşlevler’i çağırın
Popüler Özellikler: Yinelenenleri Bul, Vurgula veya İşaretle | Boş Satırları Sil | Sütunları veya Hücreleri Verileri Kaybetmeden Birleştir | Formül Olmadan Yuvarla...
Süper ARA: Çoklu Kriter VLookup | Çoklu Değer VLookup | Çoklu sayfa araması | Bulanık Eşleme....
Gelişmiş Açılır Liste: Hızlıca Açılır Liste Oluşturun | Bağımlı Açılır Liste | Çoklu Seçimli Açılır Liste....
Sütun Yöneticisi: Belirli Sayıda Sütun Ekle | Sütunları Taşı | Gizli Sütunların Görünürlük Durumunu Değiştir | Aralıkları & Sütunları Karşılaştır...
Özel Seçilen Özellikler: Izgara Odaklama | Tasarım Görünümü | Gelişmiş formül çubuğu | Çalışma Kitabı & Çalışma Sayfası Yöneticisi | Otomatik Metin Kütüphanesi | Tarih Seçici | Veri Birleştir | Hücreleri Şifrele/Şifre Çöz | Listeye Göre E-posta Gönder | Süper Filtre | Özel Filtre (kalın/italik/üstü çizili filtreleme...)...
En Gözde15 Araç Seti:12 Metin Aracı (Metin Ekle, Belirli Karakterleri Sil, ...) | 50+ Grafik Türü (Gantt Grafiği, ...) | 40+ Pratik Formül (Doğum tarihine dayanarak yaş hesapla, ...) | 19 Ekleme Aracı (QR Kodu Ekle, Yoldan Resim Ekle, ...) | 12 Dönüşüm Aracı (Kelimeye Dönüştür, Para Birimi Dönüştürme, ...) | 7 Birleştir & Böl Araçları (Gelişmiş Satırları Birleştir, Hücreleri Böl, ...) | ... ve daha fazlası
Kutools’u tercih ettiğiniz dilde kullanın – İngilizce, İspanyolca, Almanca, Fransızca, Çince ve40’tan fazla başka dili destekler!

Kutools for Excel ile Excel becerilerinizi güçlendirin, daha önce hiç yaşamadığınız bir verimlilik deneyimini yaşayın. Kutools for Excel, üretkenliğinizi artıracak ve zamanı kaydetmenizi sağlayacak300’den fazla gelişmiş özellik sunar. En çok ihtiyaç duyduğunuz özelliği almak için buraya tıklayın...


Office Tab, Office’e sekmeli arayüz kazandırır ve işinizi çok daha kolaylaştırır

  • Word, Excel, PowerPoint’te sekmeli düzenleme ve okuma işlevini etkinleştirin.
  • Aynı pencere içerisinde yeni sekmelerde birden fazla belge açın veya oluşturun, yeni pencerelerde açmak yerine.
  • Verimliliğinizi %50 artırın, her gün yüzlerce fare tıklamasını sizin için azaltın!