Excel MAX IF-formule om grutste wearde te finen mei betingsten

  • Diel Dit
Michael Brown

It artikel lit in pear ferskillende manieren sjen om de maksimale wearde yn Excel te krijen op basis fan ien of meardere betingsten dy't jo oantsjutte.

Yn ús foarige tutorial seagen wy nei de mienskiplike gebrûk fan 'e MAX-funksje dy't is ûntworpen om it grutste oantal yn in dataset werom te jaan. Yn guon situaasjes moatte jo miskien fierder yn jo gegevens boarje om de maksimale wearde te finen basearre op bepaalde kritearia. Dit kin dien wurde troch in pear ferskillende formules te brûken, en dit artikel ferklearret alle mooglike manieren.

    Excel MAX IF-formule

    Oant koartlyn hie Microsoft Excel gjin in ynboude MAX IF-funksje om de maksimale wearde te krijen basearre op betingsten. Mei de yntroduksje fan MAXIFS yn Excel 2019 kinne wy ​​betingst max in maklike manier dwaan.

    Yn Excel 2016 en eardere ferzjes moatte jo noch jo eigen arrayformule oanmeitsje troch de MAX te kombinearjen funksje mei in IF-statement:

    {=MAX(IF( criteria_range= criteria, max_range))}

    Om te sjen hoe't dizze generyske MAX IF formule wurket op echte gegevens, beskôgje asjebleaft it folgjende foarbyld. Stel dat jo in tabel hawwe mei de resultaten fan lange sprongen fan ferskate studinten. De tabel befettet de gegevens foar trije rûndes, en jo sykje it bêste resultaat fan in bepaalde atleet, sei Jacob. Mei de studintnammen yn A2:A10 en ôfstannen yn C2:C10, nimt de formule dizze foarm oan:

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

    Hâld asjebleaft yn gedachten dat in arrayformulemoat altyd ynfierd wurde troch tagelyk op de Ctrl + Shift + Enter-toetsen te drukken. As resultaat wurdt it automatysk omjûn mei krullende heakjes lykas werjûn yn 'e skermôfbylding hjirûnder (de beugels mei de hân yntypen sil net wurkje!).

    Ik wurkblêden yn it echte libben, it is handiger om it kritearium yn te fieren yn guon sel, sadat jo de betingst maklik feroarje kinne sûnder de formule te feroarjen. Dat, wy typje de winske namme yn F1 en krije it folgjende resultaat:

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

    Hoe't dizze formule wurket

    Yn de logyske test fan 'e IF-funksje, fergelykje wy de list mei nammen (A2: A10) mei de doelnamme (F1). It resultaat fan dizze operaasje is in array fan TRUE en FALSE, wêrby't de TRUE-wearden nammen fertsjintwurdigje dy't oerienkomme mei de doelnamme (Jacob):

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

    Foar de wearde_ if_true argumint, wy leverje de lange sprong resultaten (C2: C10), dus as de logyske test evaluearret nei TRUE, wurdt it oerienkommende nûmer út kolom C weromjûn. It argumint wearde_ if_false wurdt weilitten, wat betsjut dat it gewoan in FALSE-wearde sil hawwe dêr't net oan de betingst foldien wurdt:

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

    Dizze array wurdt oan de MAX-funksje brocht, dy't jout it maksimale oantal werom sûnder de FALSE wearden te negearjen.

    Tip. Om de hjirboppe besprutsen ynterne arrays te sjen, selektearje it oerienkommende diel fan 'e formule yn jo wurkblêd en druk op de F9-kaai. Om de formule-evaluaasjemodus te ferlitten, druk op de Esc-toets.

    MAX IF formule mei mearderekritearia

    Yn situaasje as jo de maksimale wearde moatte fine op basis fan mear dan ien betingst, kinne jo ofwol:

    Nêste IF-útspraken brûke om ekstra kritearia op te nimmen:

    {=MAX( IF( kriteariaberik1 = kritearia1 , IF( kriteariaberik2 = kritearia2 , max_berik )))}

    Of behannelje meardere kritearia troch de fermannichfâldigje-operaasje te brûken:

    {=MAX(IF(( criteria_range1 = criteria1 ) * ( criteria_range2 = criteria2 ), max_range ))}

    Lit ús sizze dat jo de resultaten fan jonges en famkes yn ien tabel hawwe en jo wolle de langste sprong fine ûnder famkes yn ronde 3. Om it dien te hawwen , ynfiere wy it earste kritearium (froulik) yn G1, it twadde kritearium (3) yn G2, en brûke de folgjende formules om de maksimale wearde út te wurkjen:

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

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

    Om't beide arrayformules binne, tink dan asjebleaft om Ctrl + Shift + Enter te drukken om se goed te foltôgjen.

    Lykas werjûn yn 'e skermprint hjirûnder, produsearje de formules itselde resultaat, dus hokker te brûken is in kwestje fan jo jo persoanlike foarkar. Foar my is de formule mei de Booleaanske logika makliker te lêzen en te bouwen - it makket it mooglik om safolle betingsten ta te foegjen as jo wolle sûnder ekstra IF-funksjes te nêsten.

    Hoe't dizze formules wurkje

    De earste formule brûkt twa geneste IF-funksjes om twa kritearia te evaluearjen. Yn 'e logyske test fan' e earste IF-ferklearring fergelykje wy de wearden yn 'e kolom Geslacht(B2:B16) mei it kritearium yn G1 ("Froulik"). It resultaat is in array fan TRUE en FALSE wearden wêrby't TRUE gegevens fertsjintwurdiget dy't oerienkomme mei it kritearium:

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

    Op in fergelykbere manier kontroleart de twadde IF-funksje de wearden yn 'e Rûnde kolom (C2) :C16) tsjin it kritearium yn G2.

    Foar it wearde_as_wier -argumint yn 'e twadde IF-ferklearring leverje wy de resultaten fan 'e lange sprong (D2:D16), en op dizze manier krije wy de items dy't TRUE hawwe yn 'e earste twa arrays yn oerienkommende posysjes (d.w.s. de items wêr't it geslacht "froulik" is en rûn 3 is):

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

    Dizze lêste rige giet nei de MAX-funksje en it jout it grutste oantal werom.

    De twadde formule evaluearret deselde betingsten binnen ien logyske test en de fermannichfâldigje operaasje wurket lykas de AND operator:

    As de TRUE en FALSE wearden wurde brûkt yn alle arithmetic operaasje, se wurde omboud ta 1's en 0's, respektivelik. En om't fermannichfâldigjen mei 0 altyd nul jout, hat de resultearjende array allinich 1 as alle betingsten TRUE binne. Dizze array wurdt evaluearre yn 'e logyske test fan 'e IF-funksje, dy't de ôfstannen werombringt dy't oerienkomme mei de 1 (TRUE) eleminten.

    MAX IF sûnder array

    In protte Excel-brûkers, ynklusyf my, binne foaroardielen tsjin arrayformules en besykje se wêr mooglik kwyt te reitsjen. Gelokkich hat Microsoft Excel in pear funksjes dy't native array behannelje, en wy kinne ien brûkefan sokke funksjes, nammentlik SUMPRODUCT, as soarte fan "wrapper" om MAX.

    De generyske MAX IF-formule sûnder array is as folget:

    =SUMPRODUCT(MAX(( criteria_range1 = criteria1 ) * ( criteria_range2 = criteria2 ) * max_range ))

    Natuerlik kinne jo mear berik/kritearia-pearen tafoegje as nedich.

    Om de formule yn aksje te sjen, sille wy de gegevens fan it foarige foarbyld brûke. It doel is om de maksimale sprong fan in froulike atleet yn ronde 3 te krijen:

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

    Dizze formule wurdt konkurrearre mei in normale Enter-toetsoanslag en jout itselde resultaat as de array MAX IF-formule:

    As jo ​​de boppesteande skermôfbylding fan tichterby sjen litte, kinne jo merke dat ûnjildige sprongen markearre mei "x" yn 'e foargeande foarbylden no 0 wearden hawwe yn rigen 3, 11 en 15 , en de folgjende paragraaf ferklearret wêrom.

    Hoe't dizze formule wurket

    Lykas by de MAX IF-formule, evaluearje wy twa kritearia troch elke wearde te fergelykjen yn 'e Gender (B2:B16) en Round ( C2: C16) kolommen mei de kritearia yn sellen G1 en G2. It resultaat binne twa arrays fan TRUE en FALSE wearden. It fermannichfâldigjen fan de eleminten fan de arrays yn deselde posysjes konvertearret TRUE en FALSE yn respektivelik 1 en 0, wêrby't 1 de items fertsjintwurdiget dy't oan beide kritearia foldwaan. De tredde fermannichfâldige array befettet de lange sprong resultaten (D2: D16). En om't fermannichfâldigjen mei 0 nul jout, binne allinich de items dy't 1 (TRUE) hawwe yn 'e oerienkommende posysjesoerlibje:

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

    Yn gefal max_range in tekstwearde befettet, jout de fermannichfâldigingsoperaasje de #VALUE-flater werom, wêrtroch de folsleine formule net wurket.

    De MAX-funksje nimt it hjirwei en jout it grutste oantal werom dat foldocht oan de opjûne betingsten. De resultearjende array dy't bestiet út ien elemint {4.63} giet nei de SUMPRODUCT-funksje en it útfiert it maksimum oantal yn in sel.

    Opmerking. Fanwege syn spesifike logika wurket de formule mei de folgjende warskôgingen:

    • It berik dêr't jo sykje nei de heechste wearde moat allinich sifers befetsje. As der tekstwearden binne, in #VALUE! flater wurdt weromjûn.
    • De formule kin de "net lyk oan nul" betingst net evaluearje yn in negative dataset. Om maksimale wearde te finen dy't nullen negearret, brûk of in MAX IF-formule of MAXIFS-funksje.

    Excel MAX IF-formule mei OR-logika

    Om de maksimale wearde te finen wannear elke fan de opjûne betingsten foldien is, brûk dan de al bekende array MAX IF formule mei de Booleaanske logika, mar foegje de betingsten ta ynstee fan se te fermannichfâldigjen.

    {=MAX(IF(( criteria_range1 = criteria1 ) + ( criteria_range2 = criteria2 ), max_range ))}

    Alternatyf kinne jo de folgjende non-array-formule brûke :

    =SUMPRODUCT(MAX((( kriteariaberik1 = kritearia1 ) + ( kriteariaberik2 = kritearia2 )) * max_range ))

    As foarbyld, litte wy útwurkjeit bêste resultaat yn rûnen 2 en 3. Tink derom dat yn de Excel-taal de taak oars formulearre is: jou de maxwearde werom as rûnte of 2 of 3 is.

    Mei de rûnten neamd yn B2:B10 , de resultaten yn C2:C10 en kritearia yn F1 en H1, de formule giet as folget:

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

    Fier de formule yn troch op de Ctrl + Shift + Enter-toetskombinaasje te drukken en jo krije dit resultaat:

    De maksimale wearde mei deselde betingsten kin ek fûn wurde mei dizze non-arrayformule:

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

    Wy moatte lykwols alle "x" wearden yn kolom C ferfange troch nullen yn dit gefal, om't SUMPRODUCT MAX allinich wurket mei numerike gegevens:

    Hoe't dizze formules wurkje

    De arrayformule wurket krekt op deselde manier as MAX IF mei AND-logika, útsein dat jo meidwaan oan 'e kritearia troch de opteloperaasje te brûken ynstee fan multiplikaasje. Yn arrayformules wurket tafoeging as de OR-operator:

    Twa arrays fan TRUE en FALSE optelle (wat resultearret út it kontrolearjen fan de wearden yn B2:B10 tsjin de kritearia yn F1 en H1) produseart in array fan 1's en 0's wêrby't 1 de items foarstelt wêrfan beide betingsten TRUE binne en 0 de items foar wêrfoar beide betingsten FALSE binne. As resultaat "hâldt" de IF-funksje alle items yn C2:C10 ( wearde_if_wier ) wêrfoar elke betingst TRUE is (1); de oerbleaune items wurde ferfongen mei FALSE omdat de value_if_false argumint is net oantsjutte.

    De non-array-formule wurket op in fergelykbere wize. It ferskil is dat yn stee fan IF syn logyske test, jo fermannichfâldigje de eleminten fan de 1's en 0's array troch de eleminten fan 'e lange sprong resultaten array (C2: C10) yn de oerienkommende posysjes. Dit annulearret de items dy't net foldogge oan in betingst (ha 0 yn 'e earste rige) en hâldt de items dy't foldogge oan ien fan' e betingsten (hawwe 1 yn 'e earste rige).

    MAXIFS - maklike manier om heechste te finen. wearde mei betingsten

    De brûkers fan Excel 2019, 2021 en Excel 365 binne frij fan 'e problemen om arrays te temmen om har eigen MAX IF-formule te bouwen. Dizze ferzjes fan Excel jouwe de langferwachte MAXIFS-funksje dy't it finen fan de grutste wearde mei betingsten bernspul makket.

    Yn it earste argumint fan MAXIFS fiere jo it berik yn wêryn't de maksimale wearde fûn wurde moat (D2: D16 yn ús gefal), en yn 'e folgjende arguminten kinne jo oant 126 berik / kritearia-pearen ynfiere. Bygelyks:

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

    Lykas werjûn yn it skermôfbylding hjirûnder, hat dizze ienfâldige formule gjin probleem mei it ferwurkjen fan it berik dat sawol numerike as tekstwearden befettet:

    Foar de detaillearre ynformaasje oer dizze funksje, sjoch asjebleaft Excel MAXIFS-funksje mei formulefoarbylden.

    Sa kinne jo maksimale wearde fine mei betingsten yn Excel. Ik tankje jo foar it lêzen en hoopje jo folgjende te sjen op ús blogwike!

    Oefeningswurkboek om te downloaden

    Excel MAX IF-formulefoarbylden (.xlsx-bestân)

    Michael Brown is in tawijd technology-entûsjast mei in passy foar it ferienfâldigjen fan komplekse prosessen mei software-ark. Mei mear as in desennium ûnderfining yn 'e tech-yndustry hat hy syn feardigens yn Microsoft Excel en Outlook, lykas Google Blêden en Docs, oanskerpe. Michael's blog is wijd oan it dielen fan syn kennis en ekspertize mei oaren, en biedt maklik te folgjen tips en tutorials foar it ferbetterjen fan produktiviteit en effisjinsje. Oft jo in betûfte profesjonele of in begjinner binne, Michael's blog biedt weardefolle ynsjoch en praktysk advys om it measte út dizze essensjele software-ark te heljen.