Excel MAX IF formule om die grootste waarde met voorwaardes te vind

  • Deel Dit
Michael Brown

Die artikel wys 'n paar verskillende maniere om die maksimum waarde in Excel te kry gebaseer op een of meer voorwaardes wat jy spesifiseer.

In ons vorige tutoriaal het ons na die algemene gebruike gekyk van die MAX-funksie wat ontwerp is om die grootste getal in 'n datastel terug te gee. In sommige situasies sal jy dalk verder in jou data moet deurboor om die maksimum waarde op grond van sekere kriteria te vind. Dit kan gedoen word deur 'n paar verskillende formules te gebruik, en hierdie artikel verduidelik alle moontlike maniere.

    Excel MAX IF formule

    Tot onlangs het Microsoft Excel nie 'n ingeboude MAX IF-funksie om die maksimum waarde op grond van toestande te kry. Met die bekendstelling van MAXIFS in Excel 2019, kan ons voorwaardelike maksimum 'n maklike manier doen.

    In Excel 2016 en vroeër weergawes moet jy steeds jou eie skikkingformule skep deur die MAX te kombineer funksie met 'n IF-stelling:

    {=MAX(IF( kriteria_reeks= kriteria, maksimum_reeks))}

    Om te sien hoe hierdie generiese MAX INDIEN formule op werklike data werk, oorweeg asseblief die volgende voorbeeld. Gestel jy het 'n tabel met die verspringresultate van verskeie studente. Die tabel sluit die data vir drie rondtes in, en jy soek die beste uitslag van 'n spesifieke atleet, sê Jacob. Met die studentename in A2:A10 en afstande in C2:C10 neem die formule hierdie vorm aan:

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

    Hou asseblief in gedagte dat 'n skikkingsformulemoet altyd ingevoer word deur die Ctrl + Shift + Enter-sleutels gelyktydig te druk. Gevolglik word dit outomaties omring met krullerige hakies soos in die skermkiekie hieronder (om die hakies met die hand in te tik sal nie werk nie!).

    Ek werklike werkblaaie, dit is meer gerieflik om die maatstaf in sommige in te voer sel, sodat jy die toestand maklik kan verander sonder om die formule te verander. So, ons tik die gewenste naam in F1 en kry die volgende resultaat:

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

    Hoe hierdie formule werk

    In die logiese toets van die IF-funksie, vergelyk ons ​​die lys name (A2:A10) met die teikennaam (F1). Die resultaat van hierdie bewerking is 'n skikking van WAAR en ONWAAR, waar die WAAR-waardes name verteenwoordig wat ooreenstem met die teikennaam (Jacob):

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

    Vir die waarde_ as_waar argument verskaf ons die verspringresultate (C2:C10), dus as die logiese toets evalueer na WAAR, word die ooreenstemmende getal van kolom C teruggestuur. Die waarde_ as_vals argument word weggelaat, wat beteken dat dit net 'n ONWAAR waarde sal hê waar die voorwaarde nie nagekom word nie:

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

    Hierdie skikking word na die MAX-funksie gevoer, wat gee die maksimum getal terug en ignoreer die ONWAAR waardes.

    Wenk. Om die interne skikkings wat hierbo bespreek is te sien, kies die ooreenstemmende deel van die formule in jou werkblad en druk die F9-sleutel. Om die formule-evalueringsmodus te verlaat, druk die Esc-sleutel.

    MAX IF formule met veelvoudkriteria

    In situasies wanneer jy die maksimum waarde moet vind gebaseer op meer as een voorwaarde, kan jy óf:

    Gebruik geneste IF-stellings om bykomende kriteria in te sluit:

    {=MAX( IF( kriteriareeks1 = kriteria1 , IF( kriteriareeks2 = kriteria2 , maksimum_reeks )))}

    Of hanteer veelvuldige kriteria deur die vermenigvuldigingsbewerking te gebruik:

    {=MAX(IF(( kriteriareeks1 = kriteria1 ) * ( kriteriareeks2 = kriteria2 ), max_range ))}

    Kom ons sê jy het die resultate van seuns en meisies in 'n enkele tabel en jy wil die langste sprong onder meisies in rondte 3 vind. Om dit te laat doen , voer ons die eerste kriterium (vroulik) in G1 in, die tweede kriterium (3) in G2, en gebruik die volgende formules om die maksimum waarde uit te werk:

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

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

    Aangesien albei skikkingsformules is, onthou asseblief om Ctrl + Shift + Enter te druk om hulle korrek te voltooi.

    Soos getoon in die skermkiekie hieronder, lewer die formules dieselfde resultaat, so watter een om te gebruik is 'n saak van jou jou persoonlike voorkeur. Vir my is die formule met die Boole-logika makliker om te lees en te bou – dit laat toe om soveel toestande by te voeg as wat jy wil sonder om bykomende IF-funksies te nes.

    Hoe hierdie formules werk

    Die eerste formule gebruik twee geneste IF-funksies om twee kriteria te evalueer. In die logiese toets van die eerste IF-stelling vergelyk ons ​​die waardes in die Geslag-kolom(B2:B16) met die maatstaf in G1 ("Vroulik"). Die resultaat is 'n skikking van WAAR en ONWAAR waardes waar WAAR data verteenwoordig wat ooreenstem met die maatstaf:

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

    Op 'n soortgelyke wyse kontroleer die tweede IF-funksie die waardes in die Ronde kolom (C2) :C16) teen die kriterium in G2.

    Vir die waarde_as_waar -argument in die tweede IF-stelling, verskaf ons die verspringresultate (D2:D16), en op hierdie manier kry ons die items wat WAAR in die eerste twee skikkings in ooreenstemmende posisies het (d.i. die items waar die geslag "vroulik" is en ronde 3 is):

    {FALSE; FALSE; FALSE; FALSE; FALSE; 4.63; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; 4.52}

    Hierdie finale skikking gaan na die MAX-funksie en dit gee die grootste getal terug.

    Die tweede formule evalueer dieselfde toestande binne 'n enkele logiese toets en die vermenigvuldigingsbewerking werk soos die EN-operateur:

    Wanneer die WAAR- en ONWAAR-waardes gebruik word in enige rekenkundige bewerking, word hulle onderskeidelik in 1'e en 0'e omgeskakel. En omdat vermenigvuldiging met 0 altyd nul gee, het die resulterende skikking slegs 1 wanneer al die voorwaardes WAAR is. Hierdie skikking word geëvalueer in die logiese toets van die IF-funksie, wat die afstande terugstuur wat ooreenstem met die 1 (WAAR) elemente.

    MAX IF sonder skikking

    Baie Excel-gebruikers, insluitend ek, is benadeel teen skikkingsformules en probeer om waar moontlik daarvan ontslae te raak. Gelukkig het Microsoft Excel 'n paar funksies wat skikking inheems hanteer, en ons kan een gebruikvan sulke funksies, naamlik SUMPRODUCT, as soort "wrapper" rondom MAX.

    Die generiese MAX IF formule sonder skikking is soos volg:

    =SUMPRODUCT(MAX(( kriteria_reeks1 = kriteria1 ) * ( kriteria_reeks2 = kriteria2 ) * maksimum_reeks ))

    Natuurlik kan jy meer reeks/kriteria-pare byvoeg as nodig.

    Om die formule in aksie te sien, sal ons die data van die vorige voorbeeld gebruik. Die doel is om die maksimum sprong van 'n vroulike atleet in rondte 3 te kry:

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

    Hierdie formule word meegeding met 'n normale Enter-toetsaanslag en gee dieselfde resultaat as die skikking MAX IF formule:

    As u die skermkiekie hierbo van nader bekyk, kan u sien dat ongeldige spronge gemerk met "x" in die vorige voorbeelde nou 0 waardes in rye 3, 11 en 15 het , en die volgende afdeling verduidelik hoekom.

    Hoe hierdie formule werk

    Soos met die MAKS IF-formule, evalueer ons twee kriteria deur elke waarde in die Geslag (B2:B16) en Rondte ( C2:C16) kolomme met die kriteria in selle G1 en G2. Die resultaat is twee skikkings WAAR en ONWAAR waardes. Vermenigvuldiging van die skikkings se elemente in dieselfde posisies omskep WAAR en ONWAAR in onderskeidelik 1 en 0, waar 1 die items verteenwoordig wat aan beide kriteria voldoen. Die derde vermenigvuldigde skikking bevat die verspringresultate (D2:D16). En omdat vermenigvuldiging met 0 nul gee, is slegs die items wat 1 (WAAR) in die ooreenstemmende posisies hetoorleef:

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

    In die geval maks_reeks enige tekswaarde bevat, gee die vermenigvuldigingsbewerking die #VALUE-fout terug as gevolg waarvan die hele formule nie sal werk nie.

    Die MAX-funksie neem dit van hier af en gee die grootste getal terug wat aan die gespesifiseerde voorwaardes voldoen. Die resulterende skikking wat bestaan ​​uit 'n enkele element {4.63} gaan na die SUMPRODUCT-funksie en dit voer die maksimum getal in 'n sel uit.

    Let wel. As gevolg van sy spesifieke logika, werk die formule met die volgende waarskuwings:

    • Die reeks waar jy vir die hoogste waarde soek, moet slegs getalle bevat. As daar enige tekswaardes is, 'n #VALUE! fout word teruggestuur.
    • Die formule kan nie die "nie gelyk aan nul" toestand in 'n negatiewe datastel evalueer nie. Om maksimum waarde te vind wat nulle ignoreer, gebruik óf 'n MAX IF formule óf MAXIFS funksie.

    Excel MAX IF formule met OF logika

    Om die maksimum waarde te vind wanneer enige van die gespesifiseerde voorwaardes nagekom word, gebruik die reeds bekende skikking MAX IF formule met die Boole-logika, maar tel die voorwaardes by in plaas daarvan om hulle te vermenigvuldig.

    {=MAX(IF(( kriteria_reeks1 = kriteria1 ) + ( kriteria_reeks2 = kriteria2 ), maksimum_reeks ))}

    Alternatiewelik kan jy die volgende nie-skikking formule gebruik :

    =SUMPRODUK(MAX(((( kriteria_reeks1 = kriteria1 ) + ( kriteria_reeks2 = kriteria2 )) * max_range ))

    As 'n voorbeeld, kom ons werk uitdie beste resultaat in rondtes 2 en 3. Let asseblief daarop dat in die Excel-taal die taak anders geformuleer is: gee die maksimum waarde terug as rondte óf 2 óf 3 is.

    Met die rondtes gelys in B2:B10 , die resultate in C2:C10 en kriteria in F1 en H1, die formule gaan soos volg:

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

    Voer die formule in deur die Ctrl + Shift + Enter sleutelkombinasie te druk en jy sal kry hierdie resultaat:

    Die maksimum waarde met dieselfde voorwaardes kan ook gevind word deur hierdie nie-skikking formule te gebruik:

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

    Ons moet egter alle "x" waardes in kolom C vervang met nulle in hierdie geval, want SUMPRODUCT MAX werk net met numeriese data:

    Hoe hierdie formules werk

    Die skikkingsformule werk presies op dieselfde manier as MAX IF met EN-logika, behalwe dat jy by die kriteria aansluit deur die optelbewerking in plaas van vermenigvuldiging te gebruik. In skikkingsformules werk optelling as die OF-operateur:

    Die optel van twee skikkings WAAR en ONWAAR (wat voortspruit uit die kontrolering van die waardes in B2:B10 teen die kriteria in F1 en H1) produseer 'n skikking van 1'e en 0'e waar 1 die items verteenwoordig waarvoor een van die voorwaardes WAAR is en 0 die items verteenwoordig waarvoor albei voorwaardes ONWAAR is. As gevolg hiervan "hou" die IF-funksie al die items in C2:C10 ( waarde_as_waar ) waarvoor enige voorwaarde WAAR is (1); die oorblywende items word met ONWAAR vervang omdat die waarde_as_vals argument is nie gespesifiseer nie.

    Die nie-skikking formule werk op 'n soortgelyke manier. Die verskil is dat in plaas van IF se logiese toets, vermenigvuldig jy die elemente van die 1'e en 0'e skikking met die elemente van die verspring resultate skikking (C2:C10) in die ooreenstemmende posisies. Dit maak die items wat aan geen voorwaarde voldoen nie (het 0 in die eerste skikking) nietig en hou die items wat aan een van die voorwaardes voldoen (het 1 in die eerste skikking).

    MAXIFS – maklike manier om die hoogste te vind waarde met voorwaardes

    Die gebruikers van Excel 2019, 2021 en Excel 365 is vry van die moeite om skikkings te tem om hul eie MAX IF-formule te bou. Hierdie weergawes van Excel bied die langverwagte MAXIFS-funksie wat die vind van die grootste waarde met toestande kinderspeletjies maak.

    In die eerste argument van MAXIFS voer jy die reeks in waarin die maksimum waarde gevind moet word (D2: D16 in ons geval), en in die daaropvolgende argumente kan jy tot 126 reeks/kriteria-pare invoer. Byvoorbeeld:

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

    Soos in die skermkiekie hieronder getoon, het hierdie eenvoudige formule geen probleem met die verwerking van die reeks wat beide numeriese en tekswaardes bevat nie:

    Vir die gedetailleerde inligting oor hierdie funksie, sien asseblief Excel MAXIFS-funksie met formulevoorbeelde.

    Dit is hoe jy maksimum waarde met voorwaardes in Excel kan vind. Ek bedank jou vir die lees en hoop om jou volgende op ons blog te sienweek!

    Oefenwerkboek om af te laai

    Excel MAX IF formule voorbeelde (.xlsx lêer)

    Michael Brown is 'n toegewyde tegnologie-entoesias met 'n passie om komplekse prosesse te vereenvoudig deur sagteware-instrumente te gebruik. Met meer as 'n dekade se ondervinding in die tegnologiebedryf, het hy sy vaardighede in Microsoft Excel en Outlook, sowel as Google Sheets en Docs, opgeskerp. Michael se blog is toegewy daaraan om sy kennis en kundigheid met ander te deel, en verskaf maklik-om-te volg wenke en tutoriale vir die verbetering van produktiwiteit en doeltreffendheid. Of jy nou 'n ervare professionele persoon of 'n beginner is, Michael se blog bied waardevolle insigte en praktiese raad om die meeste uit hierdie noodsaaklike sagteware-nutsmiddels te kry.