Excel MAX IF formula za pronalaženje najveće vrijednosti s uvjetima

  • Podijeli Ovo
Michael Brown

Članak prikazuje nekoliko različitih načina za dobivanje maksimalne vrijednosti u Excelu na temelju jednog ili više uvjeta koje navedete.

U našem prethodnom vodiču pogledali smo uobičajene upotrebe funkcije MAX koja je dizajnirana za vraćanje najvećeg broja u skupu podataka. Međutim, u nekim ćete situacijama možda morati dublje proučiti svoje podatke kako biste pronašli maksimalnu vrijednost na temelju određenih kriterija. To se može učiniti pomoću nekoliko različitih formula, a ovaj članak objašnjava sve moguće načine.

    Excel MAX IF formula

    Sve donedavno Microsoft Excel nije imao ugrađena funkcija MAX IF za dobivanje maksimalne vrijednosti na temelju uvjeta. Uz uvođenje MAXIFS-a u Excel 2019, uvjetni max možemo napraviti na jednostavan način.

    U Excelu 2016 i ranijim verzijama još uvijek morate izraditi vlastitu formulu polja kombiniranjem MAX funkcija s IF naredbom:

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

    Da vidite kako ovaj generički MAX AKO formula funkcionira na stvarnim podacima, razmotrite sljedeći primjer. Pretpostavimo da imate tablicu s rezultatima skoka u dalj nekoliko učenika. U tablici su podaci za tri kola, a traži se najbolji rezultat pojedinog sportaša, recimo Jakova. S imenima učenika u A2:A10 i udaljenostima u C2:C10, formula ima ovaj oblik:

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

    Imajte na umu da formula poljauvijek se mora unijeti istovremenim pritiskom na tipke Ctrl + Shift + Enter. Kao rezultat toga, automatski je okružen vitičastim zagradama kao što je prikazano na snimci zaslona u nastavku (ručno upisivanje zagrada neće raditi!).

    U radnim listovima iz stvarnog života, praktičnije je unijeti kriterij u neke ćeliju, tako da možete jednostavno promijeniti stanje bez promjene formule. Dakle, upisujemo željeni naziv u F1 i dobivamo sljedeći rezultat:

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

    Kako radi ova formula

    U logičkom test funkcije IF, uspoređujemo popis imena (A2:A10) s ciljnim imenom (F1). Rezultat ove operacije je niz TRUE i FALSE, gdje TRUE vrijednosti predstavljaju imena koja odgovaraju ciljnom imenu (Jacob):

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

    Za value_ if_true argument, dostavljamo rezultate skoka u dalj (C2:C10), tako da ako logički test procijeni TRUE, vraća se odgovarajući broj iz stupca C. Argument value_ if_false je izostavljen, što znači da će imati samo FALSE vrijednost ako uvjet nije ispunjen:

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

    Ovaj niz šalje se funkciji MAX, koja vraća najveći broj zanemarujući FALSE vrijednosti.

    Savjet. Da biste vidjeli gore spomenute unutarnje nizove, odaberite odgovarajući dio formule na svom radnom listu i pritisnite tipku F9. Za izlazak iz moda procjene formule pritisnite tipku Esc.

    MAX IF formula s višestrukimkriteriji

    U situaciji kada trebate pronaći maksimalnu vrijednost na temelju više od jednog uvjeta, možete:

    Koristiti ugniježđene IF naredbe za uključivanje dodatnih kriterija:

    {=MAX( IF( raspon_kriterija1 = raspon_kriterija1 , IF( raspon_kriterija2 = kriterij2 , maks._raspon )))}

    Ili upravljajte s više kriterija pomoću operacije množenja:

    {=MAX(IF(( kriterij_raspon1 = kriterij1 ) * ( kriterij_raspon2 = kriterij2 ), max_range ))}

    Recimo da imate rezultate dječaka i djevojčica u jednoj tablici i želite pronaći najdulji skok među djevojčicama u 3. kolu. Da biste to učinili , unosimo prvi kriterij (ženski) u G1, drugi kriterij (3) u G2 i koristimo sljedeće formule za izračunavanje maksimalne vrijednosti:

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

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

    Budući da su obje formule polja, ne zaboravite pritisnuti Ctrl + Shift + Enter kako biste ih ispravno dovršili.

    Kao što je prikazano na snimci zaslona u nastavku, formule daju isti rezultat, pa koju ćete koristiti je stvar tebe vaše osobne preferencije. Za mene je formula s Booleovom logikom lakša za čitanje i izradu – omogućuje dodavanje onoliko uvjeta koliko želite bez ugniježđivanja dodatnih IF funkcija.

    Kako ove formule funkcioniraju

    Prva formula koristi dvije ugniježđene IF funkcije za procjenu dva kriterija. U logičkom testu prve IF naredbe uspoređujemo vrijednosti u stupcu Spol(B2:B16) s kriterijem u G1 ("Ženski"). Rezultat je niz vrijednosti TRUE i FALSE gdje TRUE predstavlja podatke koji odgovaraju kriteriju:

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

    Na sličan način, druga IF funkcija provjerava vrijednosti u okruglom stupcu (C2 :C16) u odnosu na kriterij u G2.

    Za argument value_if_true u drugoj IF izjavi, dostavljamo rezultate skoka u dalj (D2:D16), i na ovaj način dobivamo stavke koji imaju TRUE u prva dva niza na odgovarajućim pozicijama (tj. stavke u kojima je spol "ženski", a krug 3):

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

    Ovaj konačni niz ide u funkciju MAX i vraća najveći broj.

    Druga formula procjenjuje iste uvjete unutar jednog logičkog testa, a operacija množenja radi kao operator AND:

    Kada se vrijednosti TRUE i FALSE koriste u bilo kojem aritmetičke operacije, one se pretvaraju u 1 odnosno 0. A budući da množenje s 0 uvijek daje nulu, rezultirajući niz ima 1 samo kada su svi uvjeti TRUE. Ovaj niz se procjenjuje u logičkom testu funkcije IF, koja vraća udaljenosti koje odgovaraju elementima 1 (TRUE).

    MAX IF bez niza

    Mnogi korisnici programa Excel, uključujući mene, su predrasude prema formulama polja i pokušajte ih se riješiti gdje god je to moguće. Srećom, Microsoft Excel ima nekoliko funkcija koje izvorno obrađuju nizove, a mi možemo koristiti jednutakvih funkcija, naime SUMPRODUCT, kao neka vrsta "omotača" oko MAX.

    Generička MAX IF formula bez niza je sljedeća:

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

    Naravno, možete dodati više parova raspona/kriterija ako potrebno.

    Da bismo vidjeli formulu na djelu, koristit ćemo podatke iz prethodnog primjera. Cilj je postići maksimalni skok atletičarke u 3. rundi:

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

    Ova se formula natječe s normalnim pritiskom tipke Enter i vraća isti rezultat kao formula polja MAX IF:

    Ako bolje pogledate gornju snimku zaslona, ​​možete primijetiti da nevažeći skokovi označeni s "x" u prethodnim primjerima sada imaju 0 vrijednosti u redovima 3, 11 i 15 , a sljedeći odjeljak objašnjava zašto.

    Kako ova formula funkcionira

    Kao i kod formule MAX IF, procjenjujemo dva kriterija uspoređujući svaku vrijednost u Spolu (B2:B16) i Krugu ( C2:C16) stupaca s kriterijima u ćelijama G1 i G2. Rezultat su dva niza vrijednosti TRUE i FALSE. Množenje elemenata polja na istim pozicijama pretvara TRUE i FALSE u 1 odnosno 0, gdje 1 predstavlja stavke koje zadovoljavaju oba kriterija. Treći umnoženi niz sadrži rezultate skoka u dalj (D2:D16). A budući da množenje s 0 daje nulu, samo stavke koje imaju 1 (TRUE) na odgovarajućim pozicijamasurvive:

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

    U slučaju da max_range sadrži bilo koju tekstualnu vrijednost, operacija množenja vraća grešku #VALUE zbog koje cijela formula neće raditi.

    Funkcija MAX preuzima odavde i vraća najveći broj koji ispunjava navedene uvjete. Rezultirajući niz koji se sastoji od jednog elementa {4.63} ide u funkciju SUMPRODUCT i ispisuje najveći broj u ćeliji.

    Napomena. Zbog svoje specifične logike, formula funkcionira uz sljedeća upozorenja:

    • Raspon u kojem tražite najveću vrijednost mora sadržavati samo brojeve. Ako postoje tekstualne vrijednosti, #VALUE! vraća se pogreška.
    • Formula ne može procijeniti uvjet "nije jednako nuli" u negativnom skupu podataka. Da biste pronašli maksimalnu vrijednost zanemarujući nule, koristite ili MAX IF formulu ili MAXIFS funkciju.

    Excel MAX IF formula s logikom OR

    Da biste pronašli maksimalnu vrijednost kada bilo koji navedenih uvjeta, upotrijebite već poznatu formulu polja MAX IF s Booleovom logikom, ali dodajte uvjete umjesto da ih množite.

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

    Alternativno, možete koristiti sljedeću formulu bez polja :

    =SUMPRODUCT(MAX((( raspon_kriterija1 = raspon_kriterija1 ) + ( raspon_kriterija2 = kriterij_raspon2 )) * max_range ))

    Razmislimo, na primjernajbolji rezultat u krugovima 2 i 3. Obratite pozornost da je u Excel jeziku zadatak drugačije formuliran: vrati maksimalnu vrijednost ako je krug 2 ili 3.

    S krugovima navedenim u B2:B10 , rezultate u C2:C10 i kriterije u F1 i H1, formula je sljedeća:

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

    Unesite formulu pritiskom na kombinaciju tipki Ctrl + Shift + Enter i dobit ćete ovaj rezultat:

    Maksimalna vrijednost s istim uvjetima također se može pronaći pomoću ove formule bez niza:

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

    Međutim, u ovom slučaju moramo zamijeniti sve vrijednosti "x" u stupcu C nulama jer SUMPRODUCT MAX radi samo s numeričkim podacima:

    Kako ove formule rade

    Formula polja funkcionira na potpuno isti način kao MAX IF s logikom I osim što spajate kriterije korištenjem operacije zbrajanja umjesto množenja. U formulama polja, zbrajanje funkcionira kao operator OR:

    Zbrajanjem dva niza TRUE i FALSE (koji su rezultat provjere vrijednosti u B2:B10 prema kriterijima u F1 i H1) proizvodi se niz 1 i 0 gdje 1 predstavlja stavke za koje je bilo koji uvjet TOČAN, a 0 predstavlja stavke za koje su oba uvjeta NETOČNA. Kao rezultat toga, funkcija IF "čuva" sve stavke u C2:C10 ( value_if_true ) za koje je bilo koji uvjet TRUE (1); preostale stavke zamjenjuju se s FALSE jerArgument value_if_false nije naveden.

    Formula bez polja radi na sličan način. Razlika je u tome što umjesto logičkog testa IF množite elemente niza 1 i 0 s elementima niza rezultata skoka u dalj (C2:C10) na odgovarajućim pozicijama. Ovo poništava stavke koje ne ispunjavaju nijedan uvjet (imaju 0 u prvom nizu) i zadržava stavke koje ispunjavaju jedan od uvjeta (imaju 1 u prvom nizu).

    MAXIFS – jednostavan način za pronalaženje najvećeg vrijednost s uvjetima

    Korisnici programa Excel 2019, 2021 i Excel 365 oslobođeni su problema kroćenja nizova za izradu vlastite formule MAX IF. Ove verzije Excela pružaju dugo očekivanu funkciju MAXIFS koja pronalaženje najveće vrijednosti čini dječjom igrom.

    U prvom argumentu MAXIFS-a unosite raspon u kojem bi se trebala pronaći najveća vrijednost (D2: D16 u našem slučaju), au sljedećim argumentima možete unijeti do 126 parova raspona/kriterija. Na primjer:

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

    Kao što je prikazano na slici ispod, ova jednostavna formula nema problema s obradom raspona koji sadrži i numeričke i tekstualne vrijednosti:

    Za detaljne informacije o ovoj funkciji pogledajte funkciju Excel MAXIFS s primjerima formula.

    Tako možete pronaći maksimalnu vrijednost s uvjetima u Excelu. Zahvaljujem vam na čitanju i nadam se da se vidimo na našem blogutjedan!

    Radna knjiga za vježbe za preuzimanje

    Excel MAX IF primjeri formula (.xlsx datoteka)

    Michael Brown predani je tehnološki entuzijast sa strašću za pojednostavljivanjem složenih procesa pomoću softverskih alata. S više od desetljeća iskustva u tehnološkoj industriji, usavršio je svoje vještine u Microsoft Excelu i Outlooku, kao i Google tablicama i dokumentima. Michaelov blog posvećen je dijeljenju znanja i stručnosti s drugima, pružajući savjete i upute koje je lako slijediti za poboljšanje produktivnosti i učinkovitosti. Bez obzira jeste li iskusni profesionalac ili početnik, Michaelov blog nudi vrijedne uvide i praktične savjete za izvlačenje maksimuma iz ovih osnovnih softverskih alata.