KAYDIR, KAÇINCI VE BÜYÜK fonksiyonlarını kullanarak @Ömer BARAN Beyin Kullandığı tarzda sıralama yapmak istiyorum.
Ancak elimde genelde karmaşık ve farklı formüller olduğu için konuyu tam olarak henüz kavrayabilmiş değilim.
Küçük ve basit bir örnek dosyada bu olayı da kafama yerleştirecebileceğimi düşünüyorum.
Burada 2 farklı sıralama şekli var.
1. Herhangi bir şart yokken
2. Sınıf şartıyla büyükten küçüğe sıralama formüllerini inceleyerek en çok kullandığım bu olayı artık olaya tam vakıf olarak kullanmak istiyorum.
-- Tüm sınıflar dahil liste için birinci formülü,
-- sınıf seçimine bağlı liste için ise ikinci formülü
ilk hücreye dizi formülü olarak uygulayıp aşağı doğru kopyalayın.
Formüller sınıf numaraları için kurgulandı ve listenin sonundaki alanların sorun yaratmaması için bu kez EĞERHATA işlevini kullanmayı tercih etmedim. Zira kontrol edilen alanlar; ilgili sütunda, kaynak sayfa A sütunundaki en büyük sıra numarasına göre dinamik olarak değişiyor.
Örneğin formülün, KAYDIR(Liste!$K$4;1;;MAK(Liste!$A$5:$A$34); ) kısmı, K4 hücresinin 1 satır altından başlayıp 28 satırlık alanın kontrol edileceğini söylüyor. Yani bu kısım K4:K32 arasının kontrol edilmesini sağlıyor, K33 ve K34 işleme hiç girmiyor ve dolayısıyla da HATAya neden olmuyor.
Bir hata engelleyici ekleme de formüllerin başındaki
=EĞER(SATIR()-6>MAK(Liste!$A$5:$A$34);""; ... ve
=EĞER(SATIR()-6>EĞERSAY(Liste!$B$5:$B$32;$G$6);"";.... kısımları.
Bu da uygulanan formülün, sonuç değer sayısından daha fazla satıra kopyalanması sırasında BOŞ sonuç döndürmesini sağlıyor.
Eşitlik halinin sorun yaratmaması için ise yine kaynak sayfa A sütunundaki sıra numaralarını 1000'e böldürüp, bunun sonucunu K sütunundaki değerlerden çıkartmayı tercih ettim. Diyelim 2 ve 3'üncü satırdaki öğrenci için K sütununda 12 değeri var, bu 12 değerinden, birincisi için 1/1000'i, ikincisi için 2/1000'i çıkarttım. Böylece listede üstte yer almak ikincil kriter olarak kullanılmış oldu.
Formüllerin öğrenci numarası sütunları için kurgulandığını söylemiştim.
Diğer sütunlara formül uygularken sadece; ......... KAYDIR(Liste!$C$4;KAÇINC...... kısımlarındaki sütun adını değiştirmeniz yeterli olacaktır.
İkinci formülde eklenen sınıf kontrolü bölümlerini fark edersiniz zaten.
Teşekkür ederim @Ömer BARAN Bey
Beni kafamda oturtamadım bir işlemi daha kolay ve net öğrenmemi sağladınız.
Sadece şu işlemi değiştirdim.
En sağda A sütunundaki sıra numaralarını da =EĞER($B7<>"";BAĞ_DEĞ_DOLU_SAY($B$7:B7);"") şeklinde otomatik saydırırken hata veriyordu bende formüldeki hataya sebep olduğunu düşündüğüm SATIR(A1) deki referans sütununu SATIR(E1) şeklinde başka bir sütuna alarak hatayı engellediğimi düşünüyorum.
Eşitlik halinin sorun yaratmaması için ise yine kaynak sayfa A sütunundaki sıra numaralarını 1000'e böldürüp, bunun sonucunu K sütunundaki değerlerden çıkartmayı tercih ettim. Diyelim 2 ve 3'üncü satırdaki öğrenci için K sütununda 12 değeri var, bu 12 değerinden, birincisi için 1/1000'i, ikincisi için 2/1000'i çıkarttım. Böylece listede üstte yer almak ikincil kriter olarak kullanılmış oldu.
Formüllerin öğrenci numarası sütunları için kurgulandığını söylemiştim.
Diğer sütunlara formül uygularken sadece; ......... KAYDIR(Liste!$C$4;KAÇINC...... kısımlarındaki sütun adını değiştirmeniz yeterli olacaktır.
Sizinde önceki mesajlarınızda bahsettiğiniz gibi bende ilk zamanlar DÜŞEYARA ile verileri alıyordum sonrasında İNDİS ile almaya başladım. Sizin dikkat çekmenizle ve kullandığınız örnekle artık KAYDIR fonksiyonu ile verileri alıyorum.
Elbette bu örnekte de olduğu gibi bir sütundaki bilgileri referans olarak DİZİ ile sıralatıyorum sonrasında bu bilgileri KAYDIR ile diğer alanlardan çekiyorum.
Teşekkürler
Aslında Liste sayfasındaki sıra numarası için =EĞER(C5="";"";SATIR()-4)
soru1 ve soru2 sayfalarında ise =EĞER(B7="";"";SATIR()-6) formülü kullanabilirsiniz.
Sıra numarası için bir yerlerde sayım yapmaya gerek var mı?
Neticede verilerinizde ARADA BOŞ hücre yok.
SATIR()-4 veya SATIR()-6 kısmı ise sıra numarası verilmeye başlanacak ilk hücrede 1 sonucunu almak için farklı.
Dosya aramamak ya da bu konudan faydalanmak isteyen arkadaşların işini kolaylaştırmak adına üstte anlatılanların uygulanmış hali ile dosyayı da ekliyorum.
yani referans olarak Liste sayfasındaki puanların olduğu sütunun adını referans alıyorum. (Liste!K$4; şeklinde.. ve Kaydır fornksiyonunda sütun numarasını boş bırakarak...)
Doğru ve mantıklı olan bu mudur?
yoksa (Liste!A$4; şeklinde) ilk sütunu referans gösterip oradan kaç sütun sonra ise saydırıp kaydır fonksiyonuna sütun sayısı göstermek mi mantıklıdır?
Anlatımda sorun yok.
Önemli olan sonuç almak, ikisi de aynı sonuca ulaşır neticede.
KAYDIR işlevinde benim tercihim başlangıç hücresini değiştirerek istediğim sütundaki bilgiyi çekmek yönünde.
Belirttiğiniz sütun indis sayısı değişkenini ben daha çok İNDİS işlevinde kullanıyorum.
Tamamen keyfe keder tercih meselesi.
Bu site, içeriği kişiselleştirmek, deneyiminize uyarlamak ve kayıt olmanız durumunda giriş yapmanızı sağlamak için yasal düzenlemelere uygun çerezler (cookies) kullanır.
Bu siteyi kullanmaya devam ederek, çerez kullanımına izin veriyorsunuz.