Excel'de sayıları sıralarken boş hücreleri nasıl kolayca atlayabilirim?
Excel'de veriyle çalışırken sıklıkla içinde boş hücreler olan listelerle karşılaşırsınız. Böyle listelerde RANK veya RANK.EQ gibi standart Excel sıralama işlevlerini kullanırsanız, boş hücreler genellikle sıralama çıktısında hata verir ya da istenmeyen sonuçlar üretir. Bu durum, verilerinizin yorumlanmasını zorlaştırır—özellikle boş hücrelerin hata değerleri göstermek yerine gerçekten boş kalmasını tercih ediyorsanız sorun daha da belirgin hale gelir. Boş hücreleri otomatik olarak boş bırakarak sayıları verimli şekilde sıralamak, sonuçlarınızın açıklığını ve kullanılabilirliğini artırır; ayrıca elektronik tablonuzu daha profesyonel ve okunaklı kılar.

Bu makalede, söz konusu görevi gerçekleştirmek için formüller ve VBA makroları kullanmaya yönelik adım adım talimatlar yer almaktadır. Genişletilmiş çözümler; yaygın hatalardan kaçınmanıza yardımcı olacak parametre açıklamalarını, pratik ipuçlarını ve sorun giderme önerilerini de içerir.
- Formüller kullanarak boş hücreleri atlayarak değerleri artan sırada sıralayın
- Bir formül kullanarak boş hücreleri atlayarak değerleri azalan sırada sıralayın
- Boş hücreleri atlayarak değerleri VBA ile sıralayın
Formüller kullanarak boş hücreleri atlayarak değerleri artan sırada sıralayın
Artan sırada sıralama yapmanız gerekip de boş hücreleri göz ardı etmek istediğiniz durumlarda, boş değerlerin sıralamada dikkate alınmamasını sağlamak amacıyla birden fazla yardımcı sütun ve formül mantığı kullanmak yaygındır.
Uygulanabilir senaryo: Boş hücrelerin konumunu koruyarak, eksik girişlerin sıralama numaralandırmasını etkilememesi gereken sürekli bir Aralık için artan (düşükten yükseğe) sıralama oluşturmak istediğinizde bu yöntemi kullanın.
Boş hücreleri atlayarak artan sıralı bir sıralama yapmak için, sonucu oluşturmak üzere iki yardımcı sütun kullanan aşağıdaki adımları izleyin:
1. Değerlerinizin yanındaki boş bir hücreyi seçin – örneğin, listeniz A2’den başlıyorsa, B2 hücresini – ve aşağıdaki formülü girin:
=IF(ISBLANK($A2),"",VALUE($A2&,"."&,(ROW()-ROW($B$2)))) Formül, A2 hücresi boşsa boş değer döndürür; aksi takdirde A2’nin değerine göre ondalık sayılar üretir ve formülü veri içeren tüm satırlara kopyalamak için doldurma tutamacını aşağı doğru sürüklediğinizde .0, .1, .2, .3 vb. ekler.

Parametre açıklamaları ve ipuçları:
- $A2: Sıralanacak ilk hücre. Listeniz farklı bir satırda başlıyorsa, burayı güncelleyin.
- $B$2: Formülü girdiğiniz hücre. Formül aşağı doğru doldurulduğunda doğru şekilde davranması için mutlak başvurulara (örn. $A2 ve $B$2) dikkat edin.
2. Bir sonraki sütunda, örneğin C2 hücresine, yardımcı değerlerin sıralı listesini oluşturmak için aşağıdaki formülü girin:
=SMALL($B$2:$B$8,ROW()-ROW($C$1)) Bu formül, aşağı kopyalandıkça B2:B8 aralığından (not: verileriniz daha uzunsa aralığı değiştirin) en küçükten başlayarak sırayla değerleri çeker.

Parametre açıklamaları:
- $B$2:$B$8: Önceki (ilk) yardımcı formülün kullanıldığı aralık.
- $C$1: Formülü girdiğiniz hücrenin hemen üstündeki hücredir; bu ofset, sıralama düzenini belirler.
3. D2hücresine, boş hücreleri olduğu gibi bırakarak sıralama atamak için aşağıdaki formülü girin:
=IFERROR(MATCH($B2,$C$2:$C$8,0),"") Bu formül, B2 hücresindeki değeri C2:C8 aralığındaki sıralı sonuçlarla eşleştirir. Eşleşme varsa ilgili sırayı verir; eşleşme yoksa (örneğin boş hücreler için) hiçbir şey döndürmez ve bu sayede boş hücrelerin görünümü korunur. Formülü ilgili tüm satırlara uygulamak için doldurma tutamacını aşağı doğru sürükleyin.

Parametreler:
- $B2: Sıralamada yardımcı değer içeren hücre.
- $C$2:$C$8: Sıralanmış yardımcı değerlerin bulunduğu aralık.
Önlemler: Veri ekler veya kaldırırsanız, her formüldeki tüm aralıkları yeni veri boyutunuza göre güncellemeyi unutmayın. Çok büyük listelerde manuel aralık ayarlamalarını azaltmak için dinamik aralıklar ya da Excel Tabloları kullanmayı düşünün.
Sorun Giderme: Sıralamalar eksik veya hizasız görünüyorsa, tüm yardımcı formül aralıklarının doğru şekilde hizalandığından emin olun. Sütunlar arasındaki hizasızlık, yanlış sıralamalara ya da istenmeyen hatalara yol açabilir.
Bir formül kullanarak boş hücreleri atlayarak değerleri azalan sırada sıralayın
Azalan sıralama atamak istediğinizde (en yüksek değere 1. sıra verilir), yalnızca bir formül kullanan daha hızlı bir yaklaşım mevcuttur. Bu yöntem, özellikle test puanları, satış hedefleri ve benzeri veri kümeleri için son derece kullanışlıdır; çünkü boş hücreler eksik ya da mevcut olmayan bilgileri temsil eder ve bu hücrelerin sıralama pozisyonu almasını veya hata vermesini istemezsiniz.
Çıkarılan sonucun görünmesini istediğiniz ilk veri girişinin bulunduğu satırda bir hücre seçin ve şunu girin:
=IF(ISNA(RANK(A2,A$2:A$8)),"",RANK(A2,A$2:A$8)) Formülü girdikten sonra, verilerinizin yanına kopyalamak için doldurma tutamacını kullanın. Bu formül, RANKişlevinin hata verip vermediğini kontrol eder (örneğin)A2 boşsa); hata varsa “#YOK” yerine sonucu boş bırakır. Hücre geçerli bir değer içeriyorsa uygun sıralamayı görüntüler.

Parametreler:
- A2: Sıralanacak hücre (Veri Aralığı’na göre ayarlayın).
- A$2:A$8: Verilerinizin tam aralığı (kopyalarken mutlak başvuruyu kullanın).
Hata hatırlatıcıları: Hâlâ “#YOK” hataları görüyorsanız, formül başvurularının amaçlanan Veri Aralığı’Niza kullandığınızı ve sıralanan hücrelerde sayısal olmayan değerlerin bulunmadığını tekrar kontrol edin.
Boş hücreleri atlayarak değerleri VBA ile sıralayın
Makrolarla rahat çalışan ve boş hücreler içeren bir aralıkta sıralamayı – artan ya da azalan sırada olsun – otomatikleştirmek isteyen kullanıcılar için özel bir VBA makrosu, birden fazla yardımcı sütun ve sürekli formül bakım ihtiyacını ortadan kaldırarak süreci büyük ölçüde basitleştirebilir.
Nasıl kullanılır:
1. Geliştirici sekmesine gidin ve Visual Basic düğmesine tıklayarak Microsoft Visual Basic for Applications düzenleyicisini açın. Geliştirici sekmesi görünmüyorsa şu kılavuza bakın: Excel'de Geliştirici sekmesini göster.
2. Yeni Microsoft Visual Basic for Applications penceresinde, Ekle > Modül seçeneğine tıklayın ve aşağıdaki kodlardan birini Modül penceresine yapıştırın:
- Boş hücreleri atlayarak artan sıralı bir sıralama yapmak için:
Sub RankSkipBlank_Ascending() Dim WorkRng As Range Dim Cell As Range Dim NumArr() As Double Dim Ws As Worksheet Dim OutputCell As Range Dim i As Long, j As Long On Error Resume Next xTitleId = "KutoolsforExcel" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Please select the range to rank", xTitleId, WorkRng.Address, Type:=8) Set Ws = WorkRng.Worksheet Set OutputCell = Application.InputBox("Please select the first cell to output the ascending ranking", xTitleId, Type:=8) If OutputCell Is Nothing Then Exit Sub j = 0 ReDim NumArr(1 To WorkRng.Rows.Count) For Each Cell In WorkRng If IsNumeric(Cell.Value) And Not IsEmpty(Cell.Value) Then j = j + 1 NumArr(j) = Cell.Value End If Next Cell Dim temp As Double Dim k As Long For i = 1 To j - 1 For k = i + 1 To j If NumArr(i) > NumArr(k) Then ' ← CHANGE HERE temp = NumArr(i) NumArr(i) = NumArr(k) NumArr(k) = temp End If Next k Next i Dim RankArr() As Double ReDim RankArr(1 To j) For i = 1 To j RankArr(i) = NumArr(i) Next i Dim RankValue As Long Dim r As Long: r = 0 For Each Cell In WorkRng r = r + 1 If IsNumeric(Cell.Value) And Not IsEmpty(Cell.Value) Then RankValue = 0 For k = 1 To j If Cell.Value = RankArr(k) Then RankValue = k ' 1 = smallest Exit For End If Next k OutputCell.Offset(r - 1, 0).Value = RankValue Else OutputCell.Offset(r - 1, 0).Value = "" End If Next Cell End Sub - Boş hücreleri atlayarak azalan sıralı bir sıralama yapmak için:
Sub RankSkipBlank_Descending() Dim WorkRng As Range Dim Cell As Range Dim NumArr() As Double Dim Ws As Worksheet Dim OutputCell As Range Dim i As Long, j As Long On Error Resume Next xTitleId = "KutoolsforExcel" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Please select the range to rank", xTitleId, WorkRng.Address, Type:=8) Set Ws = WorkRng.Worksheet Set OutputCell = Application.InputBox("Please select the first cell to output the descending ranking", xTitleId, Type:=8) If OutputCell Is Nothing Then Exit Sub j = 0 ReDim NumArr(1 To WorkRng.Rows.Count) For Each Cell In WorkRng If IsNumeric(Cell.Value) And Not IsEmpty(Cell.Value) Then j = j + 1 NumArr(j) = Cell.Value End If Next Cell Dim temp As Double Dim k As Long For i = 1 To j - 1 For k = i + 1 To j If NumArr(i) < NumArr(k) Then temp = NumArr(i) NumArr(i) = NumArr(k) NumArr(k) = temp End If Next k Next i Dim RankArr() As Double ReDim RankArr(1 To j) For i = 1 To j RankArr(i) = NumArr(i) Next i Dim RankValue As Long Dim r As Long: r = 0 For Each Cell In WorkRng r = r + 1 If IsNumeric(Cell.Value) And Not IsEmpty(Cell.Value) Then RankValue = 0 For k = 1 To j If Cell.Value = RankArr(k) Then RankValue = k Exit For End If Next k OutputCell.Offset(r - 1, 0).Value = RankValue Else OutputCell.Offset(r - 1, 0).Value = "" End If Next Cell End Sub
3. Makroyu çalıştırmak için F5 tuşuna basın. Önce sıralamak istediğiniz aralığı seçmenizi isteyen bir iletişim kutusu açılacak. Ardından, sıralama sonuçlarının yerleştirileceği ilk hücreyi belirlemenizi isteyen başka bir iletişim kutusu görünecek. Makro, ardından seçtiğiniz hücreden başlayarak sıralamaları yerleştirecek ve Kaynak aralığındaki boş hücreleri olduğu gibi bırakacaktır.
İpuçları:
- Hiçbir şey olmazsa, makroların etkinleştirildiğini ve çalışma kitabınızda kod çalıştırmaya izniniz olduğundan emin olun.
- VBA makrosunu çalıştırmak geri alınamaz. Makroyu çalıştırmadan önce verilerinizi kopyalayın veya yedekleyin.
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