KutoolsforOffice — Tek çözüm, beş güçlü araç.Daha az çabayla daha fazlasını başarmak.

Excel'de iki tarih-saat değerinin arasında geçen süreyi, günü, ayı veya yılı nasıl hesaplarım?

YazarSun Değiştirme Tarihi

Excel’de programları yönetirken, proje zaman çizelgelerini takip ederken ya da olay günlüklerini analiz ederken genellikle iki belirli zaman noktası arasında geçen süreyi hesaplamanız gerekir. Örneğin, birinde başlangıç saatleri, diğerinde bitiş saatleri yer alan iki liste verildiğinde, aşağıdaki ekran görüntüsünde gösterildiği gibi aynı satırdaki her çift için geçen süreyi hızlıca hesaplamak isteyebilirsiniz. Bu işlem, çalışma saatlerini raporlamak, yaş hesaplamaları yapmak veya son teslim tarihlerini izlemek için son derece kullanışlıdır.
Excel'de başlangıç ve bitiş saatlerinin listesini gösteren bir ekran görüntüsü

Formülle geçen süreyi/günü/ayı/yılı hesaplayın

Doğrudan geçen süreyi hesaplamak için VBA kodu kullanın


Formülle geçen süreyi/günü/ayı/yılı hesaplayın

Geçen süreyi hesaplayın

Excel, iki saat arasındaki farkı hesaplamayı kolaylaştırır—bu özellik, çalışan vardiya takibi, işlem süresi hesabı veya proje ilerlemesini izleme gibi senaryolarda son derece kullanışlıdır. Aynı gün içindeki saatler için aşağıdaki adımları izleyin:

1. Geçen sürenin görünmesini istediğiniz boş bir hücreye tıklayın (örneğin C2 hücresi) ve aşağıdaki formülü girin:

=IF(B2<,A2,1+B2-A2, B2-A2)
Böylece hesaplamanın doğruluğu korunur.

2. Formülü girdikten sonra Enter tuşuna basın. Bu formülü diğer satırlara uygulamak için doldurma tutamacını kullanın: Hücrenin sağ alt köşesindeki küçük kareye tıklayın ve ek kayıtları kapsayacak şekilde aşağı doğru sürükleyin. Böylece birden fazla girdi için geçen süreleri kolayca hesaplayabilirsiniz.

3. Sonuç hücrelerini seçili bırakarak sağ tıklayın ve bağlam menüsünden Hücre biçimini ayarlar seçeneğini seçin. Hücre biçimini ayarlar iletişim kutusunda, sol listeden Sayı sekmesine tıklayıp Saat seçeneğini belirleyin. Ardından sağ tarafta tercih ettiğiniz saat biçimini (örneğin ss:dd, s:dd:ss vb.) seçerek sonuçları okunabilir geçen süreler olarak görüntüleyin.
Excel'de saat biçimlerini ayarlamak için Hücreleri Biçimlendir iletişim kutusunu gösteren bir ekran görüntüsü

4. Biçimlendirmeyi uygulamak için Tamam düğmesine tıklayın. Süre değerleri artık seçiminize göre görüntülenecek ve toplam süreleri yorumlamak daha kolay hale gelecek.

Ek ipuçları:

  • Hatanın oluşmasını önlemek için başlangıç ve bitiş saatlerinin yer aldığı sütunların geçerli Excel saat biçiminde olduğundan emin olun.
  • Gece vardiyası gibi bazı bitiş saatlerinin ertesi güne sarkacağını düşünüyorsanız, yukarıdaki formül bunu otomatik olarak dikkate alır ve gerektiğinde 1 (tam bir günü temsil eder) ekler.
  • "#DEĞER!" hatası alırsanız, kaynak hücrelerinizdeki boş veya hatalı biçimlendirilmiş girdileri kontrol edin.

Geçen günleri, ayları veya yılları hesaplayın

İki tarih arasındaki gün, ay veya yıl sayısını hesaplamak, proje planlaması, hizmet sürelerinin belirlenmesi ya da yaş hesaplamaları gibi durumlarda yaygın olarak kullanılır. Her bir senaryo için verimli bir yaklaşım aşağıda açıklanmıştır:

Geçen günler için boş bir hücreye tıklayın (örneğin C2) ve aşağıdaki formülü girin:

=B2-A2
Burada A2, Başlangıç Tarihi; B2 ise Bitiş Tarihi’dir.EnterTuşuna bastıktan sonra ek satırları doldurmak için tutamacı aşağı doğru sürükleyin.
Excel'de geçen günleri hesaplamak için formülü gösteren bir ekran görüntüsü

Notlar: Her iki tarihin de Excel’in Tarih biçimini kullandığından emin olun; aksi takdirde sonuç hatalı olabilir. Yalnızca tam günleri (saat veya dakika olmadan) saymak istiyorsanız bu formül uygundur.

İki tarih arasındaki ayları hesaplamak için boş bir hücreye şunu girin:

=DATEDIF(A2,B2,"m")
Bu formül, tamamlanmış geçen ayların sayısını verir. Kısmi aylar da önemliyse, günleri dahil ederek kesirli ayları gösterebilirsiniz.

Yıllar için (kısmi yıllar dahil), şu formülü kullanın:

=DATEDIF(A2,B2,"y")
Yılları ondalık olarak görmek istiyorsanız şunu deneyebilirsiniz:=DATEDIF(A2,B2,"m")/12ve sonuç hücresini daha yüksek hassasiyet için sayı biçiminde biçimlendirin.

Önlemler:

  • Bitiş tarihi Başlangıç Tarihi’nden önceyse, bu formüller negatif değerler döndürür—doğrulama eklemeyi düşünebilirsiniz.
  • DATEDIF işlevini dikkatlice girin; çünkü bu işlev Excel’in standart işlev listesinde yer almadığından, yanlış yazıldığında "#AD?" hatası verir.

Geçen yılları, ayları ve günleri birleştirilmiş biçimde hesaplayın

Göreviniz daha ayrıntılı bir analiz gerektiriyorsa (örneğin “2 Yıl, 6 Ay, 19 Gün” gibi), Excel’de DATEDIF işlevini kullanarak bunu kolayca gerçekleştirebilirsiniz. Bu çözüm, çalışan hizmet süreleri, yaş hesaplamaları veya yıl, ay ve günlerin net şekilde ayrılması gereken her türlü senaryo için idealdir.

Boş bir hücre seçin (örneğin C2) ve aşağıdaki formülü girin:

=DATEDIF(A2,B2,"Y") & " Years, " & DATEDIF(A2,B2,"YM") & " Months, " & DATEDIF(A2,B2,"MD") & " Days"
Ardından EnterBu, birden fazla DATEDIF hesaplamasını birleştirerek okunabilir bir metin oluşturur ve geçen süreyi tam olarak gösterir.
Excel'de iki tarih arasındaki yılları, ayları ve günleri hesaplamak için formülü gösteren bir ekran görüntüsü

Formülü birden fazla satıra uygulamanız gerekiyorsa, daha önce yaptığınız gibi doldurma tutamacını kullanın. Metnin doğru görüntülenmesini sağlamak için sonuç sütununu “Genel” olarak biçimlendirmeniz en iyisidir.

Yararlı ipucu: Hesaplamanız Artık Yıl’ı veya değişken ay uzunluklarına sahip tarihleri kapsıyorsa, DATEDIF işlevinin takvim ayları ve yılları baz alarak doğru sonuç verdiğini bilmeniz rahatlatıcı olacaktır.

Sorun giderme ve hatırlatmalar:

  • Kaynak verinizi, boş hücreler veya hatalı tarih/saat biçimlendirmesi açısından her zaman iki kez kontrol edin.
  • Hatalar fark ederseniz, girdi sütunlarını standartlaştırmak için bunları “Tarih” veya “Saat” biçiminde yeniden biçimlendirmeyi deneyin.
  • Kaynak hücreyi düzenledikten sonra formüller güncellenmezse, yeniden hesaplamaya zorlamak için F9 tuşuna basın veya Excel seçeneklerinden otomatik hesaplamanın açık olduğundan emin olun.

İki tarih-saat arasındaki geçen süreyi hesaplamak için VBA kodu

Büyük veri kümelerini işlemek ya da hesaplamaları otomatikleştirmek gerekiyorsa, VBA son derece güçlü bir araçtır. Örneğin, geçen süreye ilişkin sonuçları tek bir hücrede birleştirebilir veya hesaplamaları tam olarak ihtiyacınız doğrultusunda özelleştirebilirsiniz.

1. Geliştirici Araçları>Visual Basicseçeneğine gidin; yeni bir Microsoft Visual Basic for Applicationspenceresi açılacaktır.Ekle>Modülseçeneğine tıklayıp aşağıdaki kodu yapıştırın:

Sub CalcElapsedTimeBySelection()
    Dim startRange As Range
    Dim endRange As Range
    Dim outputCell As Range
    Dim ws As Worksheet
    Dim i As Long
    Dim rowCount As Long
    Dim elapsedTime As Double
    Dim startTime As Variant, endTime As Variant
    Dim xTitleId As String
    
    xTitleId = "Kutools for Excel"
    On Error Resume Next
    
    ' Prompt user for ranges
    Set startRange = Application.InputBox("Select the range for Start Time:", xTitleId, Type:=8)
    If startRange Is Nothing Then Exit Sub
    
    Set endRange = Application.InputBox("Select the range for End Time:", xTitleId, Type:=8)
    If endRange Is Nothing Then Exit Sub
    
    Set outputCell = Application.InputBox("Select the top-left cell for output results:", xTitleId, Type:=8)
    If outputCell Is Nothing Then Exit Sub
    
    On Error GoTo 0
    
    ' Check matching range sizes
    If startRange.Rows.Count <> endRange.Rows.Count Then
        MsgBox "The start and end time ranges must have the same number of rows.", vbExclamation, xTitleId
        Exit Sub
    End If
    
    ' Loop through rows
    rowCount = startRange.Rows.Count
    For i = 1 To rowCount
        startTime = startRange.Cells(i, 1).Value
        endTime = endRange.Cells(i, 1).Value
        
        If IsNumeric(startTime) And IsNumeric(endTime) Then
            elapsedTime = CDbl(endTime) - CDbl(startTime)
            ' Handle next-day (cross-midnight) case
            If elapsedTime < 0 Then elapsedTime = elapsedTime + 1
            outputCell.Offset(i - 1, 0).Value = elapsedTime
            outputCell.Offset(i - 1, 0).NumberFormat = "[h]:mm:ss"
        Else
            outputCell.Offset(i - 1, 0).Value = "Invalid Time"
        End If
    Next i
    
    MsgBox "Elapsed times calculated successfully for " & rowCount & " rows.", vbInformation, xTitleId
End Sub

2. Kodu çalıştırmak için Çalıştır düğmesi düğmesine tıklayın. Başlangıç zaman aralığını, bitiş zaman aralığını ve geçen sürenin nereye yazılacağını seçmeniz istenecektir. Sonuç, saat biçiminde görüntülenecektir.

Bu VBA yaklaşımı, özellikle hesaplamayı veya biçimi daha da özelleştirmek istediğinizde ve Zamanı Kaydet özelliği çok büyük tablolarla çalışıyorsa oldukça etkilidir.


En İyi Office Üretkenlik Araçları

🤖KUTOOLS AI Yardımcısı: Şunu temel alarak Veri Analizi’i devrimleştirin:Akıllı Yürütme   |  Kod Oluştur|  özel formüller Oluştur  |  Verileri Analiz Et ve Grafikler Oluştur|  Geliştirilmiş İşlevler Çağır…
Popüler Özellikler:Bul, Vurgula veya Yinelenenleri İşaretle   |  Boş Satırları Sil   |  Veri Kaybetmeden Sütunları Birleştir veya Hücreleri   |   Formül kullanmadan yuvarlama…
Süper ARA:Çoklu Kriterli Dikey Arama (VLookup)  |  Çoklu Değerli Dikey Arama (VLookup)  |   Birden Fazla Sayfada Dikey Arama (VLookup)   |   Bulanık Eşleme…
Gelişmiş Açılır Liste:Açılır Liste Hızlıca Oluştur   |  Bağımlı Açılır Liste   |  Çoklu Seçimli Açılır Liste…
Sütun Yöneticisi:Belirli Sayıda Sütun Ekle|Sütunları Taşı|Gizli Sütunların Görünürlük Durumunu Aç/Kapat|Aralıkları ve Sütunları Karşılaştır…
Öne Çıkan Özellikler:Izgara Odaklama   |  Tasarım Görünümü   |Gelişmiş formül çubuğu   | Çalışma Kitabı ve Sayfa Yöneticisi   |  Kaynaklar(Otomatik Metin)|  Tarih Seçici   |  Çalışma Sayfalarını Birleştir  |  Şifrele/Hücreleri Şifre Çöz   | Listeye Göre E-posta Gönder   |  Süper Filtre   |   Özel Filtre(Kalın Yazılı Hücreleri Filtrele/italik/üstü çizili…) …
En Çok Kullanılan 15 Araç Setleri:12 MetinAraçları(Metin Ekle,Belirli Karakterleri Sil, …)|   50+GrafikTürleri(Gantt Grafiği, …)|   40+ Pratik Formüller(Doğum tarihine dayanarak yaş hesapla, …)|   19 EklemeAraçları(QR Kodu Ekle,Yoldan Resim Ekle, …)|   12 DönüştürmeAraçları(Kelimeye Dönüştür,Döviz Kuru Dönüşümü, …)|   7 Birleştir ve AyırAraçları(Gelişmiş Satırları Birleştir,Hücreleri Böl, …)|… ve daha fazlası
Kutools'u tercih ettiğiniz dilde kullanın – İngilizce, İspanyolca, Almanca, Fransızca, Çince ve 40+ başka dillerde de desteklenir!

Excel becerilerinizi Kutools for Excel ile geliştirin ve verimlilikte hiç yaşamadığınız bir deneyim yaşayın.Kutools for Excel, üretkenliği artırmak ve Zamanı Kaydet için 300’den fazla gelişmiş özelliğe sahiptir.İhtiyacınız olan özelliği hemen edinmek için buraya tıklayın…


Office Tab, Office uygulamalarına sekmeli bir arayüz kazandırarak işlerinizi çok daha kolay hale getirir.

  • Word, Excel, PowerPoint, Publisher, Access, Visio ve Project'te sekmeli düzenleme ve okuma özelliğini etkinleştirin.
  • Belgeleri yeni pencerelerde değil, aynı pencerenin yeni sekmelerinde açıp oluşturun.
  • Günlük üretkenliğinizi %50 artırır ve her gün yüzlerce fare tıklamasından tasarruf etmenizi sağlar!

Tüm Kutools eklentileri — tek bir kurulum dosyasında!

Kutools for Office paketi, Excel, Word, Outlook ve PowerPoint eklentilerini ve ayrıca Office Tab Pro’yu içeren kapsamlı bir çözümdür; Office uygulamalarında çalışan ekipler için idealdir.

ExcelWordOutlookTabsPowerPoint
  • Hepsi bir arada paket— Excel, Word, Outlook ve PowerPoint eklentileri + Office Tab Pro
  • Tek kurulum, tek lisans— birkaç dakikada hazır (MSI uyumlu)
  • Birlikte daha iyi çalışır— Office uygulamalarında akıcı üretkenlik
  • 30 günlük tam özellikli deneme— kayıt gerekmez, kredi kartı gerekmez
  • En iyi fiyat performans— ayrı ayrı eklenti satın almaya göre tasarruf sağlar