Daha önce ayrı ayrı metin ve rakamları içeren bir tabloyu sıralamayı sağlayan formülleri burada paylaşmıştım. Bu yazımda ise hem rakam hem metin içeren bir listeyi sıralamak istersek nasıl bir formül kullanacağımızı göstermek istiyorum.
1. Hazırlık
Ben bu örnek için aşağıdaki gibi bir tablo hazırladım. Siz isterseniz bu tabloyu kendiniz hazırlayabilir veya elinizdeki verileri kullanabilirsiniz. Dikkat edeceğiniz nokta benim verilerim B3:B15 aralığında ve formülleri de C2 ve D2 hücrelerinden başlayarak yazacağım. Sizin verileriniz başka bir alanda yer alıyor ise formülleri buna göre güncelleyin.
Burada kullanacağım yöntem daha önce metin sıralama için kullandığım formülün bir benzeri. Bu nedenle buradan önce o yazımı okumanızı tavsiye ediyorum.
1. Uygulama
a. Sıralamayı Çıkarma
Burada yapmamız gereken ilk işlem rakam ve metnin tüm liste ile kıyaslandığında hangi sırada olduğunu bulmak. Bunun için kullanacağımız işlev EĞERSAY işlevi:
=EĞERSAY($B$3:$B$15;”<=”&$B3)
Bu formülü C3 hücresine yazıp aşağıya doğru uzattığınızda aşağıdaki gibi biraz garip bir durumla karşılaşacaksınız:
Formül metinleri ayrı, rakamları ayrı kıyaslıyor ve buna göre bir sıralama çıkarıyor. Şimdi bizim bu durumu düzeltmemiz gerek. Bu dizide toplam kaç tane rakam olduğunu bulabilir ve bu değeri sadece metin olan satırların sıralamasına ekleyebilirsek sıralamayı düzenlemiş oluruz.
Toplam kaç hücrede rakam olduğunu bulmak için BAĞ_DEĞ_SAY işlevini, hücre içindeki değerin metin olup olmadığını bulmak için EMETİNSE işlevini kullanabilirim.
=BAĞ_DEĞ_SAY($B$3:$B$15)
Bu işlev aralıktaki toplam rakam sayısı olan 6 değerini geri döndürecektir. Bu değeri sadece metin içeren hücreler için değer döndürmesini sağlamak için ise,EMETİNSE işlevi ile çarpacağım:
=BAĞ_DEĞ_SAY($B$3:$B$15)*EMETİNSE($B3)
Bu formülü denemek için D3 hücresine yazıp aşağıya doğru çoğalttığınızda elinizde aşağıdaki gibi sadece metin barındıran hücrelerin satırlarında rakam olan bir değerler dizisi olacaktır.
Ve bu formülü bir önceki sıralama formülüme eklersem istediğim gibi metinler ve rakamlar için ayrı değerlere sahip bir sıralama elde edebilirim:
=EĞERSAY($B$3:$B$15;”<=”&$B3)+(BAĞ_DEĞ_SAY($B$3:$B$15)*EMETİNSE($B3))

b. Aynı Değerden Birden Fazla Olması Durumu
Eğer aynı değerlerden birden fazla var ise bu formül her iki değer için de aynı rakamı döndürecektir. Bu durumda formülü, değerin liste içinde o satıra kadar kaç tane olduğunu bularak ekleyen bir formül daha eklemem lazım:
=EĞERSAY($B$3:$B$15; “<“&$B3)+(BAĞ_DEĞ_SAY($B$3:$B$15)*EMETİNSE($B3)) + EĞERSAY($B$3:$B3; $B3)
Yazının bundan sonraki kısmında ben listedeki her bir metinden tek bir adet olduğunu varsayarak ilerleyeceğim. Eğer sizin listenizde aynı metinden birden fazla bulunuyor ise lütfen bir önceki adımdaki formülü değil bu formülü kullanın.
c. Sıralamaya Göre Sıralanmış Liste Oluşturma
İkinci aşamada bana her bir satırda artan sıralama ile 1, 2, 3,… değerlerin hangi satırda yer aldığını bulmam gerek. Her bir satırda artan bir değer elde etmek için SATIRSAY işlevini kullanacağım:
=SATIRSAY($D$3:$D3)
Bu işlevi D3 hücresine yazıp aşağıya doğru uzatırsanız bahsettiğim artan diziyi elde edersiniz. Bundan sonra ise bu rakamın C3:C15 aralığında hangi satırda olduğunu KAÇINCI işlevi ile bulmam gerek:
=KAÇINCI(SATIRSAY($D$3:$D3);$C$3:$C$15;0)
Bu formül ile 1. sırada olması gereken elemanın listede 5. sırada yer aldığını bulurum. Artık yapmam gereken İNDİS ile B sütununda denk gelen elemanı çekmek:
=İNDİS($B$3:$B$15;KAÇINCI(SATIRSAY($D$3:$D3);$C$3:$C$15;0);)
Bu formülü D3 hücresine yazarak aşağıya doğru uzattığımda sıralı listemi elde etmiş olurum.
