Sadržaj
Udžbenik objašnjava kako koristiti ugniježđenu funkciju IF u programu Excel za provjeru više uvjeta. Također ćete naučiti nekoliko drugih funkcija koje bi mogle biti dobra alternativa korištenju ugniježđene formule u Excelu.
Kako obično implementirate logiku donošenja odluka u svojim Excel radnim listovima? U većini slučajeva upotrijebili biste formulu IF da biste testirali svoj uvjet i vratili jednu vrijednost ako je uvjet ispunjen, drugu vrijednost ako uvjet nije ispunjen. Da biste procijenili više od jednog uvjeta i vratili različite vrijednosti ovisno o rezultatima, ugniježdite više IF-ova jedan u drugi.
Iako vrlo popularan, ugniježđeni IF iskaz nije jedini način za provjeru više uvjeta u Excelu. U ovom vodiču pronaći ćete pregršt alternativa koje svakako vrijedi istražiti.
Excel ugniježđena IF izjava
Ovdje je klasična Excel ugniježđena IF formula u generičkom obliku :
IF( uvjet1, rezultat1, IF( uvjet2, rezultat2, IF( uvjet3, rezultat3, rezultat4)))Možete vidjeti da je svaka sljedeća IF funkcija ugrađena u argument value_if_false prethodne funkcije. Svaka funkcija IF zatvorena je u vlastitom skupu zagrada, ali sve su zagrade koje se zatvaraju na kraju formule.
Naša generička ugniježđena formula IF procjenjuje 3 uvjeta i vraća 4 različita rezultata (vraća se rezultat 4 ako ništa odradna knjiga za preuzimanje
Excel ugniježđena If izjava - primjeri (.xlsx datoteka)
uvjeti su TRUE). Prevedeno na ljudski jezik, ova ugniježđena IF izjava govori Excelu da učini sljedeće:Testiraj uvjet1, ako je TRUE - vrati rezultat1, ako je FALSE -testiraj uvjet2 , ako je TRUE - vrati r rezultat2 , ako je FALSE -
testiraj uvjet3 , ako je TRUE - vrati rezultat3 , ako FALSE -
return result4
Kao primjer, saznajmo provizije za određeni broj prodavača na temelju količine prodaje koju su ostvarili:
Provizija | Prodaja |
3% | 1$ - 50$ |
5% | 51 USD - 100 USD |
7% | 101 USD - 150 USD |
10% | Preko 150 USD |
U matematici, promjena redoslijeda pribrojnika ne mijenja zbroj. U Excelu promjena redoslijeda funkcija IF mijenja rezultat. Zašto? Budući da ugniježđena IF formula vraća vrijednost koja odgovara prvom TRUE uvjetu . Stoga je u vašim ugniježđenim IF izjavama vrlo važno rasporediti uvjete u pravom smjeru - od visokog prema niskom ili od niskog prema visokom, ovisno o logici vaše formule. U našem slučaju, prvo provjeravamo "najviši" uvjet, zatim "drugi najviši", i tako dalje:
=IF(B2>150, 10%, IF(B2>=101, 7%, IF(B2>=51, 5%, IF(B2>=1, 3%, ""))))
Ako smo postavili uvjetima obrnutim redoslijedom, odozdo prema gore, rezultati bi bili pogrešni jer bi naša formula stala nakon prvog logičkog testa (B2>=1) za bilo koju vrijednost veću od 1. Recimo, imamo 100 USDu prodaji - veći je od 1, tako da formula ne bi provjeravala druge uvjete i vratila 3% kao rezultat.
Ako biste radije rasporedili uvjete od niskih prema visokim, upotrijebite "manje od " i prvo procijenite "najniži" uvjet, zatim "drugi najniži", i tako dalje:
=IF($B2<1, 0%, IF($B2<51, 3%, IF($B2<101, 5%, IF($B2<=150, 7%, 10%))))
Kao što vidite, potrebno je dosta razmišljanja da se izgradi logika ugniježđene IF naredbe ispravno sve do kraja. I premda Microsoft Excel dopušta ugniježđivanje do 64 IF funkcije u jednu formulu, to nije nešto što biste stvarno željeli raditi u svojim radnim listovima. Dakle, ako vi (ili netko drugi) gledate svoju Excel ugniježđenu IF formulu pokušavajući shvatiti što ona zapravo radi, vrijeme je da preispitate svoju strategiju i vjerojatno odaberete neki drugi alat u svom arsenalu.
Za više informacija , pogledajte Excel ugniježđenu IF naredbu.
Ugniježđeni IF s uvjetima ILI/I
U slučaju da trebate procijeniti nekoliko skupova različitih uvjeta, te uvjete možete izraziti pomoću ILI kao i I funkcija, ugniježdite funkcije unutar IF naredbi, a zatim ugniježdite IF naredbe jednu u drugu.
Ugniježđeni IF u Excelu s ILI naredbama
Upotrebom funkcije OR možete provjeriti dva ili više različite uvjete u logičkom testu svake funkcije IF i vraća TRUE ako bilo koji (barem jedan) argument ILI da vrijednost TRUE. Da biste vidjeli kako to zapravo radi, razmotritesljedeći primjer.
Pretpostavimo da imate dva stupca prodaje, recimo prodaju u siječnju u stupcu B i prodaju u veljači u stupcu C. Želite provjeriti brojeve u oba stupca i izračunati proviziju na temelju većeg broja. Drugim riječima, gradite formulu sa sljedećom logikom: ako je prodaja u siječnju ili veljači veća od 150 USD, prodavač dobiva 10% provizije, ako je prodaja u siječnju ili veljači veća ili jednaka 101 USD, prodavač dobiva 7% provizije , i tako dalje.
Da biste to učinili, napišite nekoliko OF iskaza kao što je OR(B2>150, C2>150) i ugniježdite ih u logičke testove funkcija IF o kojima smo govorili gore. Kao rezultat, dobivate ovu formulu:
=IF(OR(B2>150, C2>150), 10%, IF(OR(B2>=101, C2>=101),7%, IF(OR(B2>=51, C2>=51), 5%, IF(OR(B2>=1, C2>=1), 3%, ""))))
I dodijelite proviziju na temelju većeg iznosa prodaje:
Za više primjera formula, pogledajte izjavu Excel IF OR.
Ugniježđeni IF u Excelu s izjavama AND
Ako vaši logički testovi uključuju više uvjeta, a svi bi ti uvjeti trebali procijeniti TRUE, izrazite ih pomoću funkcije AND.
Na primjer, da biste dodijelili provizije na temelju nižeg broja prodaja, uzmite gornju formulu i zamijenite ILI naredbama AND. Drugim riječima, kažete Excelu da vrati 10% samo ako je prodaja u siječnju i veljači veća od 150 USD, 7% ako je prodaja u siječnju i veljači veća ili jednaka 101 USD, i tako dalje.
=IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, ""))))
Kao rezultat, naša ugniježđena IF formula izračunava provizijuna temelju nižeg broja u stupcima B i C. Ako je bilo koji stupac prazan, provizije uopće nema jer nijedan od uvjeta I nije ispunjen:
Ako želite vratiti 0% umjesto praznih ćelija, zamijenite prazan niz (''") u zadnjem argumentu s 0%:
=IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, 0%))))
Više informacija možete pronaći ovdje: Excel IF s više I/ILI uvjeta.
VLOOKUP umjesto ugniježđenog IF-a u Excelu
Kada imate posla s "ljestvicama", tj. kontinuiranim rasponima numeričkih vrijednosti koji zajedno pokrivaju cijeli raspon, u većini slučajeva možete koristiti funkciju VLOOKUP umjesto ugniježđenih IF-ova.
Za početak, napravite referentnu tablicu kao što je prikazano na snimci zaslona u nastavku. A zatim izgradite Vlookup formulu s približno podudaranje , tj. s argumentom range_lookup postavljenim na TRUE.
Pod pretpostavkom da je vrijednost traženja u B2, a referentna tablica F2:G5, formula ide kako slijedi :
=VLOOKUP(B2,$F$2:$G$5,2,TRUE)
Napominjemo da popravljamo table_array s apsolutnim referencama ($F$2:$G$5) kako bi se formula ispravno kopirala u druge ćelije:
Postavljanjem posljednjeg argumenta vaše Vlookup formule na TRUE, govorite Excelu da traženje najbližeg podudaranja - ako nije pronađeno točno podudaranje, vrati sljedeću najveću vrijednost koja je manja od tražene vrijednosti. Kao rezultat toga, vaša formula će odgovarati ne samo točnim vrijednostima u tablici pretraživanja, već i bilo kojojvrijednosti koje su između.
Na primjer, vrijednost pretraživanja u B3 je 95 USD. Ovaj broj ne postoji u tablici pretraživanja, a Vlookup s točnim podudaranjem bi u ovom slučaju vratio pogrešku #N/A. Ali Vlookup s približnim podudaranjem nastavlja tražiti sve dok ne pronađe najbližu vrijednost koja je manja od vrijednosti traženja (koja je 50 USD u našem primjeru) i vraća vrijednost iz drugog stupca u istom retku (što je 5%).
Ali što ako je vrijednost pretraživanja manja od najmanjeg broja u tablici pretraživanja ili je ćelija za pretraživanje prazna? U tom će slučaju Vlookup formula vratiti pogrešku #N/A. Ako to nije ono što zapravo želite, ugniježdite VLOOKUP unutar IFERROR i navedite vrijednost za izlaz kada se vrijednost pretraživanja ne pronađe. Na primjer:
=IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Outside range")
Važna napomena! Da bi Vlookup formula s približnim podudaranjem radila ispravno, prvi stupac u tablici pretraživanja mora biti poredan uzlaznim redoslijedom , od najmanjeg prema najvećem.
Za više informacija pogledajte Točno podudaranje VLOOKUP u odnosu na VLOOKUP s približnim podudaranjem.
IFS izjava kao alternativa ugniježđenoj IF funkciji
U Excelu 2016 i novijim verzijama, Microsoft je uveo posebnu funkciju za procjenu višestrukih uvjeta - IFS funkciju.
IFS formula može obraditi do 127 parova logical_test / value_if_true , a prvi logički test koji daje vrijednost TRUE "pobjeđuje":
IFS(logical_test1,value_if_true1, [logical_test2, value_if_true2]...)U skladu s gornjom sintaksom, naša ugniježđena IF formula može se rekonstruirati na ovaj način:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%)
Molimo obratite pozornost da IFS funkcija vraća pogrešku #N/A ako nijedan od navedenih uvjeta nije ispunjen. Da biste to izbjegli, možete dodati još jedan logical_test / value_if_true na kraj vaše formule koja će vratiti 0 ili prazan niz ("") ili bilo koju vrijednost koju želite ako nijedna od prethodni logički testovi su TRUE:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%, TRUE, "")
Kao rezultat, naša će formula vratiti prazan niz (prazna ćelija) umjesto pogreške #N/A ako je odgovarajuća ćelija u stupcu B prazno ili sadrži tekst ili negativan broj.
Napomena. Poput ugniježđenog IF-a, Excelova IFS funkcija vraća vrijednost koja odgovara prvom uvjetu koji se procjenjuje na TRUE, zbog čega je bitan redoslijed logičkih testova u IFS formuli.
Za više informacija, umjesto toga pogledajte Excel IFS funkciju ugniježđenog IF.
CHOOSE umjesto ugniježđene IF formule u Excelu
Još jedan način testiranja više uvjeta unutar jedne formule u Excelu je korištenje funkcije CHOOSE koja je dizajnirana za vraćanje vrijednosti iz popis na temelju pozicije te vrijednosti.
Primijenjena na naš ogledni skup podataka, formula ima sljedeći oblik:
=CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%)
U prvom argumentu ( index_num ), procjenjujete sve uvjete i zbrajate rezultate. S obziromda je TRUE jednako 1, a FALSE 0, na ovaj način izračunavate poziciju vrijednosti koju treba vratiti.
Na primjer, vrijednost u B2 je 150 USD. Za ovu vrijednost, prva 3 uvjeta su TRUE, a posljednji (B2 > 150) je FALSE. Dakle, index_num jednako je 3, što znači da se vraća treća vrijednost, a to je 7%.
Savjet. Ako nijedan od logičkih testova nije TRUE, index_num je jednak 0, a formula vraća #VALUE! greška. Jednostavan popravak je omatanje CHOOSE u funkciji IFERROR ovako:
=IFERROR(CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%), "")
Za više informacija pogledajte Excel funkciju CHOOSE s primjerima formula.
Funkcija SWITCH kao sažeti oblik ugniježđenog IF-a u Excelu
U situacijama kada imate posla s fiksnim skupom unaprijed definiranih vrijednosti, a ne s ljestvicama, funkcija SWITCH može biti kompaktna alternativa složenim ugniježđene IF izjave:
SWITCH(izraz, vrijednost1, rezultat1, vrijednost2, rezultat2, …, [zadano])Funkcija SWITCH procjenjuje izraz prema popisu vrijednosti i vraća rezultat koji odgovara prvom pronađenom podudaranju.
U slučaju da želite izračunati proviziju na temelju sljedećih ocjena, a ne iznosa prodaje, možete koristiti ovaj kompaktni verzija ugniježđene IF formule u Excelu:
=SWITCH(C2, "A", 10%, "B", 7%, "C", 5%, "D", 3%, "")
Ili, možete napraviti referentnu tablicu kao što je prikazano na snimci zaslona u nastavku i koristiti reference ćelija umjesto tvrdo kodiranih vrijednosti:
=SWITCH(C2, $F$2, $G$2, $F$3, $G$3, $F$4, $G$4, $F$5, $G$5, "")
Molim vasprimijetite da zaključavamo sve reference osim prve sa znakom $ kako bismo spriječili njihovu promjenu prilikom kopiranja formule u druge ćelije:
Napomena. Funkcija SWITCH dostupna je samo u programu Excel 2016 i novijim verzijama.
Za više informacija pogledajte funkciju SWITCH - kompaktni oblik ugniježđene izjave IF.
Spajanje više funkcija IF u programu Excel
Kao što je spomenuto u prethodnom primjeru, funkcija SWITCH uvedena je samo u Excelu 2016. Za rješavanje sličnih zadataka u starijim verzijama Excela, možete kombinirati dvije ili više IF naredbi pomoću operatora Concatenate (&) ili funkcije CONCATENATE .
Na primjer:
=(IF(C2="a", 10%, "") & IF(C2="b", 7%, "") & IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1
Ili
=CONCATENATE(IF(C2="a", 10%, ""), IF(C2="b", 7%, ""), IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1
Kako možda imate primijetili, množimo rezultat s 1 u obje formule. To se radi za pretvaranje niza vraćenog formulom Concatenate u broj. Ako je vaš očekivani izlaz tekst, tada operacija množenja nije potrebna.
Za više informacija pogledajte funkciju CONCATENATE u Excelu.
Možete vidjeti da Microsoft Excel nudi pregršt dobrih alternativa na ugniježđene IF formule i nadamo se da vam je ovaj vodič dao neke naznake o tome kako ih iskoristiti u svojim radnim listovima. Da biste pobliže pogledali primjere o kojima se govori u ovom vodiču, slobodno možete preuzeti naš primjer radne knjige u nastavku. Zahvaljujem vam na čitanju i nadam se da se vidimo na našem blogu sljedeći tjedan!