En Yakin Kucuk Ve Buyuk Degeri Bulmak

Tam Olarak nasil anlatirim bilmiyorum. Fakat  tarihler yazdim ornekleyebilmek icin;

Simdi size referans olacak bir tarih olacak; bu ornekteki tarihimiz “30.06.2010” ve istenen ise bu tarihten onceki 26/05/2010 ve bir sonraki olan 26/07/2010 tarihlerini bulabilmek..

Ornek dosyada ekleyecegim fakat aciklamalari buradanda yapacagim, ornek dosyalari inceleyerek yazdiklarimi okursaniz; daha iyi anlayacaginizi saniyorum..

Once En yakin Kucuk tarihi bulmak hakkinda dusunelim ve ilk ornegimizi aciklayalim;

=INDEX(A1:A7,COUNTIF(A1:A7,”<“&$E$2))
=INDIS(A1:A7;EĞERSAY(A1:A7;”<“&$E$2))

Dosyadan aldigim bu fonksiyonu kisaca anlatmak gerekirse,

INDEX(A1:A7) fonksiyonu ile baslamisiz yani formul icinde ne olursa olsun bizim sonucumuz formulumuzun iceriginin verecegi sayiya gore bu a1:a7 araligindan birisi olacaktir.

COUNTIF(A1:A7,”<“&$E$2); ornegimizide E2 satirinda “30.06.2010” yazmakta oncelikle bunu soyleyeyim, yani burda formulumuzun soyledigi, A1:A7 araliginda “30.06.2010”dan kucuk tarihlerin kac tane oldugunu say ve bize bu degeri ver, ki formulumuz 2 degerini vererek sonucu “26.05.2010” olarak uretiyor..

En yakin Buyuk Tarih icin kullandigimiz formul;

=INDEX(A1:A7,COUNTIF(A1:A7,”<“&$E$2)+1)
=INDIS(A1:A7;EĞERSAY(A1:A7;”<“&$E$2)+1)

Bu formul ise ayni islemi tekrarlayarak COUNTIF formulu ile elde ettigimiz 2 degerini 3 yaparak bir sonraki “26.07.2010” tarihini elde etmemizi sagliyor.

Karsisindaki Rakam alma bolumu az oncede INDEX(A1:A7) bolumunu anlatirken soyledigim gibi INDEX formulu  formul icinde bulunann rakmsal degeri bir araliktan secerek sonuc cikartiyordu, yani INDEX(B1:B7) yaptigimiz anda karsi satiri alabilmek mumkundu..

—–

Suana kadar gayet basarili gorunsede formulumuzun soyle bir eksigi var; ki bu formul havuz basinda kafasi guzel halde simdi idareliken diyebilecegim, o anda acilen istenilen biseydi 🙂

Simdi sunu soruyorum ya tarihler birbirini takip etmeseydi ne olacakti 2. tarih “26.05.2010” yada 3. tarih “26.07.2010” olmasaydi.. yani formulumuz kac tane referansimizdan kucuk degerin var oldugunu sayiyor ve bize o satirdaki en buyuk ama bizim referansimizdan kucuk olan tarihi veriyordu, yani tarihler karisik oldugunda sacma sapan bir tarih verebilirdi..

Bunun icin daha mantikli bir formul gerekliydi; basit ama mantikli bir dizi formuluyle bu sorunuda astim;

=MAX(IF(A1:A7<=E2,A1:A7))
=MAK(EĞER(A1:A7<=E2;A1:A7))

Simdi ilk etapta dizi formulu dedik bunun ne oldugunu aciklamak gerekir, dizi(array) formulleri ctrl + shift + enter kombinasyonlari ile formulden cikildiginda calisan fonksiyonlardir ve belirli bir dongu yaparak sonuca giderler, ornegimizi inceleyince anlayacagiz..

Ornegimizde MAXIMUM (A1:A7) degeri isteniyor, ama belirli bir IF sartiyla nedir sartimiz E2`den kucuk olan MAXIMIM A1:A7 degeri yani En Yakin Kucuk Tarih degeri.. Yani formulumuz A1:A7 araliginda bir dongu hazirliyor ve bu donguyle “30.06.2010” tarihinden kucuk olan degerleri belirliyor ve daha sonra MAX() fonksiyonuyla en buyuk kalan degeri bize veriyor..

=MIN(IF(A1:A7>=E2,A1:A7))
=MİN(EĞER(A1:A7>=E2;A1:A7))

Formulumuzu anlatmaya gerek duymuyorum yukaridaki aciklamalarimdan anlasildigi uzere E2`den buyuk olan en kucuk degeri donguleyen dizi formulumuz..

Olayin bir sonraki ayagi ise hani belki az ihtiyacimiz olacak fakat karsimiza cikabilme ihtimali olan ya en yakin 2. bilemediniz 3. deger istenseydi ne yapacaktik ?

Formulumuzun 3. ayagi dedigim SMALL, LARGE formullerinin kullanildigi fonksiyonlar bunu bulabilmek icin varlar; soyleki ;

=LARGE(IF($A$1:$A$7<=E2,$A$1:$A$7,””),1)
=BÜYÜK(EĞER($A$1:$A$7<=E2;$A$1:$A$7;””),1)
=SMALL(IF($A$1:$A$7>=E2,$A$1:$A$7,””),1)
=KÜÇÜK(EĞER($A$1:$A$7>=E2;$A$1:$A$7;””),1)

Simdi formulumuzun ilk basamagi IF($A$1:$A$7<=E2,$A$1:$A$7,””) yani eger araliktaki deger E2 den kuzukse yahut esitse bu degerleri ver; yoksa bos birak.. Burada ilk dongumuzu olusturmus olduk.

Sonraki hamlemiz ise LARGE(dongu,1); buradaki 1 kacinciyi istedigimize dair olan “k” sayisi siz oraya 3 yazarsaniz 3. E2`den kucuk olan degeri elde edecektiniz.. SMALL formulunude anladiginizi umuyorum, cunku ayni formul`un tersi sonucta; herkese kolay gelsin, ekli dosyayi inceleyiniz..

simdilik link ile temin edebilirsiniz.
En Yakin Kucuk Ve Buyuk Degeri Bulmak

Yazar: mmustafaaslan

2004 yilindan itibaren ozel bir sirketin finans departmaninda calismaktadir. Kendini excel, visual basic kullaniminda gelistirmis olan yazarimiz; Meslegi geregi SAP konusunda ileri derecede bilgilidir.

“En Yakin Kucuk Ve Buyuk Degeri Bulmak” için 6 yorum

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


5 + 3 =