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

HOOGEZAND

Altın Üye
Katılım
18 Eylül 2012
Mesajlar
58
Excel Vers. ve Dili
EXCEL 2016 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-05-2025
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.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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:

HOOGEZAND

Altın Üye
Katılım
18 Eylül 2012
Mesajlar
58
Excel Vers. ve Dili
EXCEL 2016 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-05-2025
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.
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
.

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))

.
 

HOOGEZAND

Altın Üye
Katılım
18 Eylül 2012
Mesajlar
58
Excel Vers. ve Dili
EXCEL 2016 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-05-2025
.

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.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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)
.
 

HOOGEZAND

Altın Üye
Katılım
18 Eylül 2012
Mesajlar
58
Excel Vers. ve Dili
EXCEL 2016 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-05-2025
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
 

HOOGEZAND

Altın Üye
Katılım
18 Eylül 2012
Mesajlar
58
Excel Vers. ve Dili
EXCEL 2016 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-05-2025
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.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
....ö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))
 

HOOGEZAND

Altın Üye
Katılım
18 Eylül 2012
Mesajlar
58
Excel Vers. ve Dili
EXCEL 2016 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-05-2025

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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.

.
 

HOOGEZAND

Altın Üye
Katılım
18 Eylül 2012
Mesajlar
58
Excel Vers. ve Dili
EXCEL 2016 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-05-2025
ilginiz ve yardımlarınız için teşekkürler Haluk Bey
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,359
Excel Vers. ve Dili
Ofis 365 Türkçe
Bu kadar formül ile uğraşmaktansa şubat 29 çektiğinde 29 olsa ne olur? merak ettim doğrusu.
 
Üst