Y

Çözüldü Tarihe Göre Kıdem Tazminatı Tavanı

YasarPiskin

Yıllık Forum Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
EK 'li çalışmada yıllara ait kıdem tazminatı tavanları mevcuttur. Yapmak istediğim şey D2 hücresine, C1 hücresindeki tarihi esas alarak o döneme ait kıdem tazminatı tavanı getirme hususunda yardımlarınızı rica ediyorum.
 

Ekli dosyalar

Selamlar,
Liste yapısına göre çözüm olarak
** Listede en yeni tarihler en üstte
Formüle göre, en üstteki tarihten daha büyük bir tarih yazıldığında da en üstteki döneme ait miktarı yazar.
** En son ve en küçük tarih 01.01.2004
Formüle göre, 01.01.2004 den küçük olan tarihler için "" (BOŞ) yazar.
** Listeni, Büyükten küçüğe sıralıdır.... Büyükten küçüğe sıralı olmalıdır.

DİZİ Formül olarak

Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
 
Selamlar,
Liste yapısına göre çözüm olarak
** Listede en yeni tarihler en üstte
Formüle göre, en üstteki tarihten daha büyük bir tarih yazıldığında da en üstteki döneme ait miktarı yazar.
** En son ve en küçük tarih 01.01.2004
Formüle göre, 01.01.2004 den küçük olan tarihler için "" (BOŞ) yazar.
** Listeni, Büyükten küçüğe sıralıdır.... Büyükten küçüğe sıralı olmalıdır.

DİZİ Formül olarak

Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
Sayın 52779 ekteki belgede listeyi küçükten büyüğe olacak şekilde sıraladım. cevap 2 deki formülü buna göre revize edebilir miyiz? Bu hususta yardımlarınızı rica ediyorum
 

Ekli dosyalar

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