Funkcija IF – ugnežđene formule i izbegavanje grešaka

Funkcija IF – ugnežđene formule i izbegavanje grešaka

Funkcija IF vam omogućava da logički uporedite vrednost i ono što očekujete tako što testira stanje i vraća rezultat ako je ishod True ili False.

  • =IF(nešto ima vrednost True, uradite nešto, u suprotnom uradite nešto drugo)

Stoga, IF izjava može da ima dva rezultata. Prvi rezultat označava da li je poređenje tačno, a drugi da li je netačno.

IF izjave su veoma robusne i predstavljaju osnov velikog broja modela unakrsnih tabela, ali su i osnovni uzrok mnogo problema sa unakrsnim tabelama. U idealnom slučaju IF izjava treba da se odnosi na minimalne uslove, kao što su, recimo, muško/žensko, da/ne/možda, ali ponekad ćete možda morati da procenite složenije scenarije koji zahtevaju da zajedno ugnezdite* više od 3 IF funkcije.

*„Ugnežđivanje“ se odnosi na spajanje više funkcija u jednu.

Koristite funkciju IF, jednu od logičkih funkcija, da biste vratili jednu vrednost ako je uslov ispunjen, a drugu vrednost ako nije.

Sintaksa

IF(logički_test, vrednost_ako_je_tačno, [vrednost_ako_je_netačno])

Na primer:

  • =IF(A2>B2,„Prekoračen budžet“,„U redu“)

  • =IF(A2=B2,B4-A4,"")

Ime argumenta

Opis

logički_test   

(obavezno)

Uslov koji želite da testirate.

vrednost_ako_je_true   

(obavezno)

Vrednost koja želite da se vrati ako logički_tekst ima rezultat TRUE.

vrednost_ako_je_false   

(opcionalno)

Vrednost koja želite da se vrati ako logički_tekst ima rezultat FALSE.

Napomene

Iako Excel omogućava da ugnezdite do 64 različite funkcije IF, to se nikako ne preporučuje. Zašto?

  • Više IF izjava zahteva dosta razmišljanja da biste ih pravilno napravili i utvrdili da li njihova logika može ispravno da izračuna svaki uslov do samog kraja formule. Ako formulu ne ugnezdite sa stopostotnom preciznošću, ona će možda funkcionisati u 75% slučajeva, ali će u 25% slučajeva vratiti neočekivane rezultate. Nažalost, veoma su male šanse da ćete primetiti tih 25% neočekivanih rezultata.

  • Veliki broj IF izjava može biti izuzetno težak za održavanje, posebno ako se na njih vratite nakon nekog vremena i pokušate da shvatite šta ste vi, ili još gore neko drugi, želeli da postignete.

Ako vam se učini da neka IF izjava samo raste bez naznaka da će to prestati, vreme je da pustite miš i osmislite novi strategiju.

Hajde da pogledamo kako da ispravno napravite kompleksnu ugnežđenu IF izjavu pomoću više IF izjava i kako da prepoznate da je došlo vreme da koristite neku drugu alatku iz Excel arsenala.

Primeri

Sledi primer relativno standardne ugnežđene IF izjave koja konvertuje rezultate sa učeničkih testova u ocenu u obliku slova.

Složeni ugnežđen IF izraz – formula u ćeliji E2 jeste =IF(B2>97,"A+",IF(B2>93,"A",IF(B2>89,"A-",IF(B2>87,"B+",IF(B2>83,"B",IF(B2>79,"B-",IF(B2>77,"C+",IF(B2>73,"C",IF(B2>69,"C-",IF(B2>57,"D+",IF(B2>53,"D",IF(B2>49,"D-","F"))))))))))))
  • =IF(D2>89,"A",IF(D2>79,"B",IF(D2>69,"C",IF(D2>59,"D","F"))))

    Ova kompleksna ugnežđena IF izjava prati jednostavnu logiku:

  1. Ako je rezultat na testu (u ćeliji D2) veći od 89, učenik dobija A

  2. Ako je rezultat na testu veći od 79, učenik dobija B

  3. Ako je rezultat na testu veći od 69, učenik dobija C

  4. Ako je rezultat na testu veći od 59, učenik dobija D

  5. U drugim slučajevima, učenik dobija F

Ovaj konkretni primer je relativno bezbedan jer se veza između rezultata na testu i ocene verovatno neće menjati, tako da formula ne zahteva previše održavanja. Ali, šta se dešava ako, na primer, treba da segmentirate ocene na A+, A i A- (i tako dalje)? Sada ovu IF izjavu sa četiri uslova treba da prepišete da biste dobili 12 uslova! Evo kako bi sada izgledala vaša formula:

  • =IF(B2>97,"A+",IF(B2>93,"A",IF(B2>89,"A-",IF(B2>87,"B+",IF(B2>83,"B",IF(B2>79,"B-", IF(B2>77,"C+",IF(B2>73,"C",IF(B2>69,"C-",IF(B2>57,"D+",IF(B2>53,"D",IF(B2>49,"D-","F"))))))))))))

Funkcionalno je i dalje tačna i radiće kako treba, ali će vam biti potrebno mnogo vremena da je napišete, a još više da je testirate kako biste se uverili da radi ono što želite. Još jedan veliki problem je to što rezultate i odgovarajuće ocene morate da unesete ručno. Koja je verovatnoća da ćete slučajno pogrešiti u kucanju? Zamislite sada da ovo morate da uradite 64 puta sa kompleksnijim uslovima! Moguće je, naravno, ali da li zaista želite da uložite toliko truda uz tako veliku mogućnost da napravite greške koje biste zaista teško uočili?

Savet : Svaka funkcija u programu Excel zahteva otvorenu i zatvorenu zagradu (). Excel će pokušati da vam pomogne da otkrijete šta gde treba da stoji tako što će bojama označavati različite delove formule dok ih uređujete. Na primer, ako treba da uredite formulu navedenu iznad, dok pomerate kursor pored svake zatvorene zagrade „)“, njena odgovarajuća otvorena zagrada obojiće se u istu boju. To može da bude naročito korisno u kompleksnim ugnežđenim formulama kada pokušavate da otkrijete da li imate dovoljno odgovarajućih zagrada.

Dodatni primeri

Sledi veoma čest primer izračunavanja provizije na prodaju na osnovu dostignutog nivoa prihoda.

Formula u ćeliji D9 jeste IF(C9>15000,20%,IF(C9>12500,17,5%,IF(C9>10000,15%,IF(C9>7500,12,5%,IF(C9>5000,10%,0)))))
  • =IF(C9>15000,20%,IF(C9>12500,17.5%,IF(C9>10000,15%,IF(C9>7500,12.5%,IF(C9>5000,10%,0)))))

Ova formula kaže: AKO(C9 je veće od 15.000, prikaži 20%, AKO(C9 je veće od 12.500, prikaži 17,5% itd...

Iako je veoma slična formuli u prethodnom primeru sa ocenama, ova formula odlično pokazuje koliko održavanje velikih IF izjava može da bude teško – šta biste morali da uradite ako bi vaša organizacija odlučila da doda nove nivoe kompenzacije i da možda čak i promeni postojeće vrednosti dolara i procenata? Imali biste mnogo posla!

Savet : Možete da umetnete prelome reda u polje za formulu da bi dugačke formule bile lakše za čitanje. Pritisnite kombinaciju tastera ALT+ENTER pre teksta koji želite da prebacite u novi red.

Evo primera sa izračunavanjem provizije u kojem logika nije na mestu:

Formula u ćeliji D9 ima pogrešan redosled =IF(C9>5000,10%,IF(C9>7500,12,5%,IF(C9>10000,15%,IF(C9>12500,17,5%,IF(C9>15000,20%,0)))))

Da li vidite šta nije u redu? Uporedite redosled poređenja prihoda sa prethodnim primerom. U kom smeru se ovaj kreće? Tako je, kreće se odozdo nagore (od 5000 USD do 15.000 USD), a ne obrnuto. Ali, zašto je to toliko veliki problem? Veliki je problem zbog toga što formula ne može da prođe prvu procenu ni za jednu vrednost iznad 5000 USD. Recimo da imate prihod od 12.500 USD – IF izjava će prikazati 10% jer je to veće od 5000 USD i tu će stati. To može da bude veoma problematično jer u velikom broju situacija ovakve greške ne budu primećene dok ne naprave štetu. Pošto znate da rad sa kompleksnim ugnežđenim IF izjavama sadrži neke ozbiljne zamke, šta možete da uradite? U većini slučajeva možete da koristite funkciju VLOOKUP umesto da pravite kompleksnu formulu pomoću funkcije IF. Kada koristite VLOOKUP, prvo morate da napravite referentnu tabelu:

Formula u ćeliji D2 jeste =VLOOKUP(C2,C5:D17,2,TRUE)
  • =VLOOKUP(C2,C5:D17,2,TRUE)

Ova formula kaže da treba tražiti vrednost iz ćelije C2 u opsegu C5:C17. Ako se vrednost pronađe, vraća se odgovarajuća vrednost iz istog reda u koloni D.

Formula u ćeliji C9 jeste =VLOOKUP(B9,B2:C6,2,TRUE)
  • =VLOOKUP(B9,B2:C6,2,TRUE)

Slično tome, ova formula traži vrednost iz ćelije B9 u opsegu B2:B22. Ako se vrednost pronađe, vraća se odgovarajuća vrednost iz istog reda u koloni C.

Napomena : Obe ove VLOOKUP funkcije koriste argument TRUE pri kraju formula, što znači da želimo da traže približno podudaranje. Drugim rečima, pronaći će tačne vrednosti u tabeli za pronalaženje, kao i sve vrednosti koje su između njih. U ovom slučaju tabele za pronalaženje treba sortirati po rastućem redosledu, od najmanje do najveće.

Mnogo detaljnije informacije o funkciji VLOOKUP možete da pronađete ovde, ali ovo je svakako mnogo jednostavnije od kompleksne ugnežđene IF izjave u 12 nivoa! Postoje i neke druge, manje očigledne, prednosti:

  • VLOOKUP referentne tabele su otvorene i lako ih je pregledati.

  • Vrednosti u tabeli se lako mogu ažurirati i nikada ne morate da menjate formulu ako se uslovi promene.

  • Ako ne želite da ljudi vide ili menjaju referentnu tabelu, treba samo da je smestite na drugi radni list.

Da li ste znali?

Sada postoji funkcija IFS koja može da zameni više ugrađenih IF izjava jednom funkcijom. Na osnovu toga bismo prvi primer sa ocenama, koji ima 4 ugnežđene IF funkcije,

  • =IF(D2>89,"A",IF(D2>79,"B",IF(D2>69,"C",IF(D2>59,"D","F"))))

mogli znatno da pojednostavimo jednom IFS funkcijom:

  • =IFS(D2>89,"A",D2>79,"B",D2>69,"C",D2>59,"D",TRUE,"F")

Funkcija IFS je odlična jer ne morate da brinete o svim tim IF izjavama i zagradama.

Napomena : Ova funkcija je dostupna samo ako imate pretplatu na Office 365. Ako ste pretplaćeni na Office 365, proverite da li imate najnoviju verziju sistema Office.

Isprobajte Office 365 ili najnoviju verziju programa Excel

Potrebna vam je dodatna pomoć?

Možete uvek da postavite pitanje stručnjaku u zajednici Excel Tech Community, dobijete podršku u zajednici Answers community ili predložite novu funkciju ili poboljšanje na sajtu Excel User Voice.

Srodne teme

Video: Napredne funkcije IF
Funkcija IFS (Office 365, Excel 2016 i novije verzije)
Funkcija COUNTIF će računati vrednosti na osnovu jednog kriterijuma
Funkcija COUNTIFS će računati vrednosti na osnovu više kriterijuma
Funkcija SUMIF će sabirati vrednosti na osnovu jednog kriterijuma
Funkcija SUMIFS će sabirati vrednosti na osnovu više kriterijuma
Funkcija AND
Funkcija OR
Funkcija VLOOKUP
Pregled formula u programu Excel
Kako izbeći neispravne formule
Upotreba provere grešaka radi otkrivanja grešaka u formulama
Logičke funkcije
Excel funkcije (abecedno)
Excel funkcije (prema kategoriji)

Unapredite veštine
Istražite obuku
Prvi nabavite nove funkcije
Pridružite se Office Insider korisnicima

Da li su vam ove informacije koristile?

Hvala vam na povratnim informacijama!

Hvala za povratne informacije! Zvuči da će biti od pomoći ako vas povežemo sa našim agentima Office podrške.

×