TARİHFARKI Fonksiyonunda Ustalık Sınıfı: Günleri, Ayları ve Yılları Hatasız Sayma
TARİHFARKI fonksiyonu (İngilizce sürümde DATEDIF), takvim özelliklerini dikkate alarak iki tarih arasındaki farkı yıl, ay veya gün cinsinden kesin olarak hesaplamaya olanak tanıyan Excel'in tek yerleşik aracıdır. Basit tarih çıkarma işlemlerinin aksine, artık yılları ve farklı uzunluktaki ayları doğru bir şekilde işler. Sonucu elde etmek için =TARİHFARKI(başlangıç_tarihi; bitiş_tarihi; "birim") formülünü kullanın; burada üçüncü argüman yanıtın biçimini belirler (örneğin, yıllar için "y" veya günler için "d").
Bu fonksiyon, fonksiyon sihirbazının ipuçları listesinde görünmese ve Excel'in yeni sürümlerinin resmi yardım belgelerinde yer almasa da, tamamen işlevseldir ve kıdem, kredi süreleri ve yaş hesaplamaları için standarttır.
Neden menüde yok? TARİHFARKI fonksiyonu, eski sürümlerle (Lotus 1-2-3) uyumluluk sağlamak amacıyla Excel'de kalmıştır. Microsoft yeni geliştirmeler için bunu önermemekte ve alternatifler sunmaktadır, ancak "yaş hesaplama" veya "kıdem hesaplama" görevleri için en güvenilir ve basit çözüm olmaya devam etmektedir.
Söz Dizimi ve Temel Argümanlar
Formül üç zorunlu argüman gerektirir. Bunlardan herhangi birindeki hata, yanlış sonuca veya #YANLIŞ! mesajına neden olacaktır.
=TARİHFARKI(baş_tarih; bit_tarih; birim)
- baş_tarih: Sayımın başladığı tarih hücresi veya değeri.
- bit_tarih: Farkın hesaplandığı tarih hücresi veya değeri.
- birim: Farkın hangi birimde ölçüleceğini belirleyen tırnak içindeki metin kodu.
Ölçüm Birimi Kodları Tablosu
| Kod | Döndürür | Kullanım Örneği |
|---|---|---|
| "y" | Tam yıllar | Kişinin yaşının hesaplanması |
| "m" | Tam aylar | Abonelik süresi |
| "d" | Günler | Gecikme gün sayısı |
| "md" | Günler (yıl ve aylar dikkate alınmadan) | Tam aylardan kalan günler |
| "ym" | Aylar (yıllar dikkate alınmadan) | Tam yıllardan kalan aylar |
| "yd" | Günler (yıllar dikkate alınmadan) | Bir sonraki yıldönümüne kadar olan günler |
Önemli Sıra Kuralı: Başlangıç tarihi her zaman bitiş tarihinden küçük veya ona eşit olmalıdır. Tarihleri ters sırada girerseniz (örneğin, başlangıç olarak bugün, bitiş olarak doğum tarihi), fonksiyon #SAYI! hatası döndürür.
Pratik Kullanım Senaryoları
1. Tam İş Kıdeminin Hesaplanması (Yıl + Ay + Gün)
İK raporlamasındaki en yaygın görev, kıdemi "X yıl, Y ay, Z gün" formatında göstermektir. Bunu tek bir formülle yapmak mümkün olmadığından, üç fonksiyon çağrısını ampersand (&) ile birleştiriyoruz.
Formül:
=TARİHFARKI(A2; B2; "y") & " yıl, " & TARİHFARKI(A2; B2; "ym") & " ay, " & TARİHFARKI(A2; B2; "md") & " gün"
A2 işe giriş tarihi, B2 ise işten çıkış tarihi (veya bugünün tarihi) olsun.
Bu kombinasyon şunları kullanır:
"y"— tam yılları sayar."ym"— geçen yılları görmezden gelerek kalan ayları sayar."md"— geçen ayları ve yılları görmezden gelerek kalan günleri sayar.
2. Kişinin Kesin Yaşı
Yaş hesaplamak için sadece tam yıl sayısını bilmek yeterlidir. Burada yılın kesirli kısımlarına gerek yoktur.
Formül:
=TARİHFARKI(A2; BUGÜN(); "y")
BUGÜN() fonksiyonunun kullanılması, dosya her açıldığında yaşın otomatik olarak güncellenmesini sağlar.
3. Bir Olayın Bir Sonraki Yıldönümüne Kadar Kalan Günlerin Hesaplanması
Bir olayın gerçekleştiği yılı dikkate almadan, en yakın yıldönümüne kaç gün kaldığını öğrenmek istiyorsanız, "yd" kodu kullanılır.
Formül:
=TARİHFARKI(A2; B2; "yd")
Bu, belirli bir tarihe bağlı ancak yıla bağlı olmayan tebrikleri planlamak veya sözleşmeleri yenilemek için kullanışlıdır.
Sık Karşılaşılan Hatalar ve Çözüm Yolları
Veriler yanlış hazırlanırsa, basit bir formül bile hata verebilir. İşte temel arıza nedenleri:
- #YANLIŞ! Hatası: Genellikle tarihlerden birinin metin olarak kaydedilmesi durumunda ortaya çıkar. Excel, "01.01.2024" gibi bir metin dizisini matematiksel olarak işleyemez.
- Çözüm: Hücre biçimini kontrol edin. "Tarih" biçiminde olmalıdırlar. Tarihler başka bir sistemden aktarıldıysa, dönüştürme için
TARİHSAYI()fonksiyonunu kullanın.
- Çözüm: Hücre biçimini kontrol edin. "Tarih" biçiminde olmalıdırlar. Tarihler başka bir sistemden aktarıldıysa, dönüştürme için
- #SAYI! Hatası: Başlangıç tarihinin bitiş tarihinden büyük olması durumunda ortaya çıkar.
- Çözüm: Veri mantığını kontrol edin veya hesaplamadan önce tarih sırasını kontrol etmek için
EĞERyapısını kullanın.
- Çözüm: Veri mantığını kontrol edin veya hesaplamadan önce tarih sırasını kontrol etmek için
- "md" Kullanılırken Yanlış Sonuç:
"md"argümanı, farklı sayıda güne sahip aylar arasında geçiş yapılırken garip davranışıyla bilinir (örneğin, 31 Ocak'tan 1 Mart'a geçerken bazı yerel ayarlarda negatif bir sayı veya sıfır gösterebilir).- Çözüm: Kritik öneme sahip finansal hesaplamalar için
"md"yerine, aydaki günleri kontrol eden karmaşık bir çıkarma formülü kullanmak daha iyidir; veya İK muhasebesi için 1 günlük sapmayı kabul edilebilir olarak görmek gerekir.
- Çözüm: Kritik öneme sahip finansal hesaplamalar için
Görselleştirme İçin İpucu:
Kıdemin düzgün görünmesi için sayıları METNEÇEVİR fonksiyonuna sarabilir veya özel hücre biçimi kullanabilirsiniz; ancak birleştirme işlemi sırasında tırnak işaretleri içinde boşluk eklemek en kolayıdır: " " & ... & " ".
Tarih Hesaplama Yöntemlerinin Karşılaştırılması
| Yöntem | Avantajlar | Dezavantajlar | Ne Zaman Kullanılır |
|---|---|---|---|
| TARİHFARKI | Takvimin hassas dikkate alınması, esnek birimler (ay/yıl) | Gizli fonksiyon, ipucu yok | Kıdem, yaş, sözleşme süreleri |
| Basit Çıkarma (B2-A2) | Hızlı, anlaşılır | Sonuç sadece gün cinsindendir, aya çevirmek zordur | Olaylar arasındaki gün sayısının hesaplanması |
| 365'e Bölme | Çok basit | Kaba hata payı (artık yılları dikkate almaz) | Yaklaşık tahminler, istatistik |
SSS
Soru: TARİHFARKI İngilizce Excel sürümünde kullanılabilir mi?
Cevap: Hayır, İngilizce arayüzde fonksiyon DATEDIF olarak adlandırılır. Söz dizimi ve birim kodları ("y", "m", "d") aynı kalır.
Soru: Neden "=TAR..." yazarken fonksiyon görünmüyor? Cevap: Bu normal bir davranıştır. Fonksiyon çalışır ancak fonksiyon sihirbazında açıklaması yoktur. Adını manuel olarak tam girmeniz gerekir.
Soru: İş günleri cinsinden fark nasıl hesaplanır?
Cevap: TARİHFARKI fonksiyonu takvim günlerini sayar. Hafta sonlarını hariç tutmak için NETİŞGÜNÜ (veya NETWORKDAYS) fonksiyonunu kullanın; bu fonksiyon tatil listesini belirtmenize olanak tanır.
Soru: "GG.AA.YYYY" formatındaki tarih metin olarak algılanıyorsa ne yapılmalı? Cevap: Tarihleri içeren sütunu seçin, "Veri" sekmesine gidin → "Sütunlara Dönüştür" → İleri → İleri → "Tarih" (GAY) formatını seçin → Son. Bu, metni zorla tarihe dönüştürür.