Doğum tarihine kaç gün var =YERİNEKOY

Katılım
7 Temmuz 2019
Mesajlar
7
Excel Vers. ve Dili
2016 TR
Herkese Merhabalar;

Doğum tarihi takibi için bir listem var, Bu liste için kullandığım formül;

=YERİNEKOY(TARİH(YIL(BUGÜN())+(BUGÜN()>TARİH(YIL(BUGÜN());AY(B2);GÜN(B2)));AY(B2);GÜN(B2))-BUGÜN()&" Gün Kaldı";"0 Gün Kaldı";"Doğumgünü BUGÜN")

formülünü kullanıyorum fakat bir sorunum var.
bazı doğum tarihlerinde sonuç atıyorum *209 gün kaldı* yazarken bazılarında ise *7 BUGÜN DOĞUM GÜNÜ* yazıyor halbuki *70 gün kaldı* yazması gerekiyor.
Bu linke tıklayarak sorunum ile ilgili fotoğrafa ulaşabilirsiniz Fotoğrafta kırmızı yerlerde herşey güzelken mavi yerlerde gördüğünüz gibi


*** LÜTFEN BANA YARDIMCI OLUN ***
 
Katılım
21 Aralık 2016
Mesajlar
722
Excel Vers. ve Dili
Office 365 TR
Selamlar,
Formülünüzle önce, aradaki gün farkı hesaplanıp " Gün Kaldı" ile birleştiriliyor. Örneğinizde 190 Gün Kaldı.
YERİNEKOY ile de sonu 0 ile biten (10, 20, 30 ....gibi ve örneğinizde de 190) değerlerin, yani "0 Gün Kaldı" değerlerinin "Doğumgünü BUGÜN" ile değiştirilmesi işlemi yapılıyor. Örneğinizdeki 190 Gün Kaldı daki 0 Gün Kaldı yerine değişiklik yapıldığında 19Doğumgünü BUGÜN olmakta.
Formülünüzü

=EĞER(ETARİHLİ(B2;BUGÜN();"md")=0;"Doğum Günü BUGÜN";TARİH(YIL(BUGÜN())+(BUGÜN()>TARİH(YIL(BUGÜN());AY(B2);GÜN(B2)));AY(B2);GÜN(B2))-BUGÜN()&" Gün Kaldı")

şeklinde revize edebilirsiniz....

Alternatif olarak da
=EĞER(ETARİHLİ(B2;BUGÜN();"md")=0;"Doğum Günü BUGÜN";ETARİHLİ(BUGÜN();TARİH(YIL(BUGÜN());AY(B2);GÜN(B2));"yd")&" Gün Kaldı")

formülünü de kullanabilirsiniz.

Not : Kişisel Tavsiyemdir.
BUGÜN() işlevi Volatile (Uçucu, Oynak nasıl tercüme edilir bilemem ama) işlevdir. Her defasında sayfanın yeniden hesaplatılmasını gerektirir.
O nedenle performans açısından, sayfanızın BOŞ herhangi bir hücresine =BUGÜN() yazıp Bugünün tarihini yazdırıp formüllerdeki BUGÜN() yerine de o hücreyi referans verin. (Örneğin D1 hücresine Bugünün tarihini yazın... Bu durumda formülünüz =EĞER(ETARİHLİ(B2;$D$1;"md")=0;"Doğum Günü BUGÜN";TARİH(YIL($D$1)+($D$1>TARİH(YIL($D$1);AY(B2);GÜN(B2)));AY(B2);GÜN(B2))-$D$1&" Gün Kaldı") şeklinde olacaktır)
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Doğum günü ile kaç gün kaldığını sadece gün olarak verir. Değer 0 ise o gün doğum günüdür. Bunu kontrol etmedim. Siz ekleyiniz.

Doğum tarihinin A2 hücresinde olduğunu varsayarsak :

Kod:
=MUTLAK(TARİH(YIL(BUGÜN());AY(A2);GÜN(A2))-BUGÜN())
Sütunu da Özel Hücre Biçimlendirme - İsteğe Uyarlanmış - Tür:
Kod:
0" Gün Kaldı";;"Bugün Doğum Günü"
olarak biçimlendirin.
 
Son düzenleme:
Katılım
7 Temmuz 2019
Mesajlar
7
Excel Vers. ve Dili
2016 TR
Selamlar,
Formülünüzle önce, aradaki gün farkı hesaplanıp " Gün Kaldı" ile birleştiriliyor. Örneğinizde 190 Gün Kaldı.
YERİNEKOY ile de sonu 0 ile biten (10, 20, 30 ....gibi ve örneğinizde de 190) değerlerin, yani "0 Gün Kaldı" değerlerinin "Doğumgünü BUGÜN" ile değiştirilmesi işlemi yapılıyor. Örneğinizdeki 190 Gün Kaldı daki 0 Gün Kaldı yerine değişiklik yapıldığında 19Doğumgünü BUGÜN olmakta.
Formülünüzü

=EĞER(ETARİHLİ(B2;BUGÜN();"md")=0;"Doğum Günü BUGÜN";TARİH(YIL(BUGÜN())+(BUGÜN()>TARİH(YIL(BUGÜN());AY(B2);GÜN(B2)));AY(B2);GÜN(B2))-BUGÜN()&" Gün Kaldı")

şeklinde revize edebilirsiniz....

Alternatif olarak da
=EĞER(ETARİHLİ(B2;BUGÜN();"md")=0;"Doğum Günü BUGÜN";ETARİHLİ(BUGÜN();TARİH(YIL(BUGÜN());AY(B2);GÜN(B2));"yd")&" Gün Kaldı")

formülünü de kullanabilirsiniz.

Not : Kişisel Tavsiyemdir.
BUGÜN() işlevi Volatile (Uçucu, Oynak nasıl tercüme edilir bilemem ama) işlevdir. Her defasında sayfanın yeniden hesaplatılmasını gerektirir.
O nedenle performans açısından, sayfanızın BOŞ herhangi bir hücresine =BUGÜN() yazıp Bugünün tarihini yazdırıp formüllerdeki BUGÜN() yerine de o hücreyi referans verin. (Örneğin D1 hücresine Bugünün tarihini yazın... Bu durumda formülünüz =EĞER(ETARİHLİ(B2;$D$1;"md")=0;"Doğum Günü BUGÜN";TARİH(YIL($D$1)+($D$1>TARİH(YIL($D$1);AY(B2);GÜN(B2)));AY(B2);GÜN(B2))-$D$1&" Gün Kaldı") şeklinde olacaktır)


Selamlar;
Öncelikle yazdığın yazıdaki emeğin için çok teşekkür ederim.

benim normlade kullandığım YERİNEKOY formülünün "0 Gün Kaldı" kısmında ki yerde 0 ile tırnak arasına boşluk koyarak " 0 Gün Kaldı" bu şekilde yaptım ve diğerleri de düzeldi bu sorun yaratır mı yani formül bu şekilde oldu.

=YERİNEKOY(TARİH(YIL(BUGÜN())+(BUGÜN()>TARİH(YIL(BUGÜN());AY(B2);GÜN(B2)));AY(B2);GÜN(B2))-BUGÜN()&" Gün Kaldı";" 0 Gün Kaldı";"Doğumgünü BUGÜN")

sizin verdiğiniz tüm formüller de doğru bir şekilde çalıştı.
fakat en son kısımdki Volatile diye ifade ettiğiniz. Her defasında sayfanın yeniden hesaplatılmasını gerektirir. dediğiniz yeri tam anlayamadım.

hangi formülü kullanmam daha doğru olur benim kendi formülümdeki düzeltme mi yoksa sizdeki formülerden birini mi ?
şimdiden teşekkür ederim
 
Katılım
7 Temmuz 2019
Mesajlar
7
Excel Vers. ve Dili
2016 TR
Merhaba,

Doğum günü ile kaç gün kaldığını sadece gün olarak verir. Değer 0 ise o gün doğum günüdür. Bunu kontrol etmedim. Siz ekleyiniz.

Doğum tarihinin A2 hücresinde olduğunu varsayarsak :

Kod:
=MUTLAK(TARİH(YIL(BUGÜN());AY(A2);GÜN(A2))-BUGÜN())
Sütunu da Özel Hücre Biçimlendirme - İsteğe Uyarlanmış - Tür:
Kod:
0" Gün Kaldı";;"Bugün Doğum Günü"
olarak biçimlendirin.
Merhaba;
Sizin cevabınızı tam olarak anlayamadım.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Alternatif 1
Doğum günü geçmişse BOŞ bırakıyor

=EĞER(TARİH(YIL(BUGÜN());AY(A2);GÜN(A2))-BUGÜN()<0;"";EĞER(TARİH(YIL(BUGÜN());AY(A2);GÜN(A2))-BUGÜN()=0;"Bugün Doğum Günü";TARİH(YIL(BUGÜN());AY(A2);GÜN(A2))-BUGÜN()&" Gün Kaldı"))

Alternatif 2
Doğum günü geçmişse, bir sonraki yıla göre kaç gün kaldığını da söylüyor

=EĞER(TARİH(YIL(BUGÜN());AY(A2);GÜN(A2))-BUGÜN()<0;TARİH(YIL(BUGÜN())+1;AY(A2);GÜN(A2))-BUGÜN() &" Gün Kaldı";EĞER(TARİH(YIL(BUGÜN());AY(A2);GÜN(A2))-BUGÜN()=0;"Bugün Doğum Günü";TARİH(YIL(BUGÜN());AY(A2);GÜN(A2))-BUGÜN()&" Gün Kaldı"))
 
Katılım
7 Temmuz 2019
Mesajlar
7
Excel Vers. ve Dili
2016 TR
Valla hepinizden Allah razı olsun.

hangi formülü kulanacağımı şaşırdım hangisi daha doğru olur ve daha düzgün çalışır?
 
Katılım
21 Aralık 2016
Mesajlar
722
Excel Vers. ve Dili
Office 365 TR
benim normlade kullandığım YERİNEKOY formülünün "0 Gün Kaldı" kısmında ki yerde 0 ile tırnak arasına boşluk koyarak " 0 Gün Kaldı" bu şekilde yaptım ve diğerleri de düzeldi bu sorun yaratır mı yani formül bu şekilde oldu.

=YERİNEKOY(TARİH(YIL(BUGÜN())+(BUGÜN()>TARİH(YIL(BUGÜN());AY(B2);GÜN(B2)));AY(B2);GÜN(B2))-BUGÜN()&" Gün Kaldı";" 0 Gün Kaldı";"Doğumgünü BUGÜN")

sizin verdiğiniz tüm formüller de doğru bir şekilde çalıştı.
Selamlar,
Yaptığınız değişiklik sonu 0 ile bitenlerde de " 0 Gün Kaldı" şeklinde arar ve bulamaz sonuç ne ise onu yazar. 190 Gün için 190 Gün yazar. Fakat önemli olan şu ki, Bugün doğum günü olanlar için de Bugün doğum günü yazmaz ve 0 Gün Kaldı yazacaktır.

Ekteki dokumanı sizin verileri kullanarak hazırladım...
Yazdığım formülleri ve @Necdet tarafından önerilen Sayı biçimlendirmeli formülün kullanımını da ekledim...
(Bu arada, yazdığım formüllerde bir hatayı düzeltmem gerekir. EĞER(ETARİHLİ(B2;BUGÜN();"md")=0;"Doğum Günü BUGÜN" .... Buradaki "md" ibaresi "yd" olarak değiştirilmelidir. Dokumanı hazırlarken fark ettim...)

Dokumanı incelersiniz... BUGÜN değeri de D1 hücresine yazıldı ve formüllerdeki BUGÜN() işlevi yerine $D$1 şeklinde yazıldı.

 
Katılım
7 Temmuz 2019
Mesajlar
7
Excel Vers. ve Dili
2016 TR
Selamlar,
Yaptığınız değişiklik sonu 0 ile bitenlerde de " 0 Gün Kaldı" şeklinde arar ve bulamaz sonuç ne ise onu yazar. 190 Gün için 190 Gün yazar. Fakat önemli olan şu ki, Bugün doğum günü olanlar için de Bugün doğum günü yazmaz ve 0 Gün Kaldı yazacaktır.

Ekteki dokumanı sizin verileri kullanarak hazırladım...
Yazdığım formülleri ve @Necdet tarafından önerilen Sayı biçimlendirmeli formülün kullanımını da ekledim...
(Bu arada, yazdığım formüllerde bir hatayı düzeltmem gerekir. EĞER(ETARİHLİ(B2;BUGÜN();"md")=0;"Doğum Günü BUGÜN" .... Buradaki "md" ibaresi "yd" olarak değiştirilmelidir. Dokumanı hazırlarken fark ettim...)

Dokumanı incelersiniz... BUGÜN değeri de D1 hücresine yazıldı ve formüllerdeki BUGÜN() işlevi yerine $D$1 şeklinde yazıldı.

Hayırlı Akşamlar
Formül içersinde BUGÜN() kullansak daha iyi olmazmı ?
yani neden tarihi ayrı bir hücreden referans alıyoruz?
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Formüllerde hata gördüm. Tarihin A1 hücresinde olduğu varsayılırsa :

Kod:
=EĞER(TARİH(YIL(BUGÜN());AY(A1);GÜN(A1))<BUGÜN();TARİH(YIL(BUGÜN())+1;AY(A1);GÜN(A1))-BUGÜN();BUGÜN()-TARİH(YIL(BUGÜN());AY(A1);GÜN(A1)))
Biçimlendirme yine ilk mesajımda olduğu gibidir.

52779 arkadaşımızın eklediği dosyada da hata vardı. Eğer kişinin doğum tarihi 1 ocak gibi yani geçerli tarihin ayı aynı ve günü de küçükse formüller hatalı çalışıyor.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Sadece merak ettim. #7 nolu mesajımdaki formüllerin sonucunda bir hata var mı? Biçimlendirmeye de ihtiyaç duymuyor.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
Sadece merak ettim. #7 nolu mesajımdaki formüllerin sonucunda bir hata var mı? Biçimlendirmeye de ihtiyaç duymuyor.
Sayın NextLevel ben kendi ve 52779 nolu arkadaşın formülünden sözettim. Sanırım üzerinize alındınız. "Biçimlendirmeye de ihtiyaç duymuyor" diye.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
@Necdet bey, Size değil, Sorunun sahibine sormak istemiştim. Yazdığım formülün hatalı işlem yapıp yapmadığını merak ettim.
 
Üst