Excel'de iki tarih-saat değerinin arasında geçen süreyi, günü, ayı veya yılı nasıl hesaplarım?
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.
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.
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-A2Burada 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.
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.
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
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ı
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.
- 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