Skip to main content

Kutools voor Office — Eén Suite. Vijf Tools. Verwezenlijkt Meer.

Hoe de mediaan te berekenen bij meerdere voorwaarden in Excel?

Author Sun Last modified

Het berekenen van de mediaan van een dataset in Excel is een vaak voorkomende bewerking in data-analyse en rapportage. Hoewel het vinden van de mediaan voor een eenvoudig bereik snel kan worden uitgevoerd met standaard Excel-functies, komen situaties vaak voor waarin u alleen de mediaanwaarde nodig hebt van gegevens die aan meerdere specifieke criteria voldoen – bijvoorbeeld het vinden van de mediane verkoopbedrag voor een bepaald product op een bepaalde datum in een grote dataset. Het afhandelen van dergelijke complexe, voorwaardelijke bewerkingen met alleen traditionele functies kan uitdagend zijn. In deze tutorial introduceren we verschillende praktische oplossingen om de mediaan te berekenen met meerdere voorwaarden in Excel, waarbij we zowel op formules gebaseerde benaderingen als automatisering met VBA voor geavanceerde behoeften verkennen.


Bereken de mediaan indien aan meerdere voorwaarden wordt voldaan

Stel dat u een gegevensbereik heeft zoals hieronder weergegeven, en uw taak is om de mediane waarde te bepalen die aan twee criteria voldoet: bijvoorbeeld het bepalen van de mediane waarde van kolom B waar kolom A de waarde "a" heeft en kolom C de datum "2-jan" bevat. Dit scenario komt vooral vaak voor in verkooprapporten, klasresultaten en andere zakelijke of academische data-analyse waar filteren op meerdere categorieën noodzakelijk is.

a screenshot of the original data

Voor de duidelijkheid, laten we het werkblad als volgt voorbereiden: Voer in uw Excel-werkblad uw voorwaarden in en maak een indeling die lijkt op de onderstaande afbeelding. Hier bevat kolom E de criteria voor kolom A, en rij 1 van kolommen F en verder vertegenwoordigen de datumcriteria van kolom C.

a screenshot of typing new required data

Om de mediaan te berekenen die aan meerdere criteria voldoet, kunt u een matrixformule gebruiken die gebruikmaakt van de MEDIAAN en ALS functies om een gefilterde lijst met waarden op basis van uw criteria samen te stellen. Zo gaat u te werk:

1. Klik op cel F2, waar u het medianeresultaat wilt laten verschijnen, en voer de volgende formule in:

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

Deze formule werkt door voor elke rij te controleren of de waarde in kolom A overeenkomt met de voorwaarde in E2 en of de waarde in kolom C overeenkomt met de kop in F1. Als beide voorwaarden zijn voldaan, verzamelt het de waarde in kolom B voor de berekening van de mediaan.

2. Nadat u de formule hebt ingevoerd, drukt u op Ctrl + Shift + Enter (niet alleen op Enter), omdat dit een matrixformule is. Excel zal de formule automatisch omringen met accolades { } om aan te geven dat het een matrixformule is.

3. Sleep de vulhendel vanaf de rechterbenedenhoek van F2 om de formule te kopiëren naar andere relevante cellen waar u medianen onder verschillende voorwaarden nodig hebt, zoals hieronder weergegeven:

a screenshot of using the formula

Uitleg parameters en gebruikstips: In de formule is $A$2:$A$12 het bereik dat de eerste voorwaarde bevat (zoals productnamen), $C$2:$C$12 is het bereik voor de tweede voorwaarde (zoals datums) en $B$2:$B$12 is het bereik dat de numerieke waarden bevat waarvan u de mediaan wilt berekenen. Pas deze bereiken aan wanneer nodig voor uw eigen werkblad. Gebruik altijd absolute verwijzingen ($-symbolen) om ervoor te zorgen dat bereiken niet verschuiven wanneer u de formule kopieert.

Waarschuwingen: Als geen enkele waarde aan beide voorwaarden voldoet, zal de formule een #GETAL!-fout retourneren. Om verwarring te voorkomen, kunt u de formule nesten in ALS.FOUT om een blanco of een aangepast bericht terug te geven.

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

Zorg ervoor dat uw gegevens geen lege cellen of niet-numerieke waarden in de mediaankolom bevatten, omdat dit ook de resultaten kan beïnvloeden.

Deze op formules gebaseerde benadering is geschikt wanneer u relatief eenvoudige voorwaarden hebt (meestal maximaal twee of drie criteria). Het is snel in te stellen en vereist geen programmeervaardigheden. Echter, voor complex filteren met dynamische voorwaarden of grotere datasets kan het onderhouden of bewerken van matrixformules omslachtig worden.


VBA-code - Bereken de mediaan met meerdere voorwaarden

Voor scenario's waarin u de voorwaardelijke medianaanberekening moet automatiseren – bijvoorbeeld wanneer er veel voorwaarden, grote datasets of frequent veranderende criteria zijn – kan een VBA-oplossing een praktisch alternatief bieden. Met VBA kunt u een herbruikbare macro bouwen die de mediaan berekent op basis van elk aantal voorwaarden. Op VBA gebaseerde oplossingen zijn vooral nuttig als u repetitieve analyses wilt stroomlijnen of aangepaste Excel-processen wilt ontwikkelen voor rapportage en dashboards.

Volg deze stappen om VBA te gebruiken voor het berekenen van de voorwaardelijke mediaan:

1. Klik op Ontwikkelaarstools > Visual Basic. Er zal een nieuw Microsoft Visual Basic for Applications-venster openen. Klik op Invoegen > Module, en plak vervolgens de volgende code in de module:

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. Klik op de Run button knop (of druk op F5) om de code uit te voeren. U krijgt een prompt om elk van de benodigde bereiken te selecteren en uw criteria in te voeren. Nadat u de prompts hebt voltooid, zal het resultaat (de mediaan die aan alle criteria voldoet) in de doelcel die u heeft gespecificeerd worden weergegeven.

Met deze macro kunt u flexibel het waardebereik, criteriabereiken, criteriawaarden en waar u het resultaat wilt outputten elke keer dat deze wordt uitgevoerd selecteren. U kunt de code ook gemakkelijk aanpassen om meer voorwaarden op te nemen indien nodig.

Tips en probleemoplossing: Wanneer u VBA-oplossingen gebruikt, zorg dan dat alle geselecteerde bereiken gelijke lengtes hebben en dat criteria overeenkomen met het juiste gegevenstype en formaat (bijv. tekst versus datums). Als geen enkele waarde aan de criteria voldoet, zal de output "Geen overeenkomst" weergeven. Voor de beste stabiliteit moet u uw werkmap opslaan voordat u de macro uitvoert en altijd macro's inschakelen wanneer daarom wordt gevraagd. Deze VBA-oplossing is geschikt voor gebruikers die bekend zijn met macrobeveiligingsinstellingen en voor gebruik in geautomatiseerde Excel-werkstromen.

Samenvattend automatiseert de VBA-benadering complexe medianaanberekeningen die omslachtig of moeilijk zijn om alleen met formules uit te voeren. Het is vooral geschikt wanneer u te maken heeft met variabele voorwaarden, frequente herberekeningen en grote datasets.


Gerelateerde artikelen:


Beste productiviteitstools voor Office

🤖 Kutools AI Assistent: Transformeer data-analyse door: Intelligente uitvoering |Code genereren |Aangepaste formules maken |Gegevens analyseren en grafieken genereren |Kutools functies aanroepen
Populaire functies: Dubbele waarden markeren | Verwijder lege rijen | Kolommen of cellen samenvoegen zonder gegevensverlies |   Afronden zonder formule...
Super ZOEKEN: Meervoudig-criteria opzoeken | Meervoudige waarde opzoeken | Meervoudig-blad opzoeken | Fuzzy Match....
Geavanceerde keuzelijst: Keuzelijst snel maken | Afhankelijke keuzelijst | Meervoudige selectie in keuzelijst....
Kolombeheer: Specifiek aantal kolommen toevoegen | Kolommen verplaatsen | Zichtbaarheidsstatus van verborgen kolommen wisselen | Bereik & kolommen vergelijken...
Uitgelichte functies: Rasterfocus | Ontwerpweergave | Verbeterde formulebalk | Werkboek- & Werkbladbeheer | AutoTekstbibliotheek | Datumkiezer | Gegevens samenvoegen | Cellen coderen/decoderen | E-mail verzenden via lijst | Superfilter | Speciaal filter (filter cellen met vetgedrukt/cursief/doorhalen...)...
Top15 gereedschapssets:12 teksttools (Tekst toevoegen, Specifieke tekens verwijderen, ...) | 50+ grafiek typen (Gantt-diagram, ...) | 40+ praktische formules (Leeftijd berekenen op basis van geboortedatum, ...) | 19 invoegtools (QR-code invoegen, Afbeelding invoegen vanaf pad, ...) | 12 conversietools (Omzetten naar woorden, Valutaconversie, ...) | 7 Samenvoeg- & splitsgereedschappen (Geavanceerd samenvoegen van rijen, Cellen splitsen, ...) | ... en meer
Gebruik Kutools in je voorkeurstaal – ondersteunt Engels, Spaans, Duits, Frans, Chinees en meer dan40 andere talen!

Verbeter je Excel-vaardigheden met Kutools voor Excel en ervaar ongeëvenaarde efficiëntie. Kutools voor Excel biedt meer dan300 geavanceerde functies om je productiviteit te verhogen en tijd te besparen. Klik hier om de functie te kiezen die je het meest nodig hebt...


Office Tab brengt een tabbladinterface naar Office en maakt je werk veel eenvoudiger

  • Activeer tabbladbewerking en -lezen in Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster, in plaats van in nieuwe vensters.
  • Verhoog je productiviteit met50% en bespaar dagelijks honderden muisklikken!

Alle Kutools-invoegtoepassingen. Eén installatieprogramma

Kutools for Office-suite bundelt invoegtoepassingen voor Excel, Word, Outlook & PowerPoint plus Office Tab Pro, ideaal voor teams die werken met Office-toepassingen.

Excel Word Outlook Tabs PowerPoint
  • Alles-in-één suite — invoegtoepassingen voor Excel, Word, Outlook & PowerPoint + Office Tab Pro
  • Eén installatieprogramma, één licentie — in enkele minuten geïnstalleerd (MSI-ready)
  • Werkt beter samen — gestroomlijnde productiviteit over meerdere Office-toepassingen
  • 30 dagen volledige proef — geen registratie, geen creditcard nodig
  • Beste prijs — bespaar ten opzichte van losse aanschaf van invoegtoepassingen