Sadržaj
Vodič objašnjava kako koristiti ugniježđenu funkciju IF u Excelu 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 svoje Excel radne listove? U većini slučajeva, koristili 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 izraz nije jedini način za provjeru više uslova u Excel-u. U ovom vodiču ćete pronaći pregršt alternativa koje svakako vrijedi istražiti.
Excel ugniježđena IF izjava
Evo klasične Excel ugniježđene IF formule u generičkom obliku :
IF( uslov1, rezultat1, IF( uslov2, rezultat2, IF( uslov3, rezultat3, rezultat4)))Možete vidjeti da je svaka sljedeća IF funkcija ugrađena u value_if_false argument prethodne funkcije. Svaka IF funkcija je zatvorena u svoj skup zagrada, ali sve zagrade su na kraju formule.
Naša generička ugniježđena IF formula procjenjuje 3 uslova i vraća 4 različita rezultata (vraća se rezultat 4 ako ništa odradna sveska za preuzimanje
Excel ugniježđen If naredba - primjeri (.xlsx datoteka)
uslovi su TAČNI). Prevedeno na ljudski jezik, ova ugniježđena IF izjava govori Excelu da uradi sljedeće:Test uslov1, ako je TRUE - vrati rezultat1, ako je FALSE -test uslov2 , ako je TRUE - vrati r rezultat2 , ako je FALSE -
testiraj uslov3 , ako je TRUE - vrati rezultat3 , ako FALSE -
povrat rezultat4
Kao primjer, hajde da saznamo provizije za određeni broj prodavača na osnovu količine prodaje koju su ostvarili:
Provizija | Prodaja |
3% | $1 - $50 |
5% | $51 - $100 |
7% | $101 - $150 |
10% | Preko $150 |
U matematici, promjena redoslijeda sabiraka ne mijenja zbir. U Excelu, promjena redoslijeda IF funkcija mijenja rezultat. Zašto? Zato što ugniježđena IF formula vraća vrijednost koja odgovara prvom TRUE uslovu . Zbog toga je u vašim ugniježđenim IF izjavama vrlo važno rasporediti uslove u pravom smjeru - visoko prema niskom ili nisko prema visokom, ovisno o logici vaše formule. U našem slučaju prvo provjeravamo "najviši" uslov, 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 uvjeti obrnutim redoslijedom, odozdo prema gore, rezultati bi bili pogrešni jer bi naša formula prestala nakon prvog logičkog testa (B2>=1) za bilo koju vrijednost veću od 1. Recimo, imamo 100 $u 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 niskog do visokog, onda koristite "manje od " operator i prvo procijenite "najniži" uslov, 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žđenog IF izraza ispravno sve do kraja. I iako Microsoft Excel dozvoljava ugniježđenje do 64 IF funkcije u jednu formulu, to nije nešto što biste zaista željeli raditi u svojim radnim listovima. Dakle, ako vi (ili neko drugi) gledate u svoju ugniježđenu IF formulu u Excelu pokušavajući shvatiti što ona zapravo radi, vrijeme je da preispitate svoju strategiju i vjerovatno odaberete drugi alat u svom arsenalu.
Za više informacija , pogledajte Excel naredbu ugniježđeno IF.
Ugniježđeno IF sa OR/AND uvjetima
U slučaju da trebate procijeniti nekoliko skupova različitih uslova, te uslove možete izraziti koristeći OR kao i AND funkcija, ugniježdite funkcije unutar IF naredbi, a zatim ugniježdite IF izraze jedne u druge.
Ugniježđeno IF u Excelu sa OR naredbama
Upotrebom funkcije OR možete provjeriti dva ili više različite uslove u logičkom testu svake IF funkcije i vrati TRUE ako bilo koji (barem jedan) od OR argumenta procijeni na TRUE. Da biste vidjeli kako to zapravo funkcionira, razmotritesljedeći primjer.
Pretpostavimo da imate dvije kolone prodaje, recimo januarska prodaja u koloni B i februarska prodaja u koloni C. Želite provjeriti brojeve u obje kolone i izračunati proviziju na osnovu većeg broja. Drugim riječima, gradite formulu sa sljedećom logikom: ako je prodaja u januaru ili februaru veća od 150 USD, prodavac dobija 10% provizije, ako je prodaja u januaru ili februaru veća ili jednaka 101 USD, prodavac dobija 7% provizije , i tako dalje.
Da biste to učinili, napišite nekoliko OF naredbi kao što je OR(B2>150, C2>150) i ugnijezdite ih u logičke testove IF funkcija o kojima smo gore raspravljali. Kao rezultat, dobijate 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 imate proviziju dodijeljenu na osnovu većeg iznosa prodaje:
Za više primjera formule, pogledajte izraz IF OR programa Excel.
Ugniježđeno IF u Excelu sa AND naredbama
Ako vaši logički testovi uključuju više uslova, a svi ti uvjeti bi trebali biti TRUE, izrazite ih korištenjem funkcije I.
Na primjer, da biste dodijelili provizije na osnovu manjeg broja prodaja, uzmite gornju formulu i zamijenite OR sa AND izjavama. Drugačije rečeno, kažete Excelu da vrati 10% samo ako je prodaja u januaru i februaru veća od 150 USD, 7% ako je prodaja u januaru i februaru 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 osnovu nižeg broja u kolonama B i C. Ako je bilo koja kolona prazna, uopće nema provizije jer nijedan od uvjeta I nije ispunjen:
Ako ste želim vratiti 0% umjesto praznih ćelija, zamijenite prazan niz (''") u posljednjem 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 sa više AND/OR uslova.
VLOOKUP umjesto ugniježđenog IF u Excelu
Kada imate posla sa "skalama", 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 tabelu kao što je prikazano na slici ispod. A zatim napravite formulu Vlookup sa približno podudaranje , tj. sa argumentom range_lookup postavljenim na TRUE.
Pod pretpostavkom da je vrijednost pretraživanja u B2 i referentna tablica F2:G5, formula ide kako slijedi :
=VLOOKUP(B2,$F$2:$G$5,2,TRUE)
Obratite pažnju da popravljamo table_array sa apsolutnim referencama ($F$2:$G$5) da se formula ispravno kopira u druge ćelije:
Postavljanjem posljednjeg argumenta vaše Vlookup formule na TRUE, govorite Excelu da traži najbliže podudaranje - ako se ne pronađe tačno podudaranje, vrati sljedeću najveću vrijednost koja je manja od vrijednosti traženja. Kao rezultat, vaša formula će odgovarati ne samo tačnim vrijednostima u tabeli za pretraživanje, već i bilo kojojvrijednosti koje padaju između.
Na primjer, vrijednost pretraživanja u B3 je 95 USD. Ovaj broj ne postoji u tabeli za traženje, a Vlookup sa tačnim podudaranjem bi u ovom slučaju vratio grešku #N/A. Ali Vlookup s približnim podudaranjem nastavlja pretraživanje sve dok ne pronađe najbližu vrijednost koja je manja od vrijednosti pretraživanja (koja je 50 USD u našem primjeru) i vrati vrijednost iz druge kolone u istom redu (koja je 5%).
Ali što ako je vrijednost traženja manja od najmanjeg broja u tabeli za pretraživanje ili je ćelija za pretraživanje prazna? U ovom slučaju, Vlookup formula će vratiti grešku #N/A. Ako to nije ono što zapravo želite, ugniježdite VLOOKUP unutar IFERROR i dostavite vrijednost za izlaz kada vrijednost pretraživanja nije pronađena. Na primjer:
=IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Outside range")
Važna napomena! Da bi Vlookup formula sa približnim podudaranjem radila ispravno, prva kolona u tabeli za pretraživanje mora biti sortirana u uzlaznom redoslijedu , od najmanjeg do najvećeg.
Za više informacija pogledajte Točno podudaranje VLOOKUP naspram približnog podudaranja VLOOKUP.
IFS izraz kao alternativa ugniježđenoj IF funkciji
U Excelu 2016 i novijim verzijama, Microsoft je uveo posebnu funkciju za procjenu više uslova - funkciju IFS.
IFS formula može obraditi do 127 logički_test / value_if_true parova, a prvi logički test koji procjenjuje TRUE "pobjeđuje":
IFS(logički_test1,value_if_true1, [logical_test2, value_if_true2]...)U skladu s gornjom sintaksom, naša ugniježđena IF formula se može rekonstruirati na ovaj način:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%)
Obratite pažnju da IFS funkcija vraća greš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 ništa 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 formula će vratiti prazan niz (prazna ćelija) umjesto greške #N/A ako je odgovarajuća ćelija u stupcu B prazno ili sadrži tekst ili negativan broj.
Napomena. Poput ugniježđenog IF, 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 od ugniježđenog IF.
CHOOSE umjesto ugniježđene IF formule u Excelu
Drugi način testiranja više uslova unutar jedne formule u Excelu je korištenje funkcije CHOOSE, koja je dizajnirana da vrati vrijednost iz lista zasnovana na poziciji te vrijednosti.
Primijenjena na naš uzorak podataka, formula poprima sljedeći oblik:
=CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%)
U prvom argumentu ( index_num ), procjenjujete sve uslove i zbrajate rezultate. Datoda je TRUE jednako 1, a FALSE 0, na ovaj način izračunavate poziciju vrijednosti koju želite vratiti.
Na primjer, vrijednost u B2 je 150 USD. Za ovu vrijednost, prva 3 uslova su TRUE, a posljednji (B2> 150) je FALSE. Dakle, indeks_num je jednako 3, što znači da je vraćena 3. vrijednost, što je 7%.
Savjet. Ako nijedan od logičkih testova nije TRUE, broj_indeksa je jednak 0, a formula vraća #VRIJEDNOST! greška. Jednostavna popravka je umotavanje CHOOSE u funkciju IFERROR na sljedeći način:
=IFERROR(CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%), "")
Za više informacija, pogledajte Excel funkciju CHOOSE s primjerima formule.
SWITCH funkcija kao sažeti oblik ugniježđenog IF u Excelu
U situacijama kada imate posla s fiksnim skupom unaprijed definiranih vrijednosti, a ne skalama, funkcija SWITCH može biti kompaktna alternativa složenim ugniježđeni IF izrazi:
SWITCH(izraz, vrijednost1, rezultat1, vrijednost2, rezultat2, …, [podrazumevano])Funkcija SWITCH procjenjuje izraz prema listi vrijednosti i vraća rezultat koji odgovara prvom pronađenom podudaranju.
U slučaju da želite izračunati proviziju na osnovu sljedećih ocjena, a ne iznosa prodaje, možete koristiti ovaj kompakt 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 slici ispod 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, "")
Molimprimijetite da zaključavamo sve reference osim prve sa znakom $ kako bismo spriječili njihovu promjenu pri kopiranju formule u druge ćelije:
Napomena. Funkcija SWITCH dostupna je samo u Excelu 2016 i novijim verzijama.
Za više informacija pogledajte funkciju SWITCH - kompaktni oblik ugniježđene IF naredbe.
Konkatenacija višestrukih IF funkcija u Excelu
Kao što je spomenuto u prethodnom primjeru, funkcija SWITCH uvedena je samo u Excelu 2016. Za rukovanje sličnim zadacima u starijim verzijama Excela, možete kombinirati dva ili više IF izraza koristeći operator Concatenate (&) ili CONCATENATE funkciju .
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
Kao što možda imate primijetili smo, rezultat množimo sa 1 u obje formule. To se radi za pretvaranje stringa koji vraća formula konkatenacije 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 pruža 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 bliže pogledali primjere o kojima se govori u ovom vodiču, možete preuzeti našu radnu svesku u nastavku. Zahvaljujem vam na čitanju i nadam se da se vidimo na našem blogu sljedeće sedmice!