Excel’de değerleri gruplarına göre nasıl sıralarsınız?
Excel’de gruplandırılmış verilerle çalışırken, bölgelere göre satış rakamlarını, sınıflara göre sınav puanlarını veya kategorilere göre işlem tutarlarını sıralamak gibi her grupta değerleri karşılaştırmak genellikle gereklidir. Excel, veri sıralama için güçlü araçlar sunsa da grup içi sıralama —“grup bazlı sıralama” veya “koşullu sıralama” olarak da bilinir— özel bir yaklaşım ister. Bu yöntem, özellikle farklı kategoriler arasında sonuçları karıştırmadan performansı değerlendirmeniz veya en iyi ve en kötü kayıtları belirlemeniz gerektiğinde büyük kolaylık sağlar. Aşağıdaki yöntemler, değerleri gruba göre sıralamanız için pratik çözümler sunarak günlük görevlerinizde verilerinizi daha doğru yorumlamanızı ve analiz etmenizi kolaylaştırır.
Değerleri gruba göre sıralayın
VBA Kodu – Her gruptaki değerleri sıralamayı otomatikleştirmek için bir makro kullanın
Değerleri gruba göre sıralayın
Sınıflara göre öğrencileri puanlamak ya da bölgelere göre satışları listelemek gibi durumlarda, Excel’in doğrudan “gruba göre sıralama” özelliği bulunmaz. Ancak iyi hazırlanmış bir formül, ek veri işleme gerek kalmadan grup bazlı sıralamayı verimli ş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 kendi grubu içinde karşılaştırmanıza ve her veri noktası için gerekli sıralamayı üretmenize olanak tanır.
Şu adımları izleyin:
- Verilerinizi Grup (A2:A11) ve Değer (B2:B11) gibi sütunlarda gruplanmış şekilde hazırlayın.
- Verilerinizin hemen yanındaki boş bir hücreyi seçin—genellikle değerlerinizin yanında ilk satırdaki hücre, ö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ı grupta Mevcut Değer'den küçük olan kaç adet değer olduğunu sayarak çalışır. Her parametrenin anlamı şöyledir:
- ($A$2:$A$11=A2)
→ Bu formül, A2:A11 aralığındaki her hücrenin A2'deki değerle eşleşip eşleşmediğini kontrol eder.
→ A2 ile aynı gruba ait olup olmadığını gösteren TRUE/FALSE (veya 1/0) değerlerinden oluşan bir dizi döndürür. - (B2<$B$2:$B$11)
→ Bu formül, B2:B11 aralığında B2'den büyük olan kaç değer olduğunu kontrol eder.
→ Belirtilen değerin B2'den büyük olması durumunda 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.
→ Böylece yalnızca aynı grupta yer alan ve daha küçük değere sahip satırlar sayılır. - SUMPRODUCT(…)
→ Her iki koşulu karşılayan satırların sayısını toplar. - +1
→ Sıralama 0 yerine 1'den başlar; bu nedenle daha küçük değerlerin sayısına 1 eklenir.
Formülü C2 hücresine girdikten sonra, otomatik doldurma tutamacını aşağı doğru sürükleyerek veri kümenizdeki tüm ilgili satırlara uygulayın. Böylece formül, her satırın grubunu ve değerini otomatik olarak alacak ve o grup içindeki sıralamayı döndürecektir.
İpuçları ve önlemler:
- Aralığınız genişse, hücre referanslarını buna göre güncellemeyi unutmayın.
- Azalan sırayla sıralama yapmak için (örneğin en yüksek değere 1 verilmesi gibi), formüldeki karşılaştırma ifadesini
B2<$B$2:$B$11ifadesindenB2>$B$2:$B$11ifadesine değiştirin. - Yinelenen değerlere aynı grupta eşit sıralama atamak için bu formülü kullanın. Ardışık benzersiz sıralamaya ihtiyacınız varsa, ek yardımcı sütunlar kullanmayı düşünün.
Bu formül tabanlı yöntem, Excel’deki çoğu gruplandırılmış tablo yapısına kolayca ve esnek bir şekilde uygulanabilir. Ancak çok büyük veri kümelerinde, dizi mantığına dayalı olması nedeniyle hesaplama performansı düşebilir.
VBA Kodu – Her gruptaki değerleri sıralamayı otomatikleştirmek için bir makro kullanın
Sıralama sürecini otomatikleştirmek isteyenler veya daha büyük veri kümelerini daha verimli işlemek arzusunda olanlar için VBA makrosu yazmak son derece değerli bir yaklaşımdır. Makrolar, tekrarlayan adımları otomatikleştirerek zaman kazandırır, daha kapsamlı özelleştirme imkânı sunar ve karmaşık formüllere kıyasla verileri çok daha hızlı işleyebilir. Bu yöntem, zamanlanmış rapor oluşturma, rutin sıralama görevleri ya da çalışma sayfanızda formül kalabalığından kaçınmak istediğiniz durumlar için idealdir.
Devam etmeden önce çalışmalarınızı kaydettiğinizden ve Excel ayarlarınızda makroların etkin olduğundan emin olun. Bu çözümü nasıl kodlayacağınız ve çalıştıracağınız aşağıda açıklanmıştır:
- VBA düzenleyicisini açmak için Alt + F11 tuşlarına basın. Açılan Microsoft Visual Basic for Applications penceresinde Ekle > Modül seçeneğine tıklayın ve ardından açılan modüle aşağıdaki kodu 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 - Çalıştır seçeneğine tıklayın. Bir iletişim kutusu açılacak ve size tam veri aralığınızı, grup sütununuzu ve değer sütununuzu seçmenizi isteyecektir. Ardından makro, her grubun içindeki değerlere ait sıraları içeren yeni bir sütun oluşturacaktır.
Notlar ve sorun giderme:
- Verilerinizin sütun seçimlerinizle eşleştiğinden emin olun: grup ve değer sütunlarının doğru şekilde hizalanmış olması gerekir.
- Veri başlığı dahil edilmişse, doğru sıralama için kodda başlangıç döngü indeksini veri yapınıza uygun şekilde ayarlayın.
- Azalan sırayla sıralamak için karşılaştırma ifadesini uygun şekilde değiştirin:
If dictGroups(GroupKey)(j) < arrValues(i,1). - İzin veya makro güvenlik uyarısıyla karşılaşırsanız, Excel’in Makro Güvenlik ayarlarını Dosya > Seçenekler > Güven Merkezi bölümünden kontrol edin.
Bu VBA yöntemi, özellikle otomatik raporlama iş akışlarıyla entegre edildiğinde, daha gelişmiş ve ölçeklenebilir uygulamalar için esneklik ve sağlam performans sağlar.

KUTOOLS AI ile Excel'in Sihirli Gücünü Açığa Çıkarın
- Akıllı Yürütme: Hücre işlemlerini gerçekleştirin, verileri analiz edin ve hepsi basit komutlarla çalışan grafikler oluşturun.
- Özel formüller: İş akışlarınızı kolaylaştırmak için özelleştirilmiş formüller oluşturun.
- VBA Kodlama: VBA kodlarını zahmetsizce yazın ve uygulayın.
- Formül Yorumlama: Karmaşık formülleri kolayca çözmek artık çok daha basit!
- Metin Çevirisi: Elektronik tablolarınızda dil bariyerlerini aşın.
En İyi Office Üretkenlik Araçları
Excel becerilerinizi Kutools for Excel ile geliştirin ve verimlilikte hiç yaşamadığınız bir deneyim yaşayın.Kutools for Excel, üretkenliği artırmak ve Zamanı Kaydet için 300’den fazla gelişmiş özelliğe sahiptir.İhtiyacınız olan özelliği hemen edinmek için buraya tıklayın…
Office Tab, Office uygulamalarına sekmeli bir arayüz kazandırarak işlerinizi çok daha kolay hale getirir.
- Word, Excel, PowerPoint, Publisher, Access, Visio ve Project'te sekmeli düzenleme ve okuma özelliğini etkinleştirin.
- Belgeleri yeni pencerelerde değil, aynı pencerenin yeni sekmelerinde açıp oluşturun.
- Günlük üretkenliğinizi %50 artırır ve her gün yüzlerce fare tıklamasından tasarruf etmenizi sağlar!
Tüm Kutools eklentileri — tek bir kurulum dosyasında!
Kutools for Office paketi, Excel, Word, Outlook ve PowerPoint eklentilerini ve ayrıca Office Tab Pro’yu içeren kapsamlı bir çözümdür; Office uygulamalarında çalışan ekipler için idealdir.
- Hepsi bir arada paket— Excel, Word, Outlook ve PowerPoint eklentileri + Office Tab Pro
- Tek kurulum, tek lisans— birkaç dakikada hazır (MSI uyumlu)
- Birlikte daha iyi çalışır— Office uygulamalarında akıcı üretkenlik
- 30 günlük tam özellikli deneme— kayıt gerekmez, kredi kartı gerekmez
- En iyi fiyat performans— ayrı ayrı eklenti satın almaya göre tasarruf sağlar