Excel MAX IF formule om grootste waarde te vinden met voorwaarden

  • Deel Dit
Michael Brown

Het artikel toont een paar verschillende manieren om de maximumwaarde in Excel te verkrijgen op basis van een of meer voorwaarden die u opgeeft.

In onze vorige handleiding hebben we gekeken naar de gebruikelijke toepassingen van de functie MAX, die bedoeld is om het grootste getal in een dataset terug te geven. In sommige situaties moet u echter verder in uw gegevens duiken om de maximumwaarde te vinden op basis van bepaalde criteria. Dit kan worden gedaan met behulp van een paar verschillende formules, en in dit artikel worden alle mogelijke manieren uitgelegd.

    Excel MAX IF-formule

    Tot voor kort had Microsoft Excel geen ingebouwde MAX IF-functie om de maximale waarde te krijgen op basis van voorwaarden. Met de introductie van MAXIFS in Excel 2019 kunnen we op een eenvoudige manier voorwaardelijke max doen.

    In Excel 2016 en eerdere versies moet u nog steeds uw eigen matrixformule door de MAX-functie te combineren met een IF-instructie:

    {=MAX(IF( criteria_bereik = criteria , max_bereik ))}

    Om te zien hoe deze algemene MAX IF-formule werkt op echte gegevens, kunt u het volgende voorbeeld bekijken. Stel, u hebt een tabel met de verspringresultaten van verschillende studenten. De tabel bevat de gegevens voor drie rondes, en u bent op zoek naar het beste resultaat van een bepaalde atleet, zeg Jacob. Met de studentennamen in A2:A10 en de afstanden in C2:C10 krijgt de formule deze vorm:

    =MAX(IF(A2:A10="Jacob", C2:C10))

    Houd er rekening mee dat een matrixformule altijd moet worden ingevoerd door de toetsen Ctrl + Shift + Enter tegelijk in te drukken. Daardoor wordt hij automatisch omgeven door accolades zoals in de schermafbeelding hieronder (handmatig accolades typen werkt niet!).

    In echte werkbladen is het handiger om het criterium in een cel in te voeren, zodat u de voorwaarde gemakkelijk kunt veranderen zonder de formule te wijzigen. We typen dus de gewenste naam in F1 en krijgen het volgende resultaat:

    =MAX(IF(A2:A10=F1, C2:C10))

    Hoe deze formule werkt

    In de logische test van de IF-functie vergelijken we de lijst met namen (A2:A10) met de doelnaam (F1). Het resultaat van deze bewerking is een matrix van TRUE en FALSE, waarbij de TRUE-waarden staan voor namen die overeenkomen met de doelnaam (Jacob):

    {FALSE;FALSE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE}

    Voor de value_ if_true geven we de resultaten van de verspringing (C2:C10), dus als de logische test op TRUE uitkomt, wordt het overeenkomstige getal uit kolom C teruggegeven. value_ if_false argument is weggelaten, wat betekent dat er gewoon een FALSE-waarde zal zijn als niet aan de voorwaarde is voldaan:

    {FALSE;FALSE;FALSE;5.48;5.42;5.57;FALSE;FALSE;FALSE}

    Deze matrix wordt toegevoerd aan de MAX-functie, die het maximum aantal teruggeeft zonder rekening te houden met de FALSE-waarden.

    Tip. Om de hierboven besproken interne matrices te zien, selecteert u het overeenkomstige deel van de formule in uw werkblad en drukt u op de toets F9. Om de evaluatiemodus van de formule te verlaten, drukt u op de Esc-toets.

    MAX IF-formule met meerdere criteria

    Wanneer u de maximumwaarde moet vinden op basis van meer dan één voorwaarde, kunt u ofwel:

    Gebruik geneste IF statements om aanvullende criteria op te nemen:

    {=MAX(IF( criteria_bereik1 = criteria1 , IF( criteria_bereik2 = criteria2 , max_bereik )))}

    Of behandel meerdere criteria door de vermenigvuldigingsoperatie te gebruiken:

    {=MAX(IF(( criteria_bereik1 = criteria1 ) * ( criteria_bereik2 = criteria2 ), max_bereik ))}

    Stel u hebt de resultaten van jongens en meisjes in één tabel en u wilt de langste sprong bij de meisjes vinden in ronde 3. Om dat te doen, voeren we het eerste criterium (vrouw) in G1 in, het tweede criterium (3) in G2, en gebruiken we de volgende formules om de maximumwaarde uit te rekenen:

    =MAX(IF(B2:B16=G1, IF(C2:C16=G2, D2:D16))

    =MAX(IF((B2:B16=G1)*(C2:C16=G2), D2:D16))

    Omdat het allebei matrixformules zijn, moet u Ctrl + Shift + Enter indrukken om ze correct in te vullen.

    Zoals in de onderstaande schermafbeelding te zien is, leveren de formules hetzelfde resultaat op, dus welke u gebruikt is een kwestie van persoonlijke voorkeur. Voor mij is de formule met de Booleaanse logica gemakkelijker te lezen en op te bouwen - u kunt er zoveel voorwaarden aan toevoegen als u wilt zonder extra IF-functies te hoeven nesten.

    Hoe deze formules werken

    De eerste formule gebruikt twee geneste IF-functies om twee criteria te evalueren. In de logische test van de eerste IF-instructie vergelijken we de waarden in de kolom Geslacht (B2:B16) met het criterium in G1 ("Vrouw"). Het resultaat is een matrix van waarden TRUE en FALSE, waarbij TRUE staat voor gegevens die aan het criterium voldoen:

    {FALSE; FALSE; FALSE; TRUE; TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; TRUE}

    Op soortgelijke wijze controleert de tweede IF-functie de waarden in de kolom Rond (C2:C16) aan de hand van het criterium in G2.

    Voor de waarde_indien_waar argument in de tweede IF-instructie leveren we de resultaten van de verspringing (D2:D16), en zo krijgen we de items die TRUE hebben in de eerste twee matrices op overeenkomstige posities (d.w.z. de items waarvan het geslacht "vrouwelijk" is en de ronde 3):

    {FOUT; FOUT; FOUT; FOUT; FOUT; 4.63; FOUT; FOUT; FOUT; FOUT; FOUT; FOUT; 4.52}

    Deze laatste matrix gaat naar de MAX-functie en die geeft het grootste getal.

    De tweede formule evalueert dezelfde voorwaarden binnen een enkele logische test en de vermenigvuldigingsoperatie werkt als de AND-operator:

    Wanneer de waarden TRUE en FALSE worden gebruikt in een rekenkundige bewerking, worden ze omgezet in respectievelijk 1's en 0's. En omdat vermenigvuldigen met 0 altijd nul oplevert, heeft de resulterende matrix alleen 1 als alle voorwaarden TRUE zijn. Deze matrix wordt geëvalueerd in de logische test van de IF-functie, die de afstanden teruggeeft die overeenkomen met de 1 (TRUE) elementen.

    MAX IF zonder array

    Veel Excel-gebruikers, waaronder ikzelf, zijn bevooroordeeld tegen matrixformules en proberen ze waar mogelijk weg te werken. Gelukkig heeft Microsoft Excel een paar functies die arrays van nature verwerken, en we kunnen een van die functies, namelijk SUMPRODUCT, gebruiken als een soort "wrapper" rond MAX.

    De algemene MAX IF-formule zonder matrix is als volgt:

    =SUMPRODUCT(MAX( criteria_bereik1 = criteria1 ) * ( criteria_bereik2 = criteria2 ) * max_bereik ))

    Uiteraard kunt u meer bereik/criteria paren toevoegen indien nodig.

    Om de formule in actie te zien, gebruiken we de gegevens uit het vorige voorbeeld. Het doel is om de maximale sprong van een vrouwelijke atleet in ronde 3 te verkrijgen:

    =SUMPRODUCT(MAX((B2:B16=G1) * (C2:C16=G2) * (D2:D16))))

    Deze formule concurreert met een normale Enter-toets en geeft hetzelfde resultaat als de array MAX IF-formule:

    Als u de bovenstaande schermafbeelding nader bekijkt, ziet u dat de ongeldige sprongen die in de vorige voorbeelden met "x" waren gemarkeerd, nu 0 waarden hebben in de rijen 3, 11 en 15, en in de volgende paragraaf wordt uitgelegd waarom.

    Hoe deze formule werkt

    Net als bij de MAX IF-formule evalueren we twee criteria door elke waarde in de kolommen Geslacht (B2:B16) en Rond (C2:C16) te vergelijken met de criteria in de cellen G1 en G2. Het resultaat zijn twee matrices met waarden TRUE en FALSE. Door de elementen van de matrices op dezelfde posities te vermenigvuldigen worden TRUE en FALSE omgezet in respectievelijk 1 en 0, waarbij 1 staat voor de items die aan beide criteria voldoen. De derde vermenigvuldigingarray bevat de verspringresultaten (D2:D16). En omdat vermenigvuldigen met 0 nul oplevert, overleven alleen de items die 1 (TRUE) hebben in de corresponderende posities:

    {0; 0; 0; 0; 0; 4.63; 0; 0; 0; 0; 0; 0; 0; 0; 4.52}

    Voor het geval max_bereik een tekstwaarde bevat, geeft de vermenigvuldiging de foutmelding #VALUE, waardoor de hele formule niet werkt.

    De functie MAX neemt het hier over en geeft het grootste getal dat aan de opgegeven voorwaarden voldoet. De resulterende matrix bestaande uit één element {4,63} gaat naar de functie SUMPRODUCT en deze geeft het maximum getal in een cel.

    Opmerking. Vanwege de specifieke logica werkt de formule met het volgende voorbehoud:

    • Het bereik waarin u naar de hoogste waarde zoekt, mag alleen getallen bevatten. Als er tekstwaarden zijn, wordt een #VALUE! fout teruggestuurd.
    • De formule kan de voorwaarde "niet gelijk aan nul" niet evalueren in een negatieve gegevensreeks. Om de maximumwaarde te vinden zonder rekening te houden met nullen, gebruikt u een MAX IF-formule of een MAXIFS-functie.

    Excel MAX IF-formule met OR-logica

    Om de maximumwaarde te vinden wanneer elke van de opgegeven voorwaarden is voldaan, gebruikt u de reeds bekende array MAX IF-formule met de Booleaanse logica, maar telt u de voorwaarden op in plaats van ze te vermenigvuldigen.

    {=MAX(IF(( criteria_bereik1 = criteria1 ) + ( criteria_bereik2 = criteria2 ), max_bereik ))}

    U kunt ook de volgende niet-array formule gebruiken:

    =SUMPRODUCT(MAX(( criteria_bereik1 = criteria1 ) + ( criteria_bereik2 = criteria2 )) * max_bereik ))

    Laten we als voorbeeld het beste resultaat uitwerken in ronde 2 en 3. Let op: in de Excel-taal is de opgave anders geformuleerd: geef de maximumwaarde als ronde 2 of 3 is.

    Met de rondes in B2:B10, de resultaten in C2:C10 en de criteria in F1 en H1 gaat de formule als volgt:

    =MAX(IF((B2:B10=F1) + (B2:B10=H1), C2:C10))

    Voer de formule in door de toetsencombinatie Ctrl + Shift + Enter in te drukken en u krijgt dit resultaat:

    De maximumwaarde met dezelfde voorwaarden kan ook worden gevonden met deze niet-array formule:

    =SUMPRODUCT(MAX((B2:B10=F1) + (B2:B10=H1)) * C2:C10))

    We moeten in dit geval echter alle "x"-waarden in kolom C vervangen door nullen, omdat SUMPRODUCT MAX alleen werkt met numerieke gegevens:

    Hoe deze formules werken

    De matrixformule werkt precies hetzelfde als MAX IF met AND-logica, behalve dat u de criteria samenvoegt door de optelbewerking te gebruiken in plaats van vermenigvuldiging. In matrixformules werkt optellen als de OR-operator:

    Het optellen van twee matrices van TRUE en FALSE (die het resultaat zijn van het controleren van de waarden in B2:B10 aan de hand van de criteria in F1 en H1) levert een matrix van 1's en 0's op waarbij 1 staat voor de items waarvoor een van beide voorwaarden TRUE is en 0 voor de items waarvoor beide voorwaarden FALSE zijn. Het resultaat is dat de IF-functie alle items in C2:C10 "bewaart" ( waarde_indien_waar ) waarvoor een voorwaarde WAAR is (1); de overige items worden vervangen door FALSE omdat de waarde_als_valse argument is niet gespecificeerd.

    De niet-array formule werkt op een vergelijkbare manier. Het verschil is dat u, in plaats van de logische test van IF, de elementen van de 1's en 0's array vermenigvuldigt met de elementen van de long jump results array (C2:C10) op de corresponderende posities. Hierdoor worden de items die aan geen enkele voorwaarde voldoen (0 hebben in de eerste array) tenietgedaan en de items die aan een van de voorwaarden voldoen (1 hebben in de eerstearray).

    MAXIFS - eenvoudige manier om de hoogste waarde te vinden met voorwaarden

    De gebruikers van Excel 2019, 2021 en Excel 365 zijn verlost van de moeite om arrays te temmen om hun eigen MAX IF formule te bouwen. Deze versies van Excel bieden de langverwachte MAXIFS functie die het vinden van de grootste waarde met voorwaarden kinderspel maakt.

    In het eerste argument van MAXIFS voert u het bereik in waarin de maximumwaarde moet worden gevonden (D2:D16 in ons geval), en in de volgende argumenten kunt u maximaal 126 bereik/criteria-paren invoeren. Bijvoorbeeld:

    =MAXIFS(D2:D16, B2:B16, G1, C2:C16, G2)

    Zoals in de onderstaande schermafbeelding te zien is, heeft deze eenvoudige formule geen probleem met het verwerken van het bereik dat zowel numerieke als tekstwaarden bevat:

    Voor gedetailleerde informatie over deze functie, zie Excel MAXIFS functie met formulevoorbeelden.

    Dat is hoe je met voorwaarden in Excel de maximumwaarde kunt vinden. Ik dank u voor het lezen en hoop u volgende week op onze blog te zien!

    Praktijk werkboek om te downloaden

    Excel MAX IF-formule voorbeelden (.xlsx bestand)

    Michael Brown is een toegewijde technologieliefhebber met een passie voor het vereenvoudigen van complexe processen met behulp van softwaretools. Met meer dan tien jaar ervaring in de technische industrie heeft hij zijn vaardigheden in Microsoft Excel en Outlook, evenals Google Spreadsheets en Documenten aangescherpt. Michael's blog is gewijd aan het delen van zijn kennis en expertise met anderen, met eenvoudig te volgen tips en tutorials voor het verbeteren van de productiviteit en efficiëntie. Of je nu een doorgewinterde professional of een beginner bent, Michaels blog biedt waardevolle inzichten en praktisch advies om het meeste uit deze essentiële softwaretools te halen.