Alınan Tekliflerin Küçükten Büyüğe Sıralanması

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,712
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Alınan Tekliflerin Küçükten Büyüğe Sıralanması

Merhabalar,

Bir malzemeye verilen 5 adet teklif arasında, 1 nci en küçüten başlayarak
5 nci küçüğe kadar sıralama barındıran bir çizelgeye ihtiyaç duymaktayım,

I2:R17 aralığındaki verilerin çizelgeye, formüller yardımı ile gelmesi manuel giriş hatalarını sıfıra indireceğinden, ilgili formülleri rica ediyorum.

Not ; Örnek'teki çizelge forumdan alınmadır,

Teşekkür ederim.
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Sayın 1Al2Ver daha önce bir üyemizin sorusu üzerine hazırladığım örnekti.

Sıfır değerlerini hesaba katmadan küçükten büyüğe doğru sıralar.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Sayın Ali bey, sorunuzu cevaplamış, bir örnekte bende olsun..

Sıralama Fonksiyonu ile ilgili detaylı bilgi için aşağıdaki linki incelemenizi tavsiye ederim..

Sıralama Fonksiyonu Uygulamaları


.
 
Son düzenleme:

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,712
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Sayın 1Al2Ver daha önce bir üyemizin sorusu üzerine hazırladığım örnekti.

Sıfır değerlerini hesaba katmadan küçükten büyüğe doğru sıralar.
Ali bey, merhaba,

Teşekkür ederim, dosyanızdaki formülleri, gönderdiğim ek'li dosyaya uygulamam halinde sorun çözülür sanıyorum,

Biraz uğraşıp, deneyip çözüme ulaşmaya çalışıyorum, aksi olması halinde ek'li dosya üzerinde bir çözüm istersem , çok şey istemiş olurmuyum ?

Saygılarımla.
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,712
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Merhaba,

Sayın Ali bey, sorunuzu cevaplamış, bir örnekte bende olsun..

Sıralama Fonksiyonu ile ilgili detaylı bilgi için aşağıdaki linki incelemenizi tavsiye ederim..

Sıralama Fonksiyonu Uygulamaları


.
Sayın espiyonajl, merhaba,

Öneriniz doğrultusunda inceleme yapacağım, ama inanıyorum ki bu bilgi birikimim I6:R17 aralığındaki formülleri oluşturmama yetmeyecek, az da olsa sizlerden gelen çözümlerdeki RANK olayını anlamış durumdayım,

Özür dileyerek bir ifadede bulunmak istiyorum, I6:R17 aralığına yazılan formülleri, dizilişlerini bakarak yorumlayamıyorum, formülün açıklamasını da istemek, bu kadar zahmetiniz arasında da bana fazladan birşeyler istemek gibi gelmekte, bu nedenle de beni aşacağını bildiğim fonksiyonlarda, sizlerden yardım istiyorum,

Mümkün mertebe sitede yayınlanmış, çözülmüş örnek arayıp, dosyalarıma uygulamaya çalışıyorum, ancak zaman zaman bunu beceremiyorum,

İnanın hazırcılık hiç sevdiğim birşey değildir, bir ustanın yardımı ile doğru yöntemlerle balık tutmayı öğrenmeye çalışıyorum, ama balık çeşidi fazla, dolayısıyla da yöntemi de fazla, ama sonunda, sayenizde ben de bir başka üyeye yardım edebilecek düzeye geleceğim, buna inancım tamdır,

Sizler sayesinde de yavaş yavaş bu seviyeye gelmekteyim, sağolun,

Sayın espiyonajl, size herşey için bir kez daha teşekkür ederim.

Saygılarımla.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Formülün mantığını anlatabildiğim kadarı ile anlatmaya çalışayım, hızlı yazdığımdan dolayı anlatım karışık olabilir, anlayamadığınız bir yer olursa söylerseniz o kısmı biraz daha açmaya çalışırım..

=EĞER(SÜTUNSAY($I$2:I2)/2>$H2;"";EĞER(ESAYIYSA(--SOLDAN(I$1;1));DOLAYLI(ADRES(SATIR();KAÇINCI(KÜÇÜK($T2:$X2;--SOLDAN(I$1;1));$T2:$X2;0)+2));DOLAYLI(ADRES(1;KAÇINCI(KÜÇÜK($T2:$X2;--SOLDAN(H$1;1));$T2:$X2;0)+2))))

I2 hücresindeki formülü diğer hücrelere kopyalamanız yeterli olacaktır..

Formülü parça parça ele alacak olursak..

EĞER(SÜTUNSAY($I$2:I2)/2>$H2;"";

Formülün yazıldığı ilk hücre I2 aralığında olduğu için Sütunsayı I2 hücresinden başlattık, formülü yan hücrelere kopyaladığımızda I sütunu ile formülün hesapladığı hücreler arasındaki sütun sayısını verir, örnek olarak formül P6 hücresindeyken 8 değerini alır çünkü I ile P arasında I ve P de dahil 8 sütun vardır.. Bu formülü kullanmamızdaki amaç Teklif vermeyen yada Teklif sonucu 0 olan firmaları 1.düşük 2. düşük... 5.düşük sütunlarında boş gözükmesidir. Sütunsay formülünü 2 ye bölmemizin nedeki formül tek bir formül olduğu için ve istenilen I2:R17 aralığında düşük olan firmaların rakamı yanında isimleride geldiği için bu iki hücreyi saydırırken tek saymak için sütunsayısını 2 ye böldürdük. Sonra eğer bu değer H sütunundaki Teklif sayısından büyük ise formülün başvurduğu ilgili hücreleri boş bıraktık...

EĞER(ESAYIYSA(--SOLDAN(I$1;1))

I1 hücresindeki cümlenin ilk verisi sayı ise ilk şartımızı gerçekleştireceğiz, bu şarttı koymamızdaki asıl amaç, 1.düşük, 2.düşük...geçen sütunlarda düşük değeri alırken isim geçen sütunlarda bu değere ait isimleri yazmak istediğimizdendir, her sütun için ayrı ayrı formül yazmak yerine bu şekilde iç içe olan bir formülü kullanmak daha pratik olacaktır..

EĞER(ESAYIYSA(--SOLDAN(I$1;1)) bu şartı doğru ise kullanacak formülü ele alalım..

DOLAYLI(ADRES(SATIR();KAÇINCI(KÜÇÜK($T2:$X2;--SOLDAN(I$1;1));$T2:$X2;0)+2))

Bu formülde parçalara ayırırsak..

KAÇINCI(KÜÇÜK($T2:$X2;--SOLDAN(I$1;1));$T2:$X2;0)+2)

T2:X2 arasında verilerin küçükten büyüğe formül yardımıyla sıralamıştık..

T2:X2 aralığında küçük değeri bulacağız fakat hangi küçük değeri bulacağız, bunun için --SOLDAN(I$1;1) formülde bu eki kullandık formül 1.en düşük sütununda iken T2:X2 aralığındaki 1. küçük değerin T2:X2 aralığındaki kaçıncı sırada olduğunu bulur, formül 3.en düşük sütununda iken T2:X2 aralığındaki 3.en düşük değerin T2:X2 aralığındaki kaçıncı sırada bulur.

Kaçıncı fonkisoynunu sonuna +2 eklememizin nedeni tablodaki verilerin C sütunundan başlamasıdır. Yani A ile C arasındaki Sütun sayısının 2 olmasındandır. Bunun nedeni T2:X2 arasındaki buludumuz değere C sütunundan başlatarak kaçıncı sırada olduğunu bulmak içindir. Yani adres fonkisyonunu kullanarak kaçıncı değerin hangi hücrede olduğunu bulmak içindir.

Örnek olarak..I2 hücresindeki formülün ADRES(SATIR();KAÇINCI(KÜÇÜK($T2:$X2;--SOLDAN(I$1;1));$T2:$X2;0)+2)) sonucu $E$2 değerini verir istediğimi 1. en düşük değerde budur zaten..$E$2 bu sonucun hücre değerini bulmak içinde Dolaylı fonksiyonu kullanılmıştır..

EĞER(ESAYIYSA(--SOLDAN(I$1;1)) ... Eğer fonksiyonunun doğruluğundaki formülü inceledik şimdide yanlış durumundaki formülü inceleyelim..Yani formülün olduğu sütunun 1.satırdaki değerin soldan ilk verisinin sayı olmadığı durum..Bu durumların olduğu sütunlar
isim1..isim5 olan sütunlardır. Bu sütunlarda formül ilgili değeri değil bu değerin hangi isme ait olduğunu bulmamızı sağlayacaktır..

DOLAYLI(ADRES(1;KAÇINCI(KÜÇÜK($T2:$X2;--SOLDAN(H$1;1));$T2:$X2;0)+2))

Bu fomülde kaçıncı kısmı olduğu gibi diğeriyle aynıdır tek fark ilk formülün yazıldığı I2 hücresindeki formülde --SOLDAN(H$1;1) H1 kullanılmasıdır. Bunun nedeni formül I2 de değil J2 de iken yanlış değerini vereceği için ve J1 deki değerin herhangi bir sıralama içermediği için bir önceki sütundan bu sıralamayı kullandık yani küçük(dizi;k) k değerini soldan fonksiyonu ile I1 deki değerden aldık..

Adres(Satır numarasını..1 olarak sabir yazmamızdaki amaçta isim olan verilerin 1. satırda sabit olmasından dolayıdır...
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,712
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Formülün mantığını anlatabildiğim kadarı ile anlatmaya çalışayım, hızlı yazdığımdan dolayı anlatım karışık olabilir, anlayamadığınız bir yer olursa söylerseniz o kısmı biraz daha açmaya çalışırım..

=EĞER(SÜTUNSAY($I$2:I2)/2>$H2;"";EĞER(ESAYIYSA(--SOLDAN(I$1;1));DOLAYLI(ADRES(SATIR();KAÇINCI(KÜÇÜK($T2:$X2;--SOLDAN(I$1;1));$T2:$X2;0)+2));DOLAYLI(ADRES(1;KAÇINCI(KÜÇÜK($T2:$X2;--SOLDAN(H$1;1));$T2:$X2;0)+2))))

I2 hücresindeki formülü diğer hücrelere kopyalamanız yeterli olacaktır..

Formülü parça parça ele alacak olursak..

EĞER(SÜTUNSAY($I$2:I2)/2>$H2;"";

Formülün yazıldığı ilk hücre I2 aralığında olduğu için Sütunsayı I2 hücresinden başlattık, formülü yan hücrelere kopyaladığımızda I sütunu ile formülün hesapladığı hücreler arasındaki sütun sayısını verir, örnek olarak formül P6 hücresindeyken 8 değerini alır çünkü I ile P arasında I ve P de dahil 8 sütun vardır.. Bu formülü kullanmamızdaki amaç Teklif vermeyen yada Teklif sonucu 0 olan firmaları 1.düşük 2. düşük... 5.düşük sütunlarında boş gözükmesidir. Sütunsay formülünü 2 ye bölmemizin nedeki formül tek bir formül olduğu için ve istenilen I2:R17 aralığında düşük olan firmaların rakamı yanında isimleride geldiği için bu iki hücreyi saydırırken tek saymak için sütunsayısını 2 ye böldürdük. Sonra eğer bu değer H sütunundaki Teklif sayısından büyük ise formülün başvurduğu ilgili hücreleri boş bıraktık...

EĞER(ESAYIYSA(--SOLDAN(I$1;1))

I1 hücresindeki cümlenin ilk verisi sayı ise ilk şartımızı gerçekleştireceğiz, bu şarttı koymamızdaki asıl amaç, 1.düşük, 2.düşük...geçen sütunlarda düşük değeri alırken isim geçen sütunlarda bu değere ait isimleri yazmak istediğimizdendir, her sütun için ayrı ayrı formül yazmak yerine bu şekilde iç içe olan bir formülü kullanmak daha pratik olacaktır..

EĞER(ESAYIYSA(--SOLDAN(I$1;1)) bu şartı doğru ise kullanacak formülü ele alalım..

DOLAYLI(ADRES(SATIR();KAÇINCI(KÜÇÜK($T2:$X2;--SOLDAN(I$1;1));$T2:$X2;0)+2))

Bu formülde parçalara ayırırsak..

KAÇINCI(KÜÇÜK($T2:$X2;--SOLDAN(I$1;1));$T2:$X2;0)+2)

T2:X2 arasında verilerin küçükten büyüğe formül yardımıyla sıralamıştık..

T2:X2 aralığında küçük değeri bulacağız fakat hangi küçük değeri bulacağız, bunun için --SOLDAN(I$1;1) formülde bu eki kullandık formül 1.en düşük sütununda iken T2:X2 aralığındaki 1. küçük değerin T2:X2 aralığındaki kaçıncı sırada olduğunu bulur, formül 3.en düşük sütununda iken T2:X2 aralığındaki 3.en düşük değerin T2:X2 aralığındaki kaçıncı sırada bulur.

Kaçıncı fonkisoynunu sonuna +2 eklememizin nedeni tablodaki verilerin C sütunundan başlamasıdır. Yani A ile C arasındaki Sütun sayısının 2 olmasındandır. Bunun nedeni T2:X2 arasındaki buludumuz değere C sütunundan başlatarak kaçıncı sırada olduğunu bulmak içindir. Yani adres fonkisyonunu kullanarak kaçıncı değerin hangi hücrede olduğunu bulmak içindir.

Örnek olarak..I2 hücresindeki formülün ADRES(SATIR();KAÇINCI(KÜÇÜK($T2:$X2;--SOLDAN(I$1;1));$T2:$X2;0)+2)) sonucu $E$2 değerini verir istediğimi 1. en düşük değerde budur zaten..$E$2 bu sonucun hücre değerini bulmak içinde Dolaylı fonksiyonu kullanılmıştır..

EĞER(ESAYIYSA(--SOLDAN(I$1;1)) ... Eğer fonksiyonunun doğruluğundaki formülü inceledik şimdide yanlış durumundaki formülü inceleyelim..Yani formülün olduğu sütunun 1.satırdaki değerin soldan ilk verisinin sayı olmadığı durum..Bu durumların olduğu sütunlar
isim1..isim5 olan sütunlardır. Bu sütunlarda formül ilgili değeri değil bu değerin hangi isme ait olduğunu bulmamızı sağlayacaktır..

DOLAYLI(ADRES(1;KAÇINCI(KÜÇÜK($T2:$X2;--SOLDAN(H$1;1));$T2:$X2;0)+2))

Bu fomülde kaçıncı kısmı olduğu gibi diğeriyle aynıdır tek fark ilk formülün yazıldığı I2 hücresindeki formülde --SOLDAN(H$1;1) H1 kullanılmasıdır. Bunun nedeni formül I2 de değil J2 de iken yanlış değerini vereceği için ve J1 deki değerin herhangi bir sıralama içermediği için bir önceki sütundan bu sıralamayı kullandık yani küçük(dizi;k) k değerini soldan fonksiyonu ile I1 deki değerden aldık..

Adres(Satır numarasını..1 olarak sabir yazmamızdaki amaçta isim olan verilerin 1. satırda sabit olmasından dolayıdır...
Sayın epiyonajl, merhaba,

Gösterdiğiniz sabır ve iyi niyet için çok teşekkür ederim,

Açıklamalarınızı tekrar tekrar okuyup, örnek dosyada özümlemeye çalışıyorum,

Küçük bir merak; örnek dosyada teklif sayısı başlıklı H sütunu olmasaydı,

EĞER(SÜTUNSAY($I$2:I2)/2>$H2;""; formülünde $H2 hücresi yerine bir başka hücre adresi gelecekmiydi, yoksa formülün içeriği değişecekmiydi,

Dosyadaki sorunun, hangi formüllerle ve formül sırasıyla çözüleceğine dair bir teknik var mı ? Yani soruyu görünce, bu ........ formülleriyle ve şu formül sırası ile çözülür diyebiliyoruz ?

Tekrar teşekkür ederim, saygılarımla.
 
Katılım
14 Şubat 2008
Mesajlar
132
Excel Vers. ve Dili
2003 tr
örnekteki çizelgeyi ben hazırlamıştım.
bu vesile ile sayın ali ve sayın espiyonajl arkadaşlara yardımlarından dolayı tekrar teşekkür ederim.
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,712
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
örnekteki çizelgeyi ben hazırlamıştım.
bu vesile ile sayın ali ve sayın espiyonajl arkadaşlara yardımlarından dolayı tekrar teşekkür ederim.
Sayın egzell, genelde hazırlayan ve çözen arkadaşları kayıt ederdim, sizi atlamışım, özür dilerim,

Konuyu başlatmanız ve çözüme vesile olmanızdan dolayı size de teşekkür ederim,

Saygılarımla.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Sayın epiyonajl, merhaba,

Gösterdiğiniz sabır ve iyi niyet için çok teşekkür ederim,

Açıklamalarınızı tekrar tekrar okuyup, örnek dosyada özümlemeye çalışıyorum,

Küçük bir merak; örnek dosyada teklif sayısı başlıklı H sütunu olmasaydı,

EĞER(SÜTUNSAY($I$2:I2)/2>$H2;""; formülünde $H2 hücresi yerine bir başka hücre adresi gelecekmiydi, yoksa formülün içeriği değişecekmiydi,

Dosyadaki sorunun, hangi formüllerle ve formül sırasıyla çözüleceğine dair bir teknik var mı ? Yani soruyu görünce, bu ........ formülleriyle ve şu formül sırası ile çözülür diyebiliyoruz ?

Tekrar teşekkür ederim, saygılarımla.

H Sütunu olmasaydı H sütunu formül içeriğini kullanabilirdiniz..

EĞERSAY($C2:$G2;">0")


EĞER(SÜTUNSAY($I$2:I2)/2>EĞERSAY($C2:$G2;">0")

Bu şekilde kullanabilirdiniz..

Sorunun içeriğine bakarak nasıl bir yol izlemeniz gerektiğini belirlemeniz gerekir, belirlediğiniz yola en kısa ne şekilde nasıl ulaşabileceğinizi bulursunuz , daha sonra bu çözüme ulaşmak için deneme yaparak soruyu çözersiniz, bu bazen 10 dk bazen 3 saatinizide alabilir..Ne kadar fazla soru çözerseniz yeni oluşacak sorulara daha hızlı müdahele edersiniz..
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,712
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
H Sütunu olmasaydı H sütunu formül içeriğini kullanabilirdiniz..

EĞERSAY($C2:$G2;">0")


EĞER(SÜTUNSAY($I$2:I2)/2>EĞERSAY($C2:$G2;">0")

Bu şekilde kullanabilirdiniz..

Sorunun içeriğine bakarak nasıl bir yol izlemeniz gerektiğini belirlemeniz gerekir, belirlediğiniz yola en kısa ne şekilde nasıl ulaşabileceğinizi bulursunuz , daha sonra bu çözüme ulaşmak için deneme yaparak soruyu çözersiniz, bu bazen 10 dk bazen 3 saatinizide alabilir..Ne kadar fazla soru çözerseniz yeni oluşacak sorulara daha hızlı müdahele edersiniz..
Sayın espiyonajl, herşey için çok teşekkür ederim, önerileriniz doğrultusunda devam edeceğim,

Saygılarımla.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Sayın espiyonajl, herşey için çok teşekkür ederim, önerileriniz doğrultusunda devam edeceğim,

Saygılarımla.
Rica ederim.

İyi çalışmalar, Saygılar..
 
Üst