Sadržaj
Č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.
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)