Belirli bir tarih aralığında (iki tarih arasında) Excel'de en büyük veya en küçük değeri nasıl bulabilirim?
Günlük veri analizi sırasında, özellikle işlem kayıtları veya zaman serisi verileriyle çalışırken, belirli bir zaman diliminde oluşan en yüksek veya en düşük değeri belirlemeniz gerekebilir. Örneğin, aşağıdaki ekran görüntüsünde gösterilen bir tablonuz olduğunu ve 2016/7/1 ile 2016/12/1 gibi iki tarih arasındaki maksimum veya minimum değeri belirlemek istediğinizi hayal edin. Bu, belirli dönemlerde rapor oluştururken, aylık performansı karşılaştırırken veya verilerdeki zirve ve dipsizlikleri izlerken yaygın bir gereksinimdir. Bu makale, size Excel formülleri, VBA kodu ve yerleşik özellikleri kullanarak birkaç pratik çözüm sunacak ve ihtiyacınız olan değeri hızlı ve doğru bir şekilde çıkarmanıza yardımcı olacaktır.
➤ Belirli bir tarih aralığında en yüksek veya en düşük değeri dizi formülleriyle bulma
➤ VBA kodu: Belirli bir tarih aralığında otomatik olarak en yüksek veya en düşük değeri bulma
➤ Diğer yerleşik Excel yöntemleri: Maksimum/minimum değerleri tarih aralığına göre filtrelemek ve görüntülemek için PivotTable kullanma
Dizi formüllerini kullanarak belirli bir tarih aralığında en büyük veya en küçük değeri bulun
En basit yaklaşımlardan biri, Excel'de dizi formülleri kullanmaktır. Bu formüller, birden fazla kritere göre değer hesaplamaları yapmanıza olanak tanır—örneğin, tarihlerin belirlediğiniz aralıkta olup olmadığını kontrol edebilirsiniz. Bu yöntem, orta büyüklükteki veriler ve formül girmekte rahat olan kullanıcılar için uygundur.
Çalışma sayfanızda A sütununda (A5:A17) tarihler ve B sütununda (B5:B17) karşılık gelen değerler listelenmiş olsun; başlangıç ve bitiş tarihleri sırasıyla B1 ve D1 hücrelerine girilmiş olsun.
1. Sonucu görüntülemek istediğiniz boş bir hücreyi seçin (örneğin, E2).
2016/7/1 ile 2016/12/1 arasındaki en büyük değeri bulma:
2. Seçili hücreye aşağıdaki formülü girin. Formülü düzenledikten sonra, Excel'in bunu bir dizi formülü olarak tanıması için Ctrl + Shift + Enter tuşlarına basın (sadece Enter'a basmayın):
=MAX(IF((A5:A17<=$D$1)*(A5:A17>=$B$1),B5:B17,""))
Bu formül, hangi tarihlerin başlangıç ve bitiş tarihleri arasında olduğunu kontrol eder ve yalnızca eşleşen satırlardaki değerleri dikkate alarak maksimumu hesaplar.
2016/7/1 ile 2016/12/1 arasındaki en küçük değeri bulma:
3. Aynı tarih aralığı içinde minimumu bulmak için benzer bir yaklaşım kullanın. Aşağıdaki formülü girin (ve yine Ctrl + Shift + Enter tuşlarıyla onaylayın):
=MIN(IF((A5:A17<=$D$1)*(A5:A17>=$B$1), B5:B17, ""))
Bu formül aynı şekilde çalışır, ancak tarih kriterlerinize uygun minimum değeri döndürür.
Notlar:
- Yukarıdaki örneklerde, A5:A17 tarihlerinizi içeren aralık, $B$1 başlangıç tarihi, $D$1 bitiş tarihi ve B5:B17 değerlendirmek istediğiniz değerlerin aralığıdır. Bu referansları gerçek verilerinize uygun şekilde ayarlayın.
- Referans aldığınız iki aralığın uzunluklarının aynı olduğundan emin olun—aksi takdirde formül hatalara neden olabilir.
- Tarih girişlerinin tarih olarak değil, metin olarak biçimlendirilmediğinden emin olun, aksi takdirde formül beklenen şekilde çalışmayabilir.
İpuçları:
- Office 365 veya Excel 2021 ve üzeri sürümlerde çalışıyorsanız, daha basit kriter temelli hesaplamalar için MAXIFS ve MINIFS fonksiyonlarını kullanabilirsiniz.
- Formül beklenmedik bir şekilde 0 veya boş dönerse, tarih aralığının mevcut veri tarihleriyle çakıştığından emin olun ve farkına varılmamış boş hücreler için kontrol edin.
VBA kodu: Belirli bir tarih aralığında otomatik olarak en yüksek veya en düşük değeri bulma
Büyük veri setleriyle uğraşan, bu görevi sık sık tekrarlaması gereken veya raporlamada otomasyon arayan kullanıcılar için, bir VBA makro çözümü seçilen bir tarih aralığındaki maksimum veya minimum değeri etkin bir şekilde bulabilir. VBA ile kullanıcıyı her seferinde ilgili aralıkları seçmeye ve tarihleri ayarlamaya yönlendirebilirsiniz, bu da dinamik uygulamalar veya gelişmiş iş akışı entegrasyonu için idealdir.
1. Geliştirici > Visual Basic'e gidin. Görüntülenen VBA düzenleme penceresinde, Ekle > Modül'e tıklayın ve ardından aşağıdaki kodu yeni modüle kopyalayıp yapıştırın:
Sub FindMaxMinInDateRange_Robust()
Dim ws As Worksheet
Dim dateRange As Range, valueRange As Range
Dim startCell As Range, endCell As Range
Dim startDate As Date, endDate As Date
Dim i As Long
Dim d As Date, v As Variant
Dim hasHit As Boolean
Dim maxV As Double, minV As Double
Const TITLE As String = "KutoolsforExcel"
On Error GoTo FailFast
Set ws = ActiveSheet
Set dateRange = Application.InputBox("Select the DATE range:", TITLE, Type:=8)
If dateRange Is Nothing Then Exit Sub
Set valueRange = Application.InputBox("Select the VALUE range (same rows as date range):", TITLE, Type:=8)
If valueRange Is Nothing Then Exit Sub
If dateRange.Rows.Count <> valueRange.Rows.Count Then
MsgBox "Date range and value range must have the SAME number of rows.", vbExclamation, TITLE
Exit Sub
End If
Set startCell = Application.InputBox("Select START date cell:", TITLE, Type:=8)
If startCell Is Nothing Then Exit Sub
Set endCell = Application.InputBox("Select END date cell:", TITLE, Type:=8)
If endCell Is Nothing Then Exit Sub
If Not IsDate(startCell.Value) Or Not IsDate(endCell.Value) Then
MsgBox "Start/End cell must contain valid dates.", vbExclamation, TITLE
Exit Sub
End If
startDate = CDate(startCell.Value)
endDate = CDate(endCell.Value)
If startDate > endDate Then
Dim tmp As Date
tmp = startDate: startDate = endDate: endDate = tmp
End If
For i = 1 To dateRange.Rows.Count
If IsDate(dateRange.Cells(i, 1).Value) Then
d = CDate(dateRange.Cells(i, 1).Value)
If d >= startDate And d <= endDate Then
v = valueRange.Cells(i, 1).Value
If IsNumeric(v) And Not IsEmpty(v) Then
If Not hasHit Then
maxV = CDbl(v): minV = CDbl(v)
hasHit = True
Else
If CDbl(v) > maxV Then maxV = CDbl(v)
If CDbl(v) < minV Then minV = CDbl(v)
End If
End If
End If
End If
Next i
If hasHit Then
MsgBox "Max value in range: " & maxV & vbCrLf & _
"Min value in range: " & minV, vbInformation, TITLE
Else
MsgBox "No rows matched the date range (or values were non-numeric).", vbExclamation, TITLE
End If
Exit Sub
FailFast:
MsgBox "Something went wrong: " & Err.Description, vbExclamation, TITLE
End Sub
2. Makroyu çalıştırmak için düğmesine tıklayın F5). Tarih ve değer aralıklarını seçmek ve başlangıç ve bitiş tarihlerini girmek için yönergeleri izleyin. Belirlenen tarih aralığının maksimum ve minimum değerleri bir iletişim kutusunda gösterilecektir.
İpuçları:
- Seçilen tarih ve değer aralıklarının aynı sayıda satıra sahip olduğundan ve birbiriyle doğrudan eşleştiğinden emin olun.
- Bu yaklaşım, geniş listeleri işlemek veya değişen kriterlere göre tekrarlayan maksimum/minimum hesaplamaları otomatikleştirmek için özellikle faydalıdır.
- Boş veya geçersiz bir aralık seçilirse veya tarih girişi doğru biçimde yapılmazsa, kod geçerli bir sonuç vermeyebilir—çalıştırmadan önce seçimlerinizi iki kez kontrol edin.
Diğer yerleşik Excel yöntemleri: Maks/min değerleri tarih aralığına göre filtrelemek ve görüntülemek için PivotTable kullanma
Formüller veya kod kullanmak istemiyorsanız, Excel’in PivotTable özelliği, verileri tarihe göre filtrelemek ve maksimum veya minimum gibi özet değerleri görüntülemek için etkileşimli, formülsüz bir yöntem sunar. Bu çözüm, verileri keşfetmek, rapor oluşturmak veya grafik arabirim kullanarak kriterleri kolayca ayarlamak isteyen kullanıcılar için uygundur.
1. Tablonuzu seçin (hem tarihler hem de değerler dahil), ardından Ekle sekmesine gidin ve PivotTable'a tıklayın.
2. PivotTable Oluştur iletişim kutusunda, PivotTable'ın nereye yerleştirileceğini seçin ve Tamam'a tıklayın.
3. PivotTable Alanları bölmesinde, Tarih alanını Satırlar alanına ve (maks/min bulmak istediğiniz) Değerler alanını Değerler alanına sürükleyin. Varsayılan olarak Toplam gösterir; Değerler alanında alanı tıklayın, Alan Ayarlarını Değerler'i seçin ve gerekli şekilde Maksimum veya Minimum olarak değiştirin.
4. Belirli bir tarih aralığına göre filtrelemek için, Tarih alanının satır etiketlerindeki açılır menüyü tıklayın, Tarih Filtreleri > Arasında… seçin, ardından başlangıç ve bitiş tarihlerinizi belirtin (örneğin, 2016/7/1 - 2016/12/1) ve Tamam'a tıklayın.
PivotTable, artık belirlediğiniz aralıktaki her bir tarih için maksimum veya minimum değeri gösterecektir. Bu aralıktaki tek en yüksek veya en düşük değeri gerekiyorsa, özetlenmiş sonucu daha fazla filtreleyebilir veya görsel olarak tarayabilirsiniz.
Notlar:
- Tarih sütunundaki tüm hücrelerin gerçek tarihler olduğundan (metin değil) emin olun. Karışık formatlar, filtrelerin satırları kaçırmalarına neden olabilir.
- Kaynak veriler değişirse, PivotTable'ı sağ tıklayın ve sonuçları güncellemek için Yenile'yi seçin.
- Düzenlemenize bağlı olarak, Excel tarihleri ay/çeyrek/yıl bazında gruplayabilir. Gerekiyorsa, PivotTable'da bir tarihe sağ tıklayın ve Grubunu Çöz'ü (veya Grupla… istenen düzeyi ayarlamak için) seçin.
- Çok büyük veri setleri için, PivotTable'ı yeni bir çalışma sayfasına yerleştirmek okunabilirliği ve performansı artırabilir.
İpuçları:
- Tarih alanı için Bir Kesici ekleyin (PivotTable Analiz > Kesici Ekle) ve aralıkları etkileşimli olarak değiştirmek için kullanın.
- Filtrelenmiş tüm aralıktaki tek bir maks/min mi gerekiyor? Filtrelemeden sonra Değerler sütununu sıralayın veya ikinci bir Değerler alanı ekleyin ve Maksimum/Minimum olarak değiştirin.
- Sonuçlarınızı filtrelendiğinde güncellenen görsel bir özet oluşturmak için PivotChart ile birleştirin.
Bu yöntem manuel formül girişi gerektirmez ve dinamik etkileşim sağlar—sunumlar veya çoklu kullanıcı senaryoları için harika. Yüksek oranda özelleştirilmiş çıktılar veya birçok sayfa boyunca toplu otomasyon için formül veya VBA yaklaşımlarını göz önünde bulundurun.
İlgili makaleler:
- Excel'de bir metin dizisinde ilk/son sayının konumunu nasıl bulabilirim?
- Excel'de her ayın ilk veya son Cuma gününü nasıl bulabilirim?
- Excel'de VLOOKUP ile ilk, 2., veya n. eşleşme değerini nasıl bulabilirim?
- Excel'de bir aralıktaki en yüksek frekansa sahip değeri nasıl bulabilirim?
En İyi Ofis Verimlilik Araçları
Kutools for Excel ile Excel becerilerinizi güçlendirin ve benzersiz bir verimlilik deneyimi yaşayın. Kutools for Excel, üretkenliği artırmak ve zamandan tasarruf etmek için300'den fazla Gelişmiş Özellik sunuyor. İhtiyacınız olan özelliği almak için buraya tıklayın...
Office Tab, Ofis uygulamalarına sekmeli arayüz kazandırır ve işinizi çok daha kolaylaştırır.
- Word, Excel, PowerPoint'te sekmeli düzenleme ve okuma işlevini etkinleştirin.
- Yeni pencereler yerine aynı pencerede yeni sekmelerde birden fazla belge açıp oluşturun.
- Verimliliğinizi %50 artırır ve her gün yüzlerce mouse tıklaması azaltır!
Tüm Kutools eklentileri. Tek kurulum
Kutools for Office paketi, Excel, Word, Outlook & PowerPoint için eklentileri ve Office Tab Pro'yu bir araya getirir; Office uygulamalarında çalışan ekipler için ideal bir çözümdür.





- Hepsi bir arada paket — Excel, Word, Outlook & PowerPoint eklentileri + Office Tab Pro
- Tek kurulum, tek lisans — dakikalar içinde kurulun (MSI hazır)
- Birlikte daha verimli — Ofis uygulamalarında hızlı üretkenlik
- 30 günlük tam özellikli deneme — kayıt yok, kredi kartı yok
- En iyi değer — tek tek eklenti almak yerine tasarruf edin