Excel MAX IF formula za iskanje največje vrednosti s pogoji

  • Deliti To
Michael Brown

V članku je prikazanih nekaj različnih načinov za pridobitev največje vrednosti v Excelu na podlagi enega ali več pogojev, ki jih določite.

V prejšnjem učbeniku smo si ogledali pogoste načine uporabe funkcije MAX, ki je namenjena vračanju največjega števila v nizu podatkov. V nekaterih primerih pa se boste morda morali še bolj poglobiti v podatke in poiskati največjo vrednost na podlagi določenih meril. To lahko storite z uporabo nekaj različnih formul, v tem članku pa so pojasnjeni vsi možni načini.

    Excel MAX IF formula

    Do nedavnega Microsoft Excel ni imel vgrajene funkcije MAX IF za pridobitev največje vrednosti na podlagi pogojev. Z uvedbo funkcije MAXIFS v Excelu 2019 lahko na enostaven način izvedemo pogojni maksimum.

    V Excelu 2016 in prejšnjih različicah morate še vedno ustvariti svoje formula polja s kombinacijo funkcije MAX in stavka IF:

    {=MAX(IF( kriterij_območje = merila , max_range ))}

    Če želite videti, kako ta splošna formula MAX IF deluje na resničnih podatkih, si oglejte naslednji primer. Predpostavimo, da imate tabelo z rezultati skoka v daljino več učencev. Tabela vsebuje podatke za tri kroge, vi pa iščete najboljši rezultat določenega športnika, recimo Jakoba. Z imeni učencev v A2:A10 in razdaljami v C2:C10 ima formula naslednjo obliko:

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

    Upoštevajte, da je treba formulo polja vedno vnesti s hkratnim pritiskom tipk Ctrl + Shift + Enter. Zaradi tega je samodejno obdana z oglatimi oklepaji, kot je prikazano na spodnji sliki zaslona (ročno vnašanje oklepajev ne bo delovalo!).

    V resničnih delovnih listih je bolj priročno vnesti merilo v neko celico, tako da lahko preprosto spremenite pogoj, ne da bi spremenili formulo. Tako vnesemo želeno ime v F1 in dobimo naslednji rezultat:

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

    Kako deluje ta formula

    Pri logičnem preizkusu funkcije IF primerjamo seznam imen (A2:A10) s ciljnim imenom (F1). Rezultat te operacije je polje TRUE in FALSE, pri čemer vrednosti TRUE predstavljajo imena, ki se ujemajo s ciljnim imenom (Jacob):

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

    Za value_ if_true podamo rezultate dolgega skoka (C2:C10), tako da se, če je logični test ovrednoten kot TRUE, vrne ustrezno število iz stolpca C. vrednost_ if_false je argument izpuščen, bo v primeru, da pogoj ni izpolnjen, pomenil le vrednost FALSE:

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

    To polje se posreduje funkciji MAX, ki vrne največje število brez upoštevanja vrednosti FALSE.

    Nasvet. Če si želite ogledati zgoraj obravnavane notranje polja, izberite ustrezen del formule v delovnem listu in pritisnite tipko F9. Za izhod iz načina vrednotenja formule pritisnite tipko Esc.

    Formula MAX IF z več merili

    Če morate poiskati največjo vrednost na podlagi več kot enega pogoja, lahko:

    Za vključitev dodatnih meril uporabite vgnezdene stavke IF:

    {=MAX(IF( kriterij_razpon1 = merila1 , IF( kriterij_razpon2 = merila2 , max_range )))}

    Več meril lahko obdelate z operacijo množenja:

    {=MAX(IF(( kriterij_razpon1 = merila1 ) * ( kriterij_razpon2 = merila2 ), max_range ))}

    Recimo, da imate rezultate fantov in deklet v eni preglednici in želite poiskati najdaljši skok med dekleti v krogu 3. To lahko storite tako, da v G1 vnesete prvo merilo (ženska), v G2 drugo merilo (3) in z naslednjimi formulami izračunate največjo vrednost:

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

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

    Ker sta obe formuli v obliki polja, ne pozabite pritisniti kombinacije tipk Ctrl + Shift + Enter, da ju pravilno izpolnite.

    Kot je prikazano na spodnji sliki zaslona, formuli dajeta enak rezultat, zato je izbira formule odvisna od vaših osebnih preferenc. Po mojem mnenju je formulo z logiko Boola lažje prebrati in sestaviti - omogoča dodajanje poljubnega števila pogojev brez vgnezditve dodatnih funkcij IF.

    Kako te formule delujejo

    Prva formula uporablja dve vgnezdeni funkciji IF za vrednotenje dveh meril. V logičnem preizkusu prve izjave IF primerjamo vrednosti v stolpcu Spol (B2:B16) z merilom v G1 ("Ženska"). Rezultat je polje vrednosti TRUE in FALSE, kjer TRUE predstavlja podatke, ki ustrezajo merilu:

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

    Druga funkcija IF na podoben način preveri vrednosti v stolpcu Round (C2:C16) glede na merilo v G2.

    Za value_if_true v drugem stavku IF navedemo rezultate skoka v daljino (D2:D16) in tako dobimo elemente, ki imajo v prvih dveh poljih na ustreznih mestih vrednost TRUE (tj. elemente, kjer je spol "ženska" in krog 3):

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

    To zadnje polje je namenjeno funkciji MAX, ki vrne največje število.

    Druga formula ovrednoti iste pogoje v enem samem logičnem testu, operacija množenja pa deluje kot operator AND:

    Ko vrednosti TRUE in FALSE uporabimo v kateri koli aritmetični operaciji, se pretvorijo v 1 oziroma 0. Ker množenje z 0 vedno da ničlo, ima dobljeno polje vrednost 1 le, če so vsi pogoji TRUE. To polje se oceni v logičnem testu funkcije IF, ki vrne razdalje, ki ustrezajo elementom 1 (TRUE).

    MAX IF brez polja

    Veliko uporabnikov programa Excel, vključno z mano, ima predsodke do formul za polja in se jih poskuša znebiti, kjer je le mogoče. Na srečo ima Microsoft Excel nekaj funkcij, ki nativno obdelujejo polja, in eno od teh funkcij, namreč SUMPRODUCT, lahko uporabimo kot nekakšen "ovitek" okoli funkcije MAX.

    Splošna formula MAX IF brez polja je naslednja:

    =SUMPRODUKT(MAX(( kriterij_razpon1 = merila1 ) * ( kriterij_razpon2 = merila2 ) * max_range ))

    Seveda lahko po potrebi dodate več parov območij/kriterijev.

    Da bi videli formulo v praksi, bomo uporabili podatke iz prejšnjega primera. Cilj je dobiti največji skok atletinje v tretji seriji:

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

    Ta formula se uporablja z običajnim pritiskom na tipko Enter in vrne enak rezultat kot formula array MAX IF:

    Če si podrobneje ogledate zgornjo sliko zaslona, lahko opazite, da imajo neveljavni skoki, označeni z "x" v prejšnjih primerih, zdaj v vrsticah 3, 11 in 15 vrednosti 0, v naslednjem razdelku pa je pojasnjeno, zakaj.

    Kako deluje ta formula

    Tako kot pri formuli MAX IF ocenimo dve merili tako, da vsako vrednost v stolpcih Gender (B2:B16) in Round (C2:C16) primerjamo z merili v celicah G1 in G2. Rezultat sta dve polji vrednosti TRUE in FALSE. Če pomnožimo elemente polj na istih mestih, spremenimo TRUE in FALSE v 1 oziroma 0, kjer 1 pomeni elemente, ki izpolnjujejo obe merili. Tretje pomnoženopolje vsebuje rezultate dolgega skoka (D2:D16). Ker je rezultat pomnoževanja z 0 nič, ostanejo le elementi, ki imajo na ustreznih mestih vrednost 1 (TRUE):

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

    V primeru max_range vsebuje katero koli besedilno vrednost, se pri operaciji množenja vrne napaka #VALUE, zaradi česar celotna formula ne bo delovala.

    Funkcija MAX jo prevzame in vrne največje število, ki izpolnjuje določene pogoje. Dobljeno polje, sestavljeno iz enega samega elementa {4,63}, gre v funkcijo SUMPRODUCT, ki v celico izpiše največje število.

    Opomba: Zaradi svoje posebne logike formula deluje z naslednjimi opozorili:

    • Območje, v katerem iščete najvišjo vrednost, mora vsebovati samo številke. Če so v njem besedilne vrednosti, se vrne napaka #VALUE!.
    • Formula ne more ovrednotiti pogoja "ni enako nič" v negativnem nizu podatkov. Če želite poiskati največjo vrednost brez ničel, uporabite formulo MAX IF ali funkcijo MAXIFS.

    Excel MAX IF formula z logiko OR

    Za iskanje največje vrednosti, ko vse je izpolnjen eden od določenih pogojev, uporabite že znano formulo za polje MAX IF z logiko Boole, vendar pogoje seštejete, namesto da bi jih pomnožili.

    {=MAX(IF(( kriterij_razpon1 = merila1 ) + ( kriterij_razpon2 = merila2 ), max_range ))}

    Uporabite lahko tudi naslednjo formulo, ki ne vsebuje množice:

    =SUMPRODUKT(MAX(((( kriterij_razpon1 = merila1 ) + ( kriterij_razpon2 = merila2 )) * max_range ))

    Kot primer si oglejmo najboljši rezultat v krogih 2 in 3. Bodite pozorni, da je v jeziku Excel naloga oblikovana drugače: vrnite največjo vrednost, če je krog 2 ali 3.

    S krogi, navedenimi v B2:B10, rezultati v C2:C10 ter merili v F1 in H1 je formula naslednja:

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

    Vnesite formulo s kombinacijo tipk Ctrl + Shift + Enter in dobili boste ta rezultat:

    Največjo vrednost z enakimi pogoji lahko najdete tudi z uporabo te formule, ki ni v obliki množice:

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

    Vendar moramo v tem primeru vse vrednosti "x" v stolpcu C nadomestiti z ničlami, ker SUMPRODUCT MAX deluje samo s številčnimi podatki:

    Kako te formule delujejo

    Formula za polje deluje popolnoma enako kot formula MAX IF z logiko AND, le da merila združite z operacijo seštevanja namesto množenja. V formulah za polje seštevanje deluje kot operator OR:

    S seštevanjem dveh polj TRUE in FALSE (ki sta rezultat preverjanja vrednosti v B2:B10 glede na merila v F1 in H1) dobimo polje 1 in 0, kjer 1 predstavlja elemente, za katere je kateri od pogojev TRUE, 0 pa elemente, za katere sta oba pogoja FALSE. Posledično funkcija IF "ohrani" vse elemente v C2:C10 ( value_if_true ), za katere je katerikoli pogoj TRUE (1); preostali elementi se nadomestijo s FALSE, ker value_if_false argument ni naveden.

    Formula, ki ne vključuje polja, deluje podobno. Razlika je v tem, da namesto logičnega testa IF pomnožite elemente polja 1 in 0 z elementi polja rezultatov skoka v daljino (C2:C10) na ustreznih mestih. S tem izničite elemente, ki ne izpolnjujejo nobenega pogoja (imajo 0 v prvem polju), in ohranite elemente, ki izpolnjujejo enega od pogojev (imajo 1 v prvem polju).array).

    MAXIFS - enostaven način iskanja najvišje vrednosti s pogoji

    Uporabniki programov Excel 2019, 2021 in Excel 365 se lahko osvobodijo težav z ukrotitvijo matrik, da bi sestavili svojo formulo MAX IF. Te različice programa Excel zagotavljajo dolgo pričakovano funkcijo MAXIFS, s katero je iskanje največje vrednosti s pogoji otročje lahko.

    V prvi argument MAXIFS vnesete območje, v katerem je treba najti največjo vrednost (v našem primeru D2:D16), v naslednje argumente pa lahko vnesete do 126 parov območij/kriterijev. Na primer:

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

    Kot je prikazano na spodnji sliki zaslona, ta preprosta formula nima težav z obdelavo območja, ki vsebuje tako številčne kot besedilne vrednosti:

    Za podrobnejše informacije o tej funkciji glejte Excelovo funkcijo MAXIFS s primeri formul.

    Tako lahko v Excelu s pogoji poiščete največjo vrednost. Zahvaljujem se vam za branje in upam, da se naslednji teden vidimo na našem blogu!

    Praktični delovni zvezek za prenos

    Primeri formule Excel MAX IF (.xlsx datoteka)

    Michael Brown je predan tehnološki navdušenec s strastjo do poenostavljanja kompleksnih procesov z uporabo programskih orodij. Z več kot desetletnimi izkušnjami v tehnološki industriji je svoje veščine izpopolnil v Microsoft Excelu in Outlooku ter Google Preglednicah in Dokumentih. Michaelov blog je namenjen deljenju svojega znanja in strokovnega znanja z drugimi ter ponuja preproste nasvete in vadnice za izboljšanje produktivnosti in učinkovitosti. Ne glede na to, ali ste izkušen strokovnjak ali začetnik, Michaelov blog ponuja dragocene vpoglede in praktične nasvete, kako kar najbolje izkoristiti ta osnovna programska orodja.