Selamlar,
@Admin in düşüncelerine katılıyorum.
Vermiş olduğu yardımcı kolonlu formül sizin örnekteki yapıya uygun olmasına rağmen, yapıda değişiklikler olduğunda formül düzgün çalışmayacaktır. Bu durumda,
Formülde köklü değişikliler yapılmalıdır.
Şöyle ki;
Örneğinizde A2 : A18 arasında, sadece METİN ifadeler var ve bunların tümü Benzersiz....
Bu durumda, C2 hücresine
DİZİ formül olarak
=EĞERHATA(İNDİS($A$2:$A$18;KAÇINCI(SATIRSAY($1:1);EĞERSAY($A$2:$A$18;"<="&$A$2:$A$18);0));"")
formülünü yazıp aşağıya doğru kopyalayın....
Hücrelerden birisini silip BOŞ bıraktığınızda, ya da Tekrar eden değer yazdığınızda, ya da herhangi bir hücreye SAYI yazdığınızda
formülün düzgün çalışmayacağını gözlemleyebilirsiniz.
Soruya gelebilecek diğer kriterleri de eklersek
a - Listede bazı hücreler BOŞ olabilir.
b - Bazı hücreler çeşitli yerlerde TEKRAR edebilmektedir. Sıralamada, tekrar edenler de peşpeşe gösterilmeli.
c - Hücrelerdeki değerler sadece METİN değil SAYI da içermektedir.
d - Satır sayısı da değişkendir. Artabilir ya da azalabilir.
Bu durumların ele alındığı örnek ektedir. (örnek dokumanınız 39. satıra kadar BOŞ - METİN - SAYI değerleri içerecek şekilde düzenlendi)
*** Gerek karmaşık formüllerin sadeleştirilmesi ve gerekse de dinamik yapı için ad tanımlamaları kullanıldı.
1 - Yardımcı kolon kullanılarak çözüm verildi.
Yard. Kolon B2 hücresinde
=EĞER(A2="";"";TOPLA.ÇARPIM(--(A2>List))+TOPLA.ÇARPIM(--($A2:A$2=A2)))
Yard. Kolonla Liste için E2 hücresinde
=EĞERHATA(İNDİS(List;KAÇINCI(KÜÇÜK(Yard1;SATIR(A1));Yard1; );"")
2 - Tek Formülle Liste için ise, G2 hücresine DİZİ formül olarak
=EĞERHATA(İNDİS(List;KAÇINCI(KÜÇÜK((List<>"")*alan;SATIRSAY($1:1)+TOPLA(--EBOŞSA(List)));(List<>"")*alan;0));"")
Fakat, şunu söylemeliyim ki, DİZİ formül kullanımları Exceli yoracaktır. Satır adetleri arttıkça kasılma yavaşlama problemleri artacaktır.
Bu nedenle, ya, basitçe verileri C kolonuna kopyalayıp sıralama yaptırmak ya da Makro ile sıralama yaptırmak
tercih edilmelidir.