Çözüldü KAYDIR KAÇINCI BÜYÜK Kullanarak Sıralama Yapmak

merakli

Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
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.







soru01.webp
soru02.webp
soru03.webp
 

Ekli dosyalar

Moderatörün son düzenlenenleri:
@merakli

-- 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.

Kod:
You must log in to view content
(1 satır)
Kod:
You must log in to view content
(1 satır)
 
@merakli
ilk hücreye dizi formülü olarak uygulayıp aşağı doğru kopyalayın.
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.

Tekrar teşekkürler.

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.
Bunu ilk mesajda dikkat dağıtmamak adına ikinci mesajımda sormayı düşünüyordum. Siz önceden cevap vermişsiniz bu da halloldu. Teşekkürler


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
 
Moderatörün son düzenlenenleri:
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ı.
 
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ı.

hmm her yerde aynı kodu kullandığım için bu şekilde kullanmıştım dediğiniz gibi yapmak daha mantıklı teşekkürler
 
@Ömer BARAN Bey konuyla ilgili son bir şey danışıp konuyu kapatacağım inşallah.

Örneğin Soru 1 sayfasında 'Soru 01'!$D$7:$D$36 arasında puanları Liste!$K$7:$K$36 dan sıralanmış bir şekilde numara sütununu referans alarak çekerken

Kod:
You must log in to view content
(1 satır)

şeklinde kullanıyorum.

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?

Kod:
You must log in to view content
(1 satır)

umarım anlatabilmişimdir
 
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.
 
Konuyu başlatan
Site Üyesi
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Formül Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
7
Üst