Excel'de yaş ve doğum tarihi hesaplama
Excel'de bir kişinin yaşını yıl, ay ve gün cinsinden tam olarak hesaplamak için =DATEDIF(doğum_tarihi; BUGÜN(); "Y") işlevini kullanın. Daha ayrıntılı hesaplama (yıl + ay + gün) için "Y", "YM" ve "MD" bağımsız değişkenlerini birleştirin. Yaşı bilerek doğum tarihini bulmanız gerekiyorsa, =EDATE(BUGÜN(); -yaş*12) işlevini uygulayın.
Excel'de tarih sisteminin çalışma mantığı
Formülleri kullanmadan önce, programın çalışma mekanizmasını anlamak önemlidir. Excel'de tarihler metin olarak değil, 1 Ocak 1900'den (sayı 1) başlayan sıra numaraları olarak saklanır. Bu, tarihler üzerinde aritmetik işlemler yapmanıza olanak tanır: bir tarihten diğerini çıkarma, gün ekleme vb.
Önemli: Tarih içeren hücrelerin "Tarih" biçimine sahip olduğundan emin olun. Hücre "Metin" olarak biçimlendirilmişse, formüller #DEĞER! hatası veya yanlış sonuç döndürür.
DATEDIF işlevi ile kesin yaş hesaplama
DATEDIF işlevi (İngilizce Date Difference kelimesinden türetilmiştir), iki tarih arasındaki farkı hesaplamak için temel araçtır. Modern Excel sürümlerinin yardım bölümünde gizli olmasına rağmen, tamamen çalışır durumdadır ve en doğru sonuçları verir.
Sözdizimi: =DATEDIF(başlangıç_tarihi; bitiş_tarihi; ölçü_birimi)
Sonuç çıktısı seçenekleri
| Birim | Açıklama | Örnek formül | Sonuç |
|---|---|---|---|
| "Y" | Tam yıllar | =DATEDIF(A2; BUGÜN(); "Y") | 35 |
| "M" | Tam aylar | =DATEDIF(A2; BUGÜN(); "M") | 426 |
| "D" | Tam günler | =DATEDIF(A2; BUGÜN(); "D") | 12950 |
| "YM" | Kalan aylar (yıllar dikkate alınmadan) | =DATEDIF(A2; BUGÜN(); "YM") | 4 |
| "MD" | Kalan günler (yıllar ve aylar dikkate alınmadan) | =DATEDIF(A2; BUGÜN(); "MD") | 12 |
Okunabilir metin oluşturma
Yaşı alışılmış "35 yıl 4 ay 12 gün" biçiminde görüntülemek için, birkaç işlev çağrısını metin dizeleriyle birleştirin:
=DATEDIF(A2; BUGÜN(); "Y") & " yıl " & DATEDIF(A2; BUGÜN(); "YM") & " ay " & DATEDIF(A2; BUGÜN(); "MD") & " gün"
Bitiş tarihi olarak BUGÜN() (TODAY()) işlevini kullanın. Böylece yaş, dosya her açıldığında otomatik olarak yeniden hesaplanır.
Alternatif hesaplama yöntemleri
Herhangi bir nedenle DATEDIF işlevi kullanılamıyorsa veya özel bir biçime ihtiyaç duyuluyorsa, başka yaklaşımlar kullanılabilir.
YEARFRAC yöntemi (Ondalık yaş)
YEARFRAC işlevi, iki tarih arasındaki yıl kesrini döndürür. Ondalık sayıların gerekli olduğu finansal hesaplamalar veya istatistikler için kullanışlıdır.
Formül: =INT(YEARFRAC(A2; BUGÜN(); 1))
1 bağımsız değişkeni, yıldaki gerçek gün sayısını (artık yılların dikkate alınması) belirtir.
Tarih Hesaplama yöntemi
Gün numaralarının çıkarılmasına dayanan basit ancak daha az doğru bir yöntem:
=INT((BUGÜN()-A2)/365,25)
Dezavantaj: Yılın uzunluğunu ortalamaya aldığından, doğum günü mevcut yılda henüz gelmediyse 1 yıllık hata payı verebilir.
Yaştan doğum tarihini bulma
Tersine mühendislik sorunu daha nadir ortaya çıkar, ancak standart araçlarla çözülebilir. Tam yıllar cinsinden yaş içeren bir sütununuz varsa ve yaklaşık doğum tarihini geri yüklemeniz gerekiyorsa:
- Ay düzeyinde kesin hesaplama:
EDATEişlevini kullanın. Mevcut tarihten gerekli ay sayısını çıkarır.
=EDATE(BUGÜN(); -B2*12)
(B2 — yıl cinsinden yaşı içeren hücre). Sonuç: Tarih, geçmişteki bir yılda bugünün gün ve ayıyla eşleşecektir. Doğum günü yalnızca kişi bugün doğduysa tam olarak belirlenecektir.
- Sadece doğum yılının hesaplanması:
=YEAR(BUGÜN()) - B2
Bu formül, ay ve gün olmadan sadece yılı döndürür.
Hata yönetimi ve sık karşılaşılan sorunlar
Tarihlerle çalışırken kullanıcılar genellikle tipik hatalarla karşılaşır. İşte bunlardan kaçınmanın yolları:
Sık karşılaşılan hatalar
- #DEĞER! (#VALUE!) hatası: Doğum tarihi hücresine metin yazıldığında ortaya çıkar (örneğin, metin biçiminde "15.07.1990").
- Çözüm: Metni "Veri" -> "Sütunlara Dönüştür" menüsü aracılığıyla tarihe dönüştürün veya
DATEVALUEişlevini kullanın.
- Çözüm: Metni "Veri" -> "Sütunlara Dönüştür" menüsü aracılığıyla tarihe dönüştürün veya
- Negatif yaş: Doğum tarihinin gelecekte olması (yıl hatası) veya
DATEDIFformülünde başlangıç tarihinin bitiş tarihinden büyük olması durumunda ortaya çıkar.- Çözüm: Kontrol ekleyin:
=EĞER(A2>BUGÜN(); "Hata"; DATEDIF(...)).
- Çözüm: Kontrol ekleyin:
- Yanlış ayırıcı: Türkçe yerel ayarlarında Excel, işlev bağımsız değişkenlerini virgül yerine noktalı virgül (
;) ile ayırır. Virgül kullanımı sözdizimi hatasına neden olur.
Boş hücrelere karşı koruma
Tablo kademeli olarak dolduruluyorsa, formül boş satırlarda hatalar verebilir. Hesaplamayı bir koşula sarın:
=EĞER(A2=""; ""; DATEDIF(A2; BUGÜN(); "Y"))
Bu yapı, doğum tarihi girilene kadar boş bir hücre döndürür.
SSS
Neden DATEDIF işlevi yazarken ipuçlarında görünmüyor? Bu, Excel'in tarihsel bir özelliğidir. İşlev, eski sürümlerle (Lotus 1-2-3) uyumluluk için korunmuş, ancak işlev sihirbazından gizlenmiştir. Adını manuel olarak girerseniz doğru şekilde çalışır.
Artık yıllar nasıl dikkate alınır?
DATEDIF ve YEARFRAC (1 bağımsız değişkeniyle) işlevleri, hesaplamalar sırasında artık yılları otomatik olarak dikkate alır. Manuel düzeltme gerekmez.
Geçmişte belirli bir tarihte yaş hesaplanabilir mi?
Evet. BUGÜN() işlevi yerine, istediğiniz tarihi içeren bir hücreye referans verin veya tarihi doğrudan yazın: =DATEDIF(A2; "31.12.2020"; "Y").