Doğum Tarihini Yaş olarak Yazılması

Katılım
8 Aralık 2005
Mesajlar
93
Excel Vers. ve Dili
Microsoft® Excel 2007 Tr
Merhabalar;
Yaptığım çalışma tablosunda doğum tarihini yaşa çeviren bi fonksiyona ihtiyacım var.

Hücreye 01.01.1976 yazdığımda diğer hücreye kaç yaşına tekabül ettiğini yazmasını istiyorum. örnek a1 : 01.01.1976 a2: 30 şeklinde
+

1 yaşını doldurmamış kişileride aylık şeklinde gösterebilirmiyim. örnek : a1 : 01.01.2006 a2: 7 aylık

teşekkürler
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın Abdulhey,

Size bir fonksiyon yolluyorum

'*************************************************************
' FUNCTION NAME: Age()
'
' PURPOSE:
' Calculates age in years from a given date to today's date.
'
' INPUT PARAMETERS:
' StartDate: The beginning date (for example, a birth date).
'
' RETURN
' Age in years.

'*************************************************************
Function Age(varBirthDate As Variant) As Integer
Dim varAge As Variant

If IsNull(varBirthDate) Then Age = 0: Exit Function

varAge = DateDiff("yyyy", varBirthDate, Now)
If Date < DateSerial(Year(Now), Month(varBirthDate), _
Day(varBirthDate)) Then
varAge = varAge - 1
End If
Age = CInt(varAge)
End Function

'*************************************************************
' FUNCTION NAME: AgeMonths()
'
' PURPOSE:
' Compliments the Age() function by calculating the number of months
' that have expired since the last month supplied by the given date.
' If the given date is a birthday, the function returns the number of
' months since the last birthday.
'
' INPUT PARAMETERS:
' StartDate: The beginning date (for example, a birthday).
'
' RETURN
' Months since the last birthday.

'*************************************************************
Function AgeMonths(ByVal StartDate As String) As Integer
Dim tAge As Double
tAge = (DateDiff("m", StartDate, Now))
If (DatePart("d", StartDate) > DatePart("d", Now)) Then
tAge = tAge - 1
End If

If tAge < 0 Then
tAge = tAge + 1
End If

AgeMonths = CInt(tAge Mod 12)

End Function
İyi çalışmalar :D
 
Katılım
8 Aralık 2005
Mesajlar
93
Excel Vers. ve Dili
Microsoft® Excel 2007 Tr
Teşekkürler Sayın Modalı;
Kardeş malum acemilik :D Yazdığın fonkisyonu bir kitapta örnek olarak gönderebilirmisin
 
Katılım
11 Mart 2006
Mesajlar
597
Excel Vers. ve Dili
ms office 2010 ev
ms office 2007 iş
Altın Üyelik Bitiş Tarihi
08.01.2019
a2 hücresine =bugün() ve b2 hücresine doğum tarihini yazın c2 hücresinede bu formülü yapıştırın =YIL(($A$2-B2+1))-1900&" YIL " &AY(($A$2-B2+1))-1&" AY " &GÜN(($A$2-B2+1)) &" GÜN" sanırım istediğiniz olcakatır.
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Örneği de ekliyorum.

İyi çalışmalar :hey:
 
Katılım
8 Aralık 2005
Mesajlar
93
Excel Vers. ve Dili
Microsoft® Excel 2007 Tr
Merhaba;
Aşağıdaki b1 hücresine =Age(a1) yazdığımda a1 hücresi dolu ise sonuç veriyor. Ama a1 hücresi boş işe b1 hücresine 106 ve c1 hücersine değer yazıyor. formül olduğunda. Formülü temizleyince de tekar hesaplama yapmıyor. aynı şekilde =YIL((D18-E18+1))-1900&" " &AY((D18-E18+1))-1&" AY " &GÜN((D18-E18+1)) &" GÜN" <<örnek>> bu formülde de aynı sonuç çıkıyor. a1 hücresi dolu ise b1 hücresine işlem yapan, a1 boşsa b1 ve c1 de işlem yapmayan bi fonksiyon yada makro varmı ?


a1 b1 c1

DOĞUM TARİHİ YAŞI AY
01.01.1976 30 7
bu sütün boş 106 #DEĞER!
tarih yok 106 #DEĞER!
106 #DEĞER!
106 #DEĞER!
106 #DEĞER!
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Ekteki dosyayı incelermisiniz.

Edit : Bulunduğumuz yıldan büyük bir yıl girilirse hücre boş görünecektir.
 
Üst