Formula Excel MAX IF za pronalaženje najveće vrijednosti sa uslovima

  • Podijeli Ovo
Michael Brown

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

U našem prethodnom vodiču pogledali smo uobičajene upotrebe funkcije MAX koja je dizajnirana da vrati najveći broj u skupu podataka. U nekim situacijama, međutim, možda ćete morati dalje analizirati svoje podatke kako biste pronašli maksimalnu vrijednost na osnovu određenih kriterija. To se može učiniti korištenjem nekoliko različitih formula, a ovaj članak objašnjava sve moguće načine.

    Excel MAX IF formula

    Do nedavno, Microsoft Excel nije imao ugrađena funkcija MAX IF za dobivanje maksimalne vrijednosti na osnovu uslova. Sa uvođenjem MAXIFS-a u Excel 2019, možemo napraviti uvjetni maksimum na jednostavan način.

    U Excelu 2016 i ranijim verzijama, još uvijek morate kreirati vlastitu formulu niza kombiniranjem MAX funkcija sa IF naredbom:

    {=MAX(IF( raspon_kriterija= kriterijum, max_range))}

    Da vidite kako ovaj generički MAX AKO formula radi na stvarnim podacima, razmotrite sljedeći primjer. Pretpostavimo da imate tabelu sa rezultatima nekoliko učenika u skoku u dalj. Tabela uključuje podatke za tri kola, a vi tražite najbolji rezultat određenog sportiste, recimo Jacoba. Sa imenima učenika u A2:A10 i udaljenostima u C2:C10, formula poprima ovaj oblik:

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

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

    U radnim listovima iz stvarnog života, zgodnije je unijeti kriterij u neke ćeliju, tako da možete lako promijeniti uvjet bez promjene formule. Dakle, u F1 upisujemo željeno ime i dobijamo sljedeći rezultat:

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

    Kako ova formula funkcionira

    U logičkom testom funkcije IF, upoređujemo listu imena (A2:A10) sa imenom cilja (F1). Rezultat ove operacije je niz TRUE i FALSE, gdje vrijednosti TRUE 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 na 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 gdje uvjet nije ispunjen:

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

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

    Savjet. Da biste vidjeli interne nizove o kojima smo gore govorili, odaberite odgovarajući dio formule na radnom listu i pritisnite tipku F9. Da biste izašli iz moda evaluacije formule, pritisnite tipku Esc.

    MAX IF formula sa višestrukimkriterij

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

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

    {=MAX( IF( opseg_kriterija1 = kriterijum1 , IF( opseg_kriterija2 = kriterijum2 , maksimalni_opseg )))}

    Ili rukujte više kriterija korištenjem operacije množenja:

    {=MAX(IF(( opseg_kriterija1 = kriterijum1 ) * ( opseg_kriterija2 = kriterijum2 ), max_range ))}

    Recimo da imate rezultate dječaka i djevojčica u jednoj tabeli i želite pronaći najduži 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 niza, ne zaboravite pritisnuti Ctrl + Shift + Enter da ih ispravno dovršite.

    Kao što je prikazano na snimku ekrana ispod, formule daju isti rezultat, tako da je ono što ćete koristiti stvar tebe vaša lična preferencija. Za mene je formula s Booleovom logikom lakša za čitanje i izgradnju – omogućava dodavanje onoliko uslova koliko želite bez ugniježđenja 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, upoređujemo vrijednosti u stupcu Pol(B2:B16) sa kriterijumom u G1 ("Žensko"). Rezultat je niz TRUE i FALSE vrijednosti 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) prema kriteriju u G2.

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

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

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

    Druga formula procjenjuje iste uslove unutar jednog logičkog testa i operacija množenja radi kao operator AND:

    Kada se vrijednosti TRUE i FALSE koriste u bilo kojem aritmetičkom operacijom, oni se pretvaraju u 1 i 0, respektivno. I pošto množenje sa 0 uvek daje nulu, rezultujući niz ima 1 samo kada su svi uslovi TRUE. Ovaj niz se procjenjuje u logičkom testu funkcije IF, koji vraća udaljenosti koje odgovaraju elementima 1 (TRUE).

    MAX IF bez niza

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

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

    =SUMPRODUCT(MAX(( raspon_kriterija1 = kriterijum1 ) * ( opseg_kriterija2 = kriterijum2 ) * maksimalni_opseg ))

    Naravno, možete dodati još parova raspon/kriterijum ako potrebno.

    Da bismo vidjeli formulu u akciji, koristit ćemo podatke iz prethodnog primjera. Cilj je postići maksimalni skok sportašice u 3. rundi:

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

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

    Kada bolje pogledate gornji snimak ekrana, možete primijetiti da nevažeći skokovi označeni sa "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 upoređivanjem svake vrijednosti u spolu (B2:B16) i krugu ( C2:C16) kolone sa kriterijumima u ćelijama G1 i G2. Rezultat su dva niza vrijednosti TRUE i FALSE. Množenjem elemenata niza na istim pozicijama se pretvara TRUE i FALSE u 1 i 0, respektivno, gdje 1 predstavlja stavke koje ispunjavaju oba kriterija. Treći pomnoženi niz sadrži rezultate skoka u dalj (D2:D16). A pošto množenje sa 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 je 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 daje maksimalan broj u ćeliji.

    Napomena. Zbog svoje specifične logike, formula radi sa sljedećim upozorenjima:

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

    Excel formula MAX IF sa logikom OR

    Da biste pronašli maksimalnu vrijednost kada je bilo koji od navedenih uslova je ispunjeno, koristite već poznatu formulu polja MAX IF s Booleovskom logikom, ali dodajte uslove umjesto da ih množite.

    {=MAX(IF(( raspon_kriterija1 = kriterijum1 ) + ( opseg_kriterija2 = kriterijum2 ), maksimalni_opseg ))}

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

    =SUMPRODUCT(MAX((( opseg_kriterija1 = kriterijum1 ) + ( opseg_kriterija2 = kriterijum2 )) * max_range ))

    Kao primjer, razradimonajbolji rezultat u 2. i 3. rundi. Obratite pažnju da je u Excel jeziku zadatak drugačije formuliran: vratite maksimalnu vrijednost ako je krug 2 ili 3.

    Sa rundama navedenim u B2:B10 , rezultati u C2:C10 i kriterijumi u F1 i H1, formula ide ovako:

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

    Unesite formulu pritiskom na kombinaciju tastera Ctrl + Shift + Enter i dobićete ovaj rezultat:

    Maksimalna vrijednost sa istim uvjetima također se može naći korištenjem ove formule koja nije niz:

    =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 niza radi na potpuno isti način kao MAX IF sa AND logikom, osim što pridružujete kriterije korištenjem operacije sabiranja umjesto množenja. U formulama niza, sabiranje radi kao operator OR:

    Zbrajanjem dva niza TRUE i FALSE (koji su rezultat provjere vrijednosti u B2:B10 u odnosu na kriterije u F1 i H1) proizvodi se niz od 1 i 0 gdje 1 predstavlja stavke za koje je bilo koji od uvjeta TRUE, a 0 predstavlja stavke za koje su oba uslova LAŽNA. Kao rezultat, funkcija IF "čuva" sve stavke u C2:C10 ( value_if_true ) za koje je bilo koji uslov TRUE (1); preostale stavke se zamjenjuju sa FALSE jer value_if_false argument nije specificiran.

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

    MAXIFS – jednostavan način za pronalaženje najvišeg vrijednost s uvjetima

    Korisnici programa Excel 2019, 2021 i Excel 365 nemaju problema s kroćenjem nizova kako bi napravili vlastitu formulu MAX IF. Ove verzije Excel-a pružaju dugo očekivanu MAXIFS funkciju koja čini pronalaženje najveće vrijednosti uz dječje uvjete.

    U prvom argumentu MAXIFS-a unosite raspon u kojem treba pronaći maksimalnu vrijednost (D2: D16 u našem slučaju), au narednim argumentima možete unijeti do 126 parova raspon/kriterijum. 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 Excel MAXIFS funkcija s primjerima formule.

    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!

    Vježbanje za preuzimanje

    Primjeri formule Excel MAX IF (.xlsx datoteka)

    Michael Brown je posvećen tehnološki entuzijasta sa strašću za pojednostavljenje složenih procesa pomoću softverskih alata. Sa više od decenije iskustva u tehnološkoj industriji, usavršio je svoje vještine u Microsoft Excelu i Outlooku, kao i Google Sheets i Docs. Michaelov blog je posvećen dijeljenju svog znanja i stručnosti s drugima, pružajući jednostavne savjete i tutorijale za poboljšanje produktivnosti i efikasnosti. Bilo da ste iskusni profesionalac ili početnik, Michaelov blog nudi vrijedne uvide i praktične savjete za izvlačenje maksimuma iz ovih osnovnih softverskih alata.