Skip to main content

Excel'de birden fazla koşul varsa medyan nasıl hesaplanır?

Author: Sun Last Modified: 2025-08-07

Excel'de bir veri setinin medyanını hesaplamak, veri analizi ve raporlamada sıkça ihtiyaç duyulan bir işlemdir. Basit bir aralık için medyanı bulmak, standart Excel fonksiyonları kullanılarak hızlı bir şekilde gerçekleştirilebilir. Ancak sıklıkla yalnızca belirli çoklu kriterleri karşılayan verilerden medyan değeri elde etmek gibi durumlar ortaya çıkar — örneğin, büyük bir veri setinde belirli bir ürünün belirli bir tarihteki medyan satış miktarını bulmak gibi. Bu tür karmaşık, koşullu işlemlerle başa çıkmak, yalnızca geleneksel fonksiyonlarla zor olabilir. Bu öğreticide, Excel'de çoklu koşullarla medyan hesaplamak için çeşitli pratik çözümler sunacağız; hem formül tabanlı yaklaşımları inceleyeceğiz hem de ileri düzey ihtiyaçlar için VBA kullanarak otomasyon sağlayacağız.


Birden fazla koşulu karşılıyorsa medyanı hesapla

Aşağıda gösterilen bir veri aralığınız olduğunu varsayalım ve göreviniz iki kriteri karşılayan medyan değerini belirlemek olsun: Örneğin, A sütununda "a" değeri olduğu ve C sütununda "2-Oca" tarihi olduğu durumlarda B sütununun medyan değerini belirlemek. Bu senaryo özellikle satış raporlarında, sınıf test sonuçlarında ve birden fazla kategoriye göre filtreleme gerektiren diğer iş veya akademik veri analizlerinde yaygındır.

a screenshot of the original data

Açıklık açısından, çalışma sayfanızı şu şekilde hazırlayalım: Excel sayfanızda, aşağıdaki görüntüye benzer bir düzen oluşturmak için koşullarınızı girin. Burada, E sütunu A sütunu için kriterleri listeler ve F sütunu ve sonrasındaki 1. satır, C sütunundaki tarih kriterlerini temsil eder.

a screenshot of typing new required data

Çoklu kriterleri karşılayan medyanı hesaplamak için, koşullarınıza göre filtrelenmiş bir değer listesi oluşturmak için MEDYAN ve EĞER fonksiyonlarını kullanan bir dizi formülü kullanabilirsiniz. İşte bunu nasıl yapacağınız:

1. Medyan sonucunun görünmesini istediğiniz F2 hücresine tıklayın ve aşağıdaki formülü girin:

=MEDIAN(IF($A$2:$A$12=$E2,IF($C$2:$C$12=F$1,$B$2:$B$12)))

Bu formül, her satır için A sütunundaki değerin E2'deki koşulla eşleşip eşleşmediğini ve C sütunundaki değerin F1'deki başlıkla eşleşip eşleşmediğini kontrol ederek çalışır. Her iki koşul da karşılanıyorsa, medyan hesaplaması için B sütunundaki değeri toplar.

2. Formülü girdikten sonra, bu bir dizi formülü olduğu için Enter yerine Ctrl + Shift + Enter tuşlarına basın. Excel, formülü otomatik olarak kıvırcık parantezler { } ile çevreleyecektir.

3. Farklı koşullar altında medyanlara ihtiyacınız olan diğer hücrelere formülü kopyalamak için F2'nin sağ alt köşesinden dolgu tutamacını sürükleyin, aşağıda gösterildiği gibi:

a screenshot of using the formula

Parametre açıklamaları ve kullanım ipuçları: Formülde, $A$2:$A$12 ilk koşulu içeren aralıktır (örneğin, ürün adları), $C$2:$C$12 ikinci koşul için aralıktır (örneğin, tarihler) ve $B$2:$B$12 medyanını istediğiniz sayısal değerleri içeren aralıktır. Bu aralıkları kendi çalışma sayfanız için gerektiği gibi ayarlayın. Formülü kopyalarken aralıkların kaymamasını sağlamak için mutlak referansları ($ sembolleri) her zaman kullanın.

Tedbirler: Eğer hiçbir değer her iki koşulu da karşılamıyorsa, formül #SAYI! hatası verecektir. Kafa karışıklığını önlemek için, formülü IFERROR içine yerleştirerek boş veya özel bir mesaj döndürebilirsiniz:

=IFERROR(MEDIAN(IF($A$2:$A$12=$E2,IF($C$2:$C$12=F$1,$B$2:$B$12))),"No match")

Medyan sütununda boş hücreler veya sayısal olmayan değerler olmadığından emin olun, çünkü bu da sonuçları etkileyebilir.

Bu formül tabanlı yaklaşım, nispeten basit koşullarınız olduğunda (genellikle iki veya üç kritere kadar) uygundur. Kurulumu hızlıdır ve programlama becerisi gerektirmez. Ancak dinamik koşullar veya daha büyük veri setleriyle karmaşık filtreleme için, dizi formüllerini sürdürmek veya düzenlemek zahmetli hale gelebilir.


VBA Kodu - Çoklu koşullarla medyan hesaplama

Koşullu medyan hesaplamayı otomatikleştirmeniz gereken senaryolarda — örneğin, çok fazla koşul olduğunda, büyük veri setleri veya kriterlerin kendisinin sık sık değiştiği durumlarda — VBA çözümü pratik bir alternatif sunabilir. VBA kullanarak, herhangi bir sayıda koşula dayalı medyanı hesaplayan yeniden kullanılabilir bir makro oluşturabilirsiniz. VBA tabanlı çözümler, özellikle tekrarlayan analizi kolaylaştırmak veya raporlama ve panolar için özel Excel süreçlerini geliştirmek istiyorsanız yararlıdır.

Koşullu medyan hesaplaması için VBA'yi kullanmak üzere şu adımları izleyin:

1. Geliştirici Araçları > Visual Basic'e tıklayın. Yeni bir Microsoft Visual Basic for Applications penceresi açılacaktır. Ekle > Modül'e tıklayın ve ardından aşağıdaki kodu Modüle yapıştırın:

Sub ConditionalMedian()
    Dim DataRange As Range
    Dim CriteriaRange1 As Range
    Dim CriteriaRange2 As Range
    Dim OutputRange As Range
    Dim Criteria1 As Variant
    Dim Criteria2 As Variant
    Dim TempArr() As Double
    Dim i As Long
    Dim j As Long
    Dim count As Long
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set DataRange = Application.InputBox("Select the range containing median values (e.g., B2:B12):", xTitleId, "", Type:=8)
    Set CriteriaRange1 = Application.InputBox("Select the first criteria range (e.g., A2:A12):", xTitleId, "", Type:=8)
    Criteria1 = Application.InputBox("Enter the first criteria value (e.g., a):", xTitleId, "", Type:=2)
    Set CriteriaRange2 = Application.InputBox("Select the second criteria range (e.g., C2:C12):", xTitleId, "", Type:=8)
    Criteria2 = Application.InputBox("Enter the second criteria value (e.g.,2-Jan):", xTitleId, "", Type:=2)
    Set OutputRange = Application.InputBox("Select the cell to output the result:", xTitleId, "", Type:=8)
    
    count = 0
    For i = 1 To DataRange.Rows.count
        If StrComp(CStr(CriteriaRange1.Cells(i, 1).Value), CStr(Criteria1), vbTextCompare) = 0 And _
           CStr(CriteriaRange2.Cells(i, 1).Value) = CStr(Criteria2) Then
            ReDim Preserve TempArr(count)
            TempArr(count) = DataRange.Cells(i, 1).Value
            count = count + 1
        End If
    Next i
    
    If count = 0 Then
        OutputRange.Value = "No match"
    Else
        Call QuickSort(TempArr, LBound(TempArr), UBound(TempArr))
        If count Mod 2 = 1 Then
            OutputRange.Value = TempArr(count \ 2)
        Else
            OutputRange.Value = (TempArr(count \ 2) + TempArr(count \ 2 - 1)) / 2
        End If
    End If
End Sub

Sub QuickSort(arr() As Double, first As Long, last As Long)
    Dim i As Long
    Dim j As Long
    Dim pivot As Double
    Dim temp As Double
    
    i = first
    j = last
    pivot = arr((first + last) \ 2)
    
    Do While i <= j
        Do While arr(i) < pivot
            i = i + 1
        Loop
        
        Do While arr(j) > pivot
            j = j - 1
        Loop
        
        If i <= j Then
            temp = arr(i)
            arr(i) = arr(j)
            arr(j) = temp
            i = i + 1
            j = j - 1
        End If
    Loop
    
    If first < j Then
        QuickSort arr, first, j
    End If
    
    If i < last Then
        QuickSort arr, i, last
    End If
End Sub

2. Tıklayın Run button düğmesine basın (veya F5 tuşuna basın) kodu çalıştırmak için. Gerekli aralıkları seçmeniz ve kriterlerinizi girmeniz istenecektir. İstemleri tamamladıktan sonra, sonuç (tüm kriterleri karşılayan medyan) belirttiğiniz hedef hücrede görüntülenecektir.

Bu makro, her çalıştırıldığında esnek bir şekilde değer aralığı, koşul aralıkları, koşul değerleri ve sonucun nereye çıkacağını seçmenizi sağlar. Ayrıca, gerektiğinde daha fazla koşul eklemek için kodu kolayca uyarlayabilirsiniz.

İpuçları ve sorun giderme: VBA çözümleri kullanırken, tüm seçili aralıkların eşit uzunlukta olduğundan ve kriterlerin doğru veri türü ve biçimlendirmeye uyduğundan (örneğin metin vs. tarihler) emin olun. Hiçbir değer koşulları karşılamıyorsa, çıktı "Eşleşme yok" şeklinde olacaktır. En iyi kararlılık için, makroyu çalıştırmadan önce çalışma kitabınızı kaydedin ve her zaman makroları etkinleştirin. Bu VBA çözümü, makro güvenlik ayarlarına aşina olan kullanıcılar ve otomatik Excel iş akışlarında kullanımı için uygundur.

Özetle, VBA yaklaşımı yalnızca formüllerle gerçekleştirmek zor veya zahmetli olan karmaşık medyan hesaplamalarını otomatikleştirir. Özellikle değişken koşullar, sık yeniden hesaplamalar ve büyük veri setleriyle uğraşırken çok uygundur.


İlgili Makaleler:


En İyi Ofis Verimlilik Araçları

🤖 Kutools AI Asistanı: Veriye dayalı analizi devrimsel olarak değiştirin: Akıllı Yürütme |Kod Oluştur |Özel Formüller Oluştur |Verileri Analiz Edin ve Grafikler Oluşturun |Geliştirilmiş İşlevler’i çağırın
Popüler Özellikler: Yinelenenleri Bul, Vurgula veya İşaretle | Boş Satırları Sil | Sütunları veya Hücreleri Verileri Kaybetmeden Birleştir | Formül Olmadan Yuvarla...
Süper ARA: Çoklu Kriter VLookup | Çoklu Değer VLookup | Çoklu sayfa araması | Bulanık Eşleme....
Gelişmiş Açılır Liste: Hızlıca Açılır Liste Oluşturun | 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 Değiştir | Aralıkları & Sütunları Karşılaştır...
Özel Seçilen Özellikler: Izgara Odaklama | Tasarım Görünümü | Gelişmiş formül çubuğu | Çalışma Kitabı & Çalışma Sayfası Yöneticisi | Otomatik Metin Kütüphanesi | Tarih Seçici | Veri Birleştir | Hücreleri Şifrele/Şifre Çöz | Listeye Göre E-posta Gönder | Süper Filtre | Özel Filtre (kalın/italik/üstü çizili filtreleme...)...
En Gözde15 Araç Seti:12 Metin Aracı (Metin Ekle, Belirli Karakterleri Sil, ...) | 50+ Grafik Türü (Gantt Grafiği, ...) | 40+ Pratik Formül (Doğum tarihine dayanarak yaş hesapla, ...) | 19 Ekleme Aracı (QR Kodu Ekle, Yoldan Resim Ekle, ...) | 12 Dönüşüm Aracı (Kelimeye Dönüştür, Para Birimi Dönüştürme, ...) | 7 Birleştir & Böl Araç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 ve40’tan fazla başka dili destekler!

Kutools for Excel ile Excel becerilerinizi güçlendirin, daha önce hiç yaşamadığınız bir verimlilik deneyimini yaşayın. Kutools for Excel, üretkenliğinizi artıracak ve zamanı kaydetmenizi sağlayacak300’den fazla gelişmiş özellik sunar. En çok ihtiyaç duyduğunuz özelliği almak için buraya tıklayın...


Office Tab, Office’e 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.
  • Aynı pencere içerisinde yeni sekmelerde birden fazla belge açın veya oluşturun, yeni pencerelerde açmak yerine.
  • Verimliliğinizi %50 artırın, her gün yüzlerce fare tıklamasını sizin için azaltın!