• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

iki tarih arası artık yıl hesaplamasın

Katılım
18 Eylül 2012
Mesajlar
58
Excel Vers. ve Dili
EXCEL 2016 TÜRKÇE
Merhabalar, excelde iki tarih arasındaki farkı hesaplarken şubat aylarının tamamını 28 gün üzerinden hesaplanmasına ilişkin nasıl formül yazabilirim. Özet olarak 4 yılda bir Şubat ayını 29 gün olarak algılamasını istemiyorum. Bu konu hakkında yardımlarınızı rica etsem.
 
A1 hücresinde "ilk tarih", B1 hücresinde "son tarih" varsa;

Türkçe Excel için:

Kod:
=TOPLA.ÇARPIM(--(((AY(SATIR(DOLAYLI(A1&":"&B1)))<>2)+(GÜN(SATIR(DOLAYLI(A1&":"&B1)))<>29))>0))


İngilizce Excel için:

Kod:
=SUMPRODUCT(--(((MONTH(ROW(INDIRECT(A1&":"&B1)))<>2)+(DAY(ROW(INDIRECT(A1&":"&B1)))<>29))>0))

.
 
Son düzenleme:
A1 hücresinde "ilk tarih", B1 hücresinde "son tarih" varsa;

Türkçe Excel için:

Kod:
=TOPLA.ÇARPIM(--(((AY(SATIR(DOLAYLI(A1&":"&B1)))<>2)+(GÜN(SATIR(DOLAYLI(A1&":"&B1)))<>29))>0))


İngilizce Excel için:

Kod:
=SUMPRODUCT(--(((MONTH(ROW(INDIRECT(A1&":"&B1)))<>2)+(DAY(ROW(INDIRECT(A1&":"&B1)))<>29))>0))

.

Hocam merhabalar, yazdığınız formülü denedim fakat halen 4 yılda bir şubat ayını 29 gün olarak algılıyor. Örneğin A1 hücresinde 01/01/2013 tarihi olsun B1 hücresinde bitiş tarihi 16/05/2018 olsun, artık yılı dikkate almadığımızda arasındaki gün farkı 1960 olarak hesaplaması gerekirken artık yılı dikkate alarak 1961 gün hesap ediyor ve bu da sorunumu ne yazık ki çözmüyor.
 
.

Bunlardan birisini deneyin.

Kod:
=B1 - DATE(YEAR(B1); MONTH(A1);DAY(A1)) + 365 * (YEAR(B1) - YEAR(A1))

Kod:
= B1- DATE(YEAR(B1); MONTH(A1);DAY(A1)) + 365 * (YEAR(B1) - YEAR(A1)) - SIGN(B1 - A1) * (DATE(YEAR(B1); 3; 1) - DATE(YEAR(B1); 2; 29))

Kod:
=B1-A1-SUMPRODUCT((MONTH(ROW( INDIRECT(A1&":"&B1)))=2)*(DAY(ROW(INDIRECT(A1&":"&B1)))=29))


.
 
.

Bunlardan birisini deneyin.

Kod:
=B1 - DATE(YEAR(B1); MONTH(A1);DAY(A1)) + 365 * (YEAR(B1) - YEAR(A1))

Kod:
= B1- DATE(YEAR(B1); MONTH(A1);DAY(A1)) + 365 * (YEAR(B1) - YEAR(A1)) - SIGN(B1 - A1) * (DATE(YEAR(B1); 3; 1) - DATE(YEAR(B1); 2; 29))

Kod:
=B1-A1-SUMPRODUCT((MONTH(ROW( INDIRECT(A1&":"&B1)))=2)*(DAY(ROW(INDIRECT(A1&":"&B1)))=29))


.

Hocam ellerinize sağlık, şimdi problem çözüldü. Emekleriniz için çok teşekkür ederim.
 
Soru açık olmasına rağmen yanlış anlamışım .... Verilen tarihler arasında yılların 365 gün olarak hesaplanması isteniyor sanmıştım.

Neyse ki İdris Bey, sorunu çözdü. Aşağıdaki de bir başka alternatif olsun;

Kod:
=B1-A1-(DATE(YEAR(B1);1;1)-DATE(YEAR(A1);1;1)-((YEAR(B1)-YEAR(A1))*365)+AND(MONTH(DATE(YEAR(A1);2;29))=2;MONTH(DATE(YEAR(B1);2;29))=2)*1)

.
 
Soru açık olmasına rağmen yanlış anlamışım .... Verilen tarihler arasında yılların 365 gün olarak hesaplanması isteniyor sanmıştım.

Neyse ki İdris Bey, sorunu çözdü. Aşağıdaki de bir başka alternatif olsun;

Kod:
=B1-A1-(DATE(YEAR(B1);1;1)-DATE(YEAR(A1);1;1)-((YEAR(B1)-YEAR(A1))*365)+AND(MONTH(DATE(YEAR(A1);2;29))=2;MONTH(DATE(YEAR(B1);2;29))=2)*1)

.
ilginiz ve zaman ayırdığınız için çok teşekkürler
 
Bir soru daha sorsam örneğin A1 hücresinde 15/02/2016 tarihi yazılı, B1 hücresinde 185 rakamı yazılı olsun =A1+B1 fomülü yazarak B1 hücresinde yazılı 185 gün ilave ettiğim zaman 18/08/2016 tarihi oluşuyor fakat burada artık yılı yani şubat ayını 29 üzerinden hesaplıyor. Artık yılı dikkate almadan 19/08/2016 şeklinde bir sonuca ulaştıracak formül nasıl yazılabilir.
 
....örneğin A1 hücresinde 15/02/2016 tarihi yazılı, B1 hücresinde 185 rakamı yazılı olsun =A1+B1 fomülü yazarak B1 hücresinde yazılı 185 gün ilave ettiğim zaman 18/08/2016 tarihi oluşuyor fakat burada artık yılı yani şubat ayını 29 üzerinden hesaplıyor. Artık yılı dikkate almadan 19/08/2016 şeklinde bir sonuca ulaştıracak formül nasıl yazılabilir.
Merhaba.

Örneğin, Sayın SERDAR'ın verdiği son formül üzerinden hareket edilerek aşağıdaki şekilde istediğiniz tarih hesaplanabilir.
=A1+B1+TOPLA.ÇARPIM((AY(SATIR(DOLAYLI(A1&":"&A1+B1)))=2)*(GÜN(SATIR(DOLAYLI(A1&":"&A1+B1)))=29))
 
Hocam merhabalar, yazdığınız formülü denedim fakat halen 4 yılda bir şubat ayını 29 gün olarak algılıyor. Örneğin A1 hücresinde 01/01/2013 tarihi olsun B1 hücresinde bitiş tarihi 16/05/2018 olsun, artık yılı dikkate almadığımızda arasındaki gün farkı 1960 olarak hesaplaması gerekirken artık yılı dikkate alarak 1961 gün hesap ediyor ve bu da sorunumu ne yazık ki çözmüyor.

Esasında, 2 No'lu mesajımdaki formül, sizin istediğiniz konuyu tam olarak hesaplıyor. Sadece yapmanız gereken; formülün sonuna -1 ilave etmek olacaktı.

Örneğin; benim önerdiğim formüle göre 01.01.1998 - 31.12.2018 arası 7665 gün olarak hesaplanır. Siz muhtemelen bunu 7664 gün olarak görmek istiyorsunuz.

Önerdiğim formül; yukarıda 6 No'lu mesajımda bahsettiğim gibi A1 ve B1 hücrelerine hangi tarihler girilirse girilsin, hesaplarda 1 yılın 365 gün olarak ele alınmasına dayanmaktadır.

Yani; 2016 yılında Şubat ayı 29 çekmekteyken, A1 ve B1 hücrelerinde 01.01.2016 ve 31.12.2016 tarihleri varsa, formül sonucu 365 olur, aynı şekilde 2018 yılında Şubat ayı 28 çekerken 01.01.2018 ve 31.12.2018 tarihleri için de formül sonucu 365 olur.

Söz konusu 1 günlük fark ise; önerdiğim formülde başlangıç ve bitiş tarihlerinin her ikisinin de hesaba katılmış olmasından kaynaklanmaktadır.

.
 
ilginiz ve yardımlarınız için teşekkürler Haluk Bey
 
Bu kadar formül ile uğraşmaktansa şubat 29 çektiğinde 29 olsa ne olur? merak ettim doğrusu.
 
Geri
Üst