Sn
@zompcu_80
Selamlar,
Dosyanıza baktığımda A kolonundaki tarihlerdeki sıralama yine büyükten küçüğe şeklinde idi...
Öncelikle, dosyanızı detaylı incelediğimde, "-" (Tire) işareti yerine, "–" (Uzun Tire) işaretleri de kullanıldığını fark ettim.
Önceki verdiğim formülde "-" işaretini arattırıyorduk. Şimdi formülde "–" işaretini "-" işareti ile değiştirip "-" işaretini arattırma değişikliğini de yapmamız gerekecek.
Yani formülümüz
=
EĞER(C1<
TARİHSAYISI("01.01.2004");"";
KAYDIR(B2;
EĞERHATA(
KAÇINCI(C1;--
PARÇAAL(
A2:A35;1;
BUL(" -";
A2:A35)-1);
-1);0);0))
şeklinde idi
=
EĞER(C1<
TARİHSAYISI("01.01.2004");"";
KAYDIR(B2;
EĞERHATA(
KAÇINCI(C1;--
PARÇAAL(
YERİNEKOY(A2:A35;"–";"-");1;
BUL(" -";
YERİNEKOY(A2:A35;"–";"-"))-1);
-1);0);0))
şeklinde olmalıdır.
Sıralamayla ilgili olarak, Ben açıklama yaparak anlatayım..
Burada, aramalarda, önemli olan
KAÇINCI işlevidir. KAÇINCI işlevinin yapısı
KAÇINCI(aranan değer, aranan aralık, arama şekli)
şeklindedir.
aranan değer : Örneğinize göre,
TARİH aranmaktadır.
aranan aralık : Tarihlerin dönemlerinin yazılı olduğu A2:A35 aralığıdır.
arama şekli : Önemli olan burasıdır. Burada 3 değer bulunmaktadır.
0 (ya da
YANLIŞ) : TAM Eşleşme araması .... Yani aranan aralıkta bire - bir aranan değerin AYNISINI arar.
1 : YAKLAŞIK Eşleşme .... Aranılan değerin bulunduğu dönemi bulmak için kullanılır (Örneğin Gelir Vergisi dilim aralıkları gibi) ve 1
Küçükten Büyüğe sıralanmış listede kullanılır. Burada önemli olan Nokta, aranılan değer listenin
en küçük değerinden (Yani listenin ilk değerinden)
BÜYÜK yada EŞİT olmalıdır. (Sizin örneğinizde en küçük değer 1 Ocak 2004)
-1 : YAKLAŞIK Eşleşme .... Aranılan değerin bulunduğu dönemi bulmak için kullanılır (Örneğin Gelir Vergisi dilim aralıkları gibi) ve -1 Büy
ükten Küçüğe sıralanmış listede kullanılır. Burada önemli olan Nokta, aranılan değer listenin
en Büyük değerinden (Yani listenin ilk değerinden)
KÜÇÜK yada EŞİT olmalıdır. (Sizin örneğinizde en Büyük değer 1 Ocak 2021)
Formülde bu yaklaşık eşleşme kullanıldı.. Listeniz Büyükten Küçüğe sıralamalı olduğundan
-1 ile arama yapıldı. Formülde bu değeri
KIRMIZI ile belirttim.
Sorunuzda, Küçükten Büyüğe sıralanmış liste dediğinize göre
-1 yerine,
1 yazarak deneyebilirsiniz...
Aramaların KAÇINCI işlevi ile bu şekilde yapılması için, listelerin
MUTLAKA sıralı olması gerekir.... Sıralanmamış listede bu uygulama yapılamaz....
O nedenle,
ister sıralı olsun ve isterse sıralanmamış olsun sizin listenize göre kullanabileceğiniz bir formül şöyle de olabilir...
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
Burada da listenizin en büyük ve en küçük tarihleri arasında kalmak koşuluyla istenilen dilime ait tazminat değeri bulunabilir. Listede Sıralamaya gerek yok...
YADA(C1<TARİHSAYISI("01.01.2004");C1>TARİHSAYISI("30.06.2021")) ifadesiyle, 1 Ocak 2004 ten küçük, 30 Haziran 2021 den Büyük olması durumunda "" BOŞ yazması durumu ele alındı.
Anlatabilmişimdir umarım...
Sıralama ve sıralı listede değer bulunması ile ilgili dosya örneği ekleyebilirim isterseniz...