Funcția IF vă permite să efectuați o comparație logică între o valoare și lucrul la care vă așteptați atunci când testați pentru o condiție și returnați un rezultat dacă este True sau False.
-
=IF(ceva este True, faceți ceva; altfel, faceți altceva)
Așadar, o instrucțiune IF poate avea două rezultate. Primul rezultat apare când comparația este True, al doilea când este False.
Instrucțiunile IF sunt incredibil de robuste și stau la baza multor modele de foi de calcul, dar mai sunt și principala cauză a multor probleme din foile de calcul. În mod ideal, o instrucțiune IF trebuie să se aplice la condiții minime, cum ar fi Masculin/Feminin, Da/Nu/Poate, ca să menționăm doar câteva, însă, uneori, poate fi necesar să evaluați scenarii mai complexe, care necesită imbricarea* a mai mult de 3 funcții IF.
* "Imbricare" se referă la practica asocierii mai multor funcții într-o singură formulă.
Utilizați funcția IF, una dintre funcțiile logice, pentru a returna o valoare dacă o condiție este adevărată și o altă valoare dacă este falsă.
Sintaxă
IF(test_logic, valoare_dacă_adevărat, [valoare_dacă_fals])
De exemplu:
-
=IF(A2>B2;"Peste buget";"OK")
-
=IF(A2=B2,B4-A4,"")
Nume argument |
Descriere |
test_logic (obligatoriu) |
Condiția pe care doriți să o testați. |
valoare_dacă_adevarat (obligatoriu) |
Valoarea care doriți să fie returnată dacă rezultatul pentru test_logic este TRUE. |
valoare_dacă_fals (opțional) |
Valoarea care doriți să fie returnată dacă rezultatul pentru test_logic este FALSE. |
Observații
Deși Excel vă va permite să imbricați până la 64 de funcții IF diferite, nu se recomandă deloc să faceți acest lucru. De ce?
-
Instrucțiunile IF multiple necesită foarte multe eforturi de gândire pentru a fi construite corect, deci asigurați-vă că logica acestora poate să calculeze corect fiecare condiție până la sfârșit. Dacă nu imbricați formula 100% corect, atunci poate funcționa 75% din timp, dar poate returna rezultate neașteptate în restul de 25% din timp. Din păcate, posibilitatea de a avea parte de acest 25% este redusă.
-
Instrucțiunile IF multiple pot deveni incredibil de dificil de întreținut, mai ales atunci când reveniți mai târziu și încercați să vă dați seama ce doreați să faceți dvs. sau o altă persoană.
Dacă vă găsiți cu o instrucțiune IF care pare să continue să crească fără niciun scop, este timpul să puneți mouse-ul jos și să regândiți strategia.
Să vedem cum să creați corect o instrucțiune IF imbricată complexă utilizând mai multe fișiere IFs și când să recunoaștem că este timpul să utilizați un alt instrument din arsenalul dvs. Excel.
Exemple
Iată un exemplu de instrucțiune IF imbricată relativ standard pentru a efectua conversia punctajelor de testare a elevilor în calificativul cu litere echivalent.

-
=IF(D2>89,"A",IF(D2>79,"B",IF(D2>69,"C",IF(D2>59,"D","F"))))
Această instrucțiune IF imbricată complexă se bazează pe o logică simplă:
-
Dacă Punctajul testului (din celula D2) este mai mare decât 89, atunci elevul primește A
-
Dacă Punctajul testului este mai mare decât 79, atunci elevul primește B
-
Dacă Punctajul testului este mai mare decât 69, atunci elevul primește C
-
Dacă Punctajul testului este mai mare decât 59, atunci elevul primește D
-
Altfel, elevul primește un F
Acest exemplu particular este relativ sigur, deoarece nu este probabil ca corelația dintre punctajele de test și notele cu litere să se modifice, deci nu va necesita multă întreținere. Dar iată o idee: ce se întâmplă dacă trebuie să segmentați punctajele între A+, A și A - (și așa mai departe)? Acum, instrucțiunea IF cu patru condiții trebuie să fie rescrisă pentru a avea 12 condiții! Iată cum ar arăta formula dvs. acum:
-
=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"))))))))))))
Este încă funcțional corect și va funcționa așa cum vă așteptați, dar durează mult timp să scrieți și să testați mai mult, pentru a vă asigura că face ceea ce doriți. O altă problemă evidentă este că a trebuit să introduceți manual punctajele și notele cu litere echivalente. Care sunt șansele să aveți accidental o greșeală de ortografie? Acum imaginați-vă că încercați să faceți acest lucru de 64 de ori cu condiții mai complexe! Sigur, este posibil, dar chiar vrei să te supune la acest tip de efort și erori probabile, care va fi foarte greu de depistat?
Sfat: Fiecare funcție din Excel necesită o paranteză de deschidere și închidere (). Excel va încerca să vă ajute să vă dați seama unde se duce, colorând diferite părți ale formulei atunci când o editați. De exemplu, dacă editați formula de mai sus, în timp ce mutați cursorul peste fiecare dintre parantezele de final ")", paranteza de deschidere corespunzătoare va avea aceeași culoare. Acest lucru poate fi util mai ales în formulele imbricate complexe atunci când încercați să vă dați seama dacă aveți suficiente paranteze potrivite.
Exemple suplimentare
Iată un exemplu foarte comun de calcul al unui comision de vânzări pe baza nivelurilor de venituri realizate.

-
=IF(C9>15000,20%,IF(C9>12500,17.5%,IF(C9>10000,15%,IF(C9>7500,12.5%,IF(C9>5000,10%,0)))))
Această formulă afirmă că IF(C9 este mai mare decât 15.000, atunci returnează 20%, IF(C9 este mai mare decât 12.500, atunci returnează 17,5% și așa mai departe...
Deși este remarcabil de asemănătoare cu exemplul anterior cu punctajele, această formulă este un exemplu foarte bun despre cât de dificil poate fi să păstrați instrucțiuni IF mari: ce ar trebui să faceți dacă organizația dvs. ar decide să adauge noi niveluri de compensare și, eventual, chiar să modifice valorile dolarului sau procentelor existente? Ai avea mult de lucru pe mâini!
Sfat: Puteți să inserați sfârșituri de linie în bara de formule pentru a face formulele lungi mai ușor de citit. Apăsați pur și simplu ALT+ENTER înaintea textului pe care doriți să îl încadrați într-o linie nouă.
Iată un exemplu al scenariului de comision cu logică incorectă:

Poți să vezi ce s-a întâmplat? Comparați ordinea comparațiilor între venituri cu exemplul anterior. În ce sens merge aceasta? Așa este, merge de jos în sus (de la 5.000 la 15.000 de lei), nu invers. Dar de ce este atât de important acest lucru? Este important, deoarece formula nu poate trece prima evaluare pentru nicio valoare de peste 5.000 lei. Să presupunem că aveți venituri de 12.500 DE LEI - instrucțiunea IF va returna 10%, deoarece este mai mare decât 5.000 de lei și se va opri acolo. Acest lucru poate fi incredibil de problematic, deoarece, în multe situații, aceste tipuri de erori trec neobservate până când au avut un impact negativ. Așadar, acum că știți că există unele probleme serioase cu instrucțiunile IF imbricate complexe, ce este de făcut? În majoritatea cazurilor, puteți utiliza funcția VLOOKUP în loc să construiți o formulă complexă cu funcția IF. Utilizând VLOOKUP, trebuie mai întâi să creați un tabel de referințe:

-
=VLOOKUP(C2,C5:D17,2,TRUE)
Această formulă sugerează căutarea valorii din C2 în zona C5:C17. Dacă valoarea este găsită, atunci se returnează valoarea corespunzătoare din același rând din coloana D.

-
=VLOOKUP(B9,B2:C6,2,TRUE)
În mod similar, această formulă caută valoarea din celula B9 în zona B2:B22. Dacă valoarea este găsită, atunci se returnează valoarea corespunzătoare din același rând din coloana C.
Notă: Ambele funcții VLOOKUP utilizează argumentul TRUE la sfârșitul formulelor, ceea ce înseamnă că dorim ca ele să caute o potrivire aproximativă. Cu alte cuvinte, va potrivi valorile exacte din tabelul de căutare, precum și orice valori care se încadrează între ele. În acest caz, tabelele de căutare trebuie să fie sortate în ordine ascendentă, de la cele mai mici la cele mai mari.
VLOOKUP este descris mult mai detaliat aici, dar acest lucru este cu siguranță mult mai simplu decât o instrucțiune IF imbricată complexă de 12 niveluri! Există și alte avantaje mai puțin evidente, precum:
-
Tabelele de referințe VLOOKUP sunt accesibile și simplu de văzut.
-
Valorile de tabel pot fi actualizate cu ușurință și nu trebuie niciodată să ajustați formula dacă se schimbă condițiile.
-
Dacă nu doriți ca alte persoane să vadă sau să interfereze cu tabelul de referință, amplasați-l pur și simplu în altă foaie de lucru.
Știați?
Acum există o funcție IFS care poate înlocui mai multe instrucțiuni IF imbricate cu o singură funcție. Așadar, în locul exemplului nostru inițial cu punctajele, care are 4 funcții IF imbricate:
-
=IF(D2>89,"A",IF(D2>79,"B",IF(D2>69,"C",IF(D2>59,"D","F"))))
Se poate face mult mai simplă, cu o singură funcție IFS:
-
=IFS(D2>89,"A",D2>79,"B",D2>69,"C",D2>59,"D",TRUE,"F")
Funcția IFS este grozavă, deoarece nu trebuie să vă faceți griji pentru toate aceste instrucțiuni IF și paranteze.
Notă: Această caracteristică este disponibilă doar dacă aveți un abonament Microsoft 365. Dacă sunteți abonat la Microsoft 365, asigurați-vă că aveți cea mai recentă versiune de Office.Cumpărați sau încercați Microsoft 365
Aveți nevoie de ajutor suplimentar?
Puteți oricând să întrebați un expert din Comunitatea tehnică Excel sau să obțineți asistență în Comunități.
Subiecte asociate
funcția IFS (Microsoft 365, Excel 2016 și versiuni mai recente) Funcția COUNTIF va contoriza valorile pe baza unui singur criteriu Funcția COUNTIFS va contoriza valorile pe baza mai multor criterii Funcția SUMIF va însuma valorile pe baza unui singur criteriu Funcția SUMIFS funcția va însuma valorile pe baza mai multor criterii FUNCȚIA AND FUNCȚIA OR Funcția VLOOKUPPrezentare generală a formulelor din ExcelCum se evită formulele eronate Detectarea erorilordin formule Funcții logiceFuncțiiexcel (în ordine alfabetică)Funcții Excel (după categorie)