Excel'de tarihler arasındaki farkı nasıl hesaplayabilirsiniz
İki tarih arasındaki farkı gün cinsinden öğrenmek için, bir tarihten diğerini çıkarmak (=B1-A1) ve hücreye sayısal format uygulamak yeterlidir. Daha karmaşık hesaplamalar (aylar, yıllar, iş günleri) için DATEDIF, DAYS ve NETWORKDAYS yerleşik fonksiyonlarını kullanın. Bu yöntemler, ek kurulum gerektirmeden tüm Excel sürümlerinde çalışır.
Temel hesaplama: Gün farkı
Excel, tarihleri sıralı numaralar olarak saklar (1, 1 Ocak 1900'e karşılık gelir), bu nedenle üzerlerinde yapılan matematiksel işlemler normal sayılarla yapıldığı gibi gerçekleştirilir.
Yöntem 1: Basit çıkarma
Gün sayısını elde etmek istiyorsanız en hızlı yöntem budur.
- Başlangıç tarihini A1 hücresine girin (örneğin,
01.01.2026). - Bitiş tarihini B1 hücresine girin (örneğin,
15.04.2026). - C1 hücresine şu formülü yazın:
=B1 - A1
- Önemli: Sonuç bir tarih olarak görüntüleniyorsa (örneğin,
05.04.1900), hücre formatını değiştirin. Hücreye sağ tıklayın → Hücreleri Biçimlendir → Sayı (veya "Genel") seçeneğini belirleyin.
Sonuç: 105.
Eğer hücre inatla tarih formatında kalıyorsa, formülü 1 ile çarpın: =(B1-A1)*1. Bu işlem sonucu zorunlu olarak sayıya dönüştürür.
Yöntem 2: DAYS Fonksiyonu
Bu fonksiyon Excel 2013'ten itibaren kullanılabilir. Hücrelere referans vermeden tarihleri doğrudan formüle yazmanıza olanak tanıdığı için kullanışlıdır.
Sözdizimi: =DAYS(bitiş_tarihi; başlangıç_tarihi)
Örnek:
=DAYS("15.04.2026"; "01.01.2026")
Sonuç yine aynı olacaktır — 105 gün. Sistem tarafından tanındığı takdirde fonksiyon, tarihlerin metin temsilini otomatik olarak yok sayar.
Hassas hesaplama: Yıllar, aylar ve günler (DATEDIF)
Yaş, kıdem veya kira sürelerini hesaplarken basit çıkarma yeterli değildir, çünkü aylardaki gün sayısı farklıdır. Burada gizli fonksiyon DATEDIF devreye girer. Otomatik tamamlama ipuçlarında görünmez ancak programın tüm sürümlerinde çalışır.
Sözdizimi: =DATEDIF(başlangıç_tarihi; bitiş_tarihi; "birim_kodu")
Birim kodları:
| Kod | Ne hesaplar | Örnek sonuç |
|---|---|---|
| "D" | Tam günler | 105 |
| "M" | Tam aylar | 3 |
| "Y" | Tam yıllar | 0 |
| "YM" | Yılları dikkate almadan aylar | 3 (Ocak ile Nisan arasındaki fark) |
| "MD" | Ayları ve yılları dikkate almadan günler | 14 |
| "YD" | Yılı dikkate almadan günler | 105 (Yıl artık yıl ise mantık değişir) |
Kullanım örnekleri:
- Kaç tam ay geçti:
=DATEDIF(A1; B1; "M") - Ay sonuna kadar kaç gün kaldı (yılı yok sayarak):
=DATEDIF(A1; B1; "MD")
DATEDIF fonksiyonu, başlangıç tarihi bitiş tarihinden büyükse #SAYI! hatası döndürür. Her zaman tarih sırasını kontrol edin veya güvenlik amacıyla EĞER yapısını kullanın.
Hafta sonları ve tatillerin dikkate alınması
Proje sürelerini veya ücret ödemelerini hesaplarken genellikle hafta sonu günlerinin çıkarılması gerekir.
NETWORKDAYS Fonksiyonu
İki tarih arasındaki iş günü sayısını hesaplar (Cumartesi ve Pazar hariç).
Formül:
=NETWORKDAYS(A1; B1)
1 Ocak ile 15 Nisan arasında 74 iş günü varsa, fonksiyon 74 değerini döndürür.
Tatillerin hariç tutulması
Üçüncü bir argüman ekleyin — tatil tarihlerini içeren hücre aralığı.
- D sütununda bir tatil listesi oluşturun (D1:D10).
- Şu formülü kullanın:
=NETWORKDAYS(A1; B1; $D$1:$D$10)
(Dolar işaretleri, formülü kopyalarken aralığı sabitler).
Standart dışı çalışma haftası
Eğer hafta sonlarınız Cumartesi-Pazar değilse (örneğin, sadece Pazar veya vardiya kayması), NETWORKDAYS.INTL kullanın.
=NETWORKDAYS.INTL(A1; B1; "0000011")
Burada sıfır ve birlerden oluşan dize, hangi günlerin çalışma (0) veya tatil (1) olduğunu belirtir.
Tam kıdem formülü: «X yıl Y ay Z gün»
«5 yıl 3 ay 12 gün» gibi düzgün bir metin elde etmek için birkaç DATEDIF çağrısını birleştirmeniz gerekir.
Başlangıç tarihinin A1, bitiş tarihinin B1 hücresinde olduğunu varsayalım:
- Yıllar:
=DATEDIF(A1; B1; "Y") - Aylar (kalan):
=DATEDIF(A1; B1; "YM") - Günler (kalan):
=DATEDIF(A1; B1; "MD")
Tek hücrede nihai formül:
=DATEDIF(A1; B1; "Y") & " yıl " & DATEDIF(A1; B1; "YM") & " ay " & DATEDIF(A1; B1; "MD") & " gün"
Bir çalışanın mevcut kıdemini hesaplamak için bitiş tarihi yerine BUGÜN() fonksiyonunu kullanın:
=DATEDIF(A1; BUGÜN(); "Y") & " yıl"
Bu formül her gün otomatik olarak güncellenecektir.
Sık yapılan hatalar ve çözümleri
| Sorun | Neden | Çözüm |
|---|---|---|
Sonuç tarih olarak görüntüleniyor (örneğin, Oca.00) | Hücreye "Tarih" formatı atanmış | Formatı "Sayı" veya "Genel" olarak değiştirin. |
#DEĞER! hatası | Tarih metin olarak yazılmış (örneğin, noktasız "15.04.26" veya yanlış yerde tire ile) | TARİH(2026;4;15) veya TARİHSAYI("15.04.2026") fonksiyonlarını kullanın. |
| Negatif sayı | Başlangıç tarihi bitiş tarihinden sonra | Formülde hücrelerin yerini değiştirin veya MUTLAK() içine alın: =MUTLAK(B1-A1). |
| DATEDIF listede görünmüyor | Fonksiyon geliştiriciler tarafından gizlenmiş | Adını manuel olarak yazın, çalışacaktır. |
SSS
Zaman farkını (saatler, dakikalar) hesaplayabilir miyim?
Evet. Saatli bir tarihten diğer saatli tarihi çıkarın (=B1-A1). Ardından hücreye özel [s]:dd formatını uygulayın (saatlerin 24'ten sonra sıfırlanmaması için köşeli parantezler gereklidir).
Neden "MD" kodlu DATEDIF bazen negatif sayı verir?
Bu, ay sonundan geçişlerde (örneğin, 31 Ocak'tan 1 Mart'a) bilinen bir fonksiyon hatasıdır. Bu durumlarda, GÜN ve AYSONU fonksiyonlarıyla karmaşık formüller kullanmak veya sadece toplam gün farkını hesaplamak daha güvenilirdir.
Bu formüller Google E-Tablolar'da çalışıyor mu?
Evet, listelenen tüm fonksiyonlar (DATEDIF, DAYS, NETWORKDAYS) benzer sözdizimiyle Google Sheets'te tamamen desteklenmektedir.