Tot ceea ce trebuie sa stiti despre functia IF din Excel daca sunteti incepator.

Functia IF este una dintre cele mai populare si utile functii din Excel.

Utilizati IF pentru a-i cere Excel sa testeze o conditie sau mai multe conditii logice si sa returneze o valoare daca conditiile sunt indeplinite, respectiv alta valoare daca nu sunt indeplinite.

In acest articol, vom invata sintaxa si utilizarile obisnuite ale functiei Excel IF, apoi vom arunca o privire mai atenta asupra exemplelor, cu speranta ca se vor dovedi utile atat incepatorilor cat si utilizatorilor mai experimentati.

 1. Functia Excel IF – sintaxa si utilizare

Functia IF este una dintre functiile logice Excel care evalueaza o anumita conditie si returneaza valoarea pe care o specificati daca conditia este TRUE (ADEVARATA), respectiv o alta valoare daca conditia este FALSE (FALSA).

Sintaxa generala a functiei IF este urmatoarea:

IF(test logic, [valoarea daca testul este ADEVARAT], [valoarea daca testul este FALS])

Dupa cum vedeti, functia IF are 3 argumente, insa doar primul este obligatoriu, celelalte doua fiind optionale.

test logic (obligatoriu) – o valoare sau expresie logica care poate fi ADEVARATA sau FALSA. In acest argument, puteti specifica o valoare text, o data calendaristica, un numar sau orice operator de comparatie.

De pilda, testul logic poate fi exprimat astfel:

A3 = „Bucuresti”

B3 < 9/15/2020

B2 >7

[valoarea daca testul este ADEVARAT] (optional) – valoarea de returnat atunci cand testul logic evalueaza ADEVARAT, adica daca este indeplinita conditia.

De exemplu, urmatoarea formula va returna textul „Bun” daca valoarea din celula C3 este mai mare decat 7 (adica de la numarul 8 inclusiv in sus):

= IF (B2> 7, „Bun”)

[valoarea daca testul este FALS] (optional) – valoarea ce trebuie returnata daca testul logic evalueaza FALSE, adica daca nu este indeplinita conditia specificata in primul argument.

De exemplu, daca adaugati „Rau” ca al treilea parametru la formula de mai sus, acesta va returna textul „Bun” daca o valoare din celula B2 este mai mare decat 7, in caz contrar, se va intoarce „Rau”:

= IF (B2> 7, „Bun”, „Rau”)

Functia Excel IF – lucruri de retinut!

Desi ultimii doi parametri ai functiei IF sunt optionali, formula dvs. poate produce rezultate neasteptate daca nu cunoasteti logica din spate.

Daca [valoarea daca testul este ADEVARAT] este omisa?

Daca argumentul [valoarea daca testul este ADEVARAT]  este omis (adica exista doar o virgula dupa ), functia IF returneaza 0 atunci cand este indeplinita conditia. Iata un exemplu de o astfel de formula:

= IF (B2> 7, , „Rau”)

In cazul in care doriti ca instructiunea IF sa NU afiseze vreo valoare la indeplinirea conditiei, introduceti ghilimele duble („”) in al doilea parametru, astfel:

= IF (B2> 7,”” , „Rau”)

In acest caz, formula returneaza un sir gol (empty string), care este invizibil pentru utilizator, dar perceptibil altor functii Excel. Nu puneti nimic intre ghilimelele de la argumentul 2 (nici macar spatiu)

Daca [valoarea daca testul este FALS] este omisa?

Daca nu conteaza ce se intampla atunci cand nu este indeplinita conditia specificata la argumentul 1, puteti omite cel de-al treilea parametru al functiei IF.

Daca se evalueaza la FALSE si parametrul [valoarea daca testul este FALS] este omis (exista doar o paranteza de inchidere dupa argumentul [valoarea daca testul este ADEVARAT]), functia IF returneaza valoarea logica FALSE. Iata un exemplu de astfel de formula:

=IF(B4>=5, „Luat” )

Punerea unei virgule dupa argumentul [valoarea daca testul este ADEVARAT] forteaza instructiunea IF sa returneze 0, ceea ce nu are prea mult sens:

=IF(B4>=5, „Luat”, )

Cea mai rezonabila abordare este sa puneti „” in al treilea argument (la [valoarea daca testul este FALS], in acest caz veti avea celule goale atunci cand nu este indeplinita conditia:

=IF(B4>=5, „Luat”,”” )

Folositi functia IF pentru a afisa direct valorile logice TRUE sau FALSE

Pentru ca functia IF sa returneze direct valorile logice TRUE sau FALSE atunci cand conditia specificata este indeplinita, respectiv nu este indeplinita, tastati TRUE in argumentul [valoarea daca testul este ADEVARAT]. Parametrul [valoarea daca testul este FALS] poate fi FALSE sau omis. Iata un exemplu de formula:

=IF(B4>=5, TRUE, FALSE)

sau

=IF(B4>=5, TRUE)

Observatie: Pentru ca instructiunea IF sa returneze TRUE sau FALSE ca valori logice (valori booleane), pe care apoi sa le recunoasca si alte functii/formule Excel, asigurati-va ca nu le incadrati in ghilimele duble. O indicatie vizuala a unui boolean este alinierea sa la mijloc in cadrul celulei, asa cum vedeti in imaginea de mai sus, precum si faptul ca acesta este scris cu litere majuscule.

Daca totusi doriti „TRUE” si „FALSE” sa fie valori de text obisnuite, incadrati-le intre ghilimele duble. In acest caz, valorile returnate vor fi aliniate la stanga si formatate ca texte. Nicio formula Excel nu va recunoaste un astfel de text „TRUE” sau „FALSE” ca valori logice. Puteti in acest caz sa scrieti in limba romana: „Adevarat” sau „Fals”, pentru Excel este totuna.

Instructiunea IF pentru a efectua operatii matematice si pentru a returna acele calcule

In loc sa returnati direct anumite valori, puteti sa-l puneti pe Exel sa calculeze doua formule diferite, una daca  este  adevarat si cealalta daca este fals. Faceti acest lucru folosind operatori aritmetici sau alte functii Excel in argumentele [valoarea daca testul este ADEVARAT] si / sau [valoarea daca testul este FALS].

Iata doar cateva exemple:

Exemplul 1:  Marim salariul cu 20% doar la asistenti

=IF(C4=”asistent”, D4*1.2,D4)

Formula compara valorile din celula C4 si textul „asistent”, daca C4 contine „asistent”, inmulteste valoarea din celula D4 cu 1.2, iar daca nu lasa salariul vechi

Exemplul 2: Marim salariul cu 10% tuturor mai putin asistentilor

=IF(C4<>”asistent”, D4*1.1,””)

Formula compara valorile din celula C4 si textul „asistent”, daca C4 NU contine „asistent”, inmulteste valoarea din celula D4 cu 1.1, iar daca nu atunci lasa celula necompletat

Utilizarea functiei IF in Excel – exemple simple

Acum ca ati facut cunostinta cu sintaxa functiei IF, sa analizam cateva exemple de formule.

2. Exemple functia IF pentru testarea numerelor: operatori de comparatie

Utilizarea functiei IF cu valori numerice se bazeaza pe utilizarea diferitilor operatori de comparatie pentru exprimarea conditiilor logice. In tabelul de mai jos gasiti lista completa a operatorilor logici de comparatie, ilustrata prin exemple:

Conditie

Operator

Exemplu Formula

Descriere

Mai mare decat

>

=IF(B4>4, „OK”,)

Daca valoarea din celula B4 contine un numar mai mare strict decat 4 se returneaza textul „OK”, altfel 0

Mai mic decat

<

=IF(B4<5, „OK”, „”)

Daca valoarea din celula B4 contine un numar mai mic strict decat 5 se returneaza textul „OK”, altfel textul gol („”)

Egal cu

=

=IF(B4=5, „Fix cinci”,

„Alt nr decat 5”)

Daca valoarea din celula B4 contine numarul 5 se returneaza textul :”Fix cinci”, altfel formula ne da: „Alt nr decat 5”

Diferit

<>

=IF(B4<>5, „Alt nr decat 5”, „Fix cinci”)

Daca valoarea din celula B4 contine alt numar decat 5 se returneaza textul :” Alt nr decat 5″, altfel formula ne da: „Fix cinci”

Mai mare sau egal decat

>=

=IF(B4>=5, „Luat”, „Picat”)

Daca Nota din celula B4 este mai mare sau egala cu 5, se afiseaza „Luat”, altfel ne da „Picat”

Mai mic sau egal decat

<=

=IF(B4<=4.5, „Picat”, „Promovat”)

Daca Nota din celula B4 este mai mica sau egala cu 4.5, se afiseaza „Picat”, altfel ne da „Promovat”

In poza de mai jos vedeti penultimul exemplu din tabelul de mai sus:

3. Exemple functia IF pentru testarea textelor

Pentru testarea textelor, in general se folosesc doar doi dintre operatorii de mai sus (de la numere): EGAL (=) sau DIFERIT (<>)

Exemplul 3.1. Functia IF nu este sensibila la tipul literelor (nu conteaza daca sunt litere mici sau mari).

Ca si majoritatea covarsitoare a functiilor Excel, IF este insensibil la tipul literelor, cu alte cuvinte nu conteaza pentru el daca scriem cuvantul „mama” sau „MaMA”.

De exemplu, urmatoarea formula IF returneaza „Da” sau „Nu” pe baza coloanei „A luat” (coloana C):

= IF (C4 = „Luat”, „DA”, „NU”)

Formula de mai sus ii spune lui Excel sa returneze „DA” daca o celula din coloana C contine cuvantul „Luat”, altfel returneaza „NU”. Observati din poza de mai jos ca nu conteaza cum este scris cuvantul „luat” in coloana B, Excel il va gasi si daca este scris „LUAT” si daca este scris „luat”.

Un alt mod de a obtine exact acelasi rezultat ca mai sus este sa folositi operatorul „nu este egal cu” (<>) si sa schimbati argumentele doi si trei intre ele:

= IF (C4 =<> „Luat”, „NU”, „DA”)

Exemplul 3.2. Cum „obligam” functia IF sa fie sensibila la tipul literelor (Case-sensitive IF)

Daca doriti un test logic sensibil la tipul literelor (mici sau mari), utilizati functia IF in combinatie cu functia EXACT- care compara doua siruri de text si returneaza TRUE daca sirurile sunt exact aceleasi, in caz contrar, returneaza FALSE. Functia EXACT este sensibila la literele majuscule sau minuscule, insa  ignora diferentele de formatare.

Utilizati IF cu EXACT in acest fel:

= IF (EXACT (C4, „Luat”), „Da”, „Nu”)

In cazul in care C este coloana la care se aplica testul logic si „Luat” este valoarea textului sensibil la majuscule si minuscule, observati rezultatul in poza de mai jos.

Exemplul 3.3. Cum folosim functia IF pentru testarea textelor ce au potrivire partiala

Daca doriti sa va bazati in conditia logica pe o potrivire partiala, va ganditi poate ca o solutie imediata se  obtine folosind caracterele wildcard (* sau ?) in argumentul . Va rog sa retineti ca aceasta abordare simpla nu va functiona. Multe functii Excel accepta wildcard-uri, dar, din pacate, functia IF nu este una dintre ele!

=IF(B4=”*Bucuresti*”, „Da”, „Nu”)

– NU DA REZULTATUL CORECT –

O solutie este de a utiliza IF in combinatie cu functiile ISNUMBER si SEARCH (insensibil la majuscule) sau FIND (sensibil la majuscule).

Sintaxa generala de a cauta texte partiale fara sa tineti cont de tipul literelor (mici sau mari)

=IF(ISNUMBER(SEARCH(„<ce caut>”, „)), , )

Exemplu:

=IF(ISNUMBER(SEARCH(„Bucuresti”,B4)), „Da”, „Nu”)

Sintaxa generala de a cauta texte partiale tinand cont de tipul literelor (case sensitive)

=IF(ISNUMBER(FIND(„<ce caut>”, „)), , )

Exemplu:

=IF(ISNUMBER(FIND(„BUCURESTI”,B4)), „Da”, „Nu”)

4. Exemple functia IF pentru testarea datelor calendaristice

La prima vedere, poate parea ca formulele IF pentru datele calendaristice sunt identice cu functiile IF pentru valorile numerice sau text pe care tocmai le-am discutat. Din pacate, nu este asa.

Spre deosebire de multe alte functii Excel, IF nu poate recunoaste datele calendaristice si le interpreteaza ca simple siruri de text, motiv pentru care nu puteti sa va exprimati testul logic folosind expresiile „01/25/2020” sau > 02/20/2020. Niciunul dintre argumentele de mai sus nu este corect, din pacate.

Exemplul 4.1. Formule IF pentru datele cu functiile DATEVALUE, TODAY() si Date

Pentru a face ca functia Excel IF sa recunoasca o data calendaristica din testul tau logic ca o data valida, trebuie sa o inglobati in functia DATEVALUE, cum ar fi aceasta DATEVALUE („02/20/2020”).

Cateva exemple reprezentative cu functia IF si datele calendaristice:

Exemplul 4.1.1:

=IF(C3<DATEVALUE(„02/20/2020”), „A inceput”, „In curand”)

Data calendaristica cu care se testeaza este scrisa manual, presupunand ca setarile regionale sunt cele din USA (data in format: Luna/Zi/An)

Exemplul 4.1.2:

=IF(C4<TODAY(), „A inceput”, „In curand”)

Data calendaristica cu care se testeaza este trimisa automat cu functia Today(), nu mai conteaza setarile regionale ale calculatorului dvs. si nici nu mai trebuie sa folositi functia DateVALUE deoarece functia Today() intoarce direct o data calendaristica valida, cea de azi.

Exemplul 4.1.3:

=IF(C4<Date(2020,02,20), „A inceput”, „In curand”)

Data calendaristica cu care se testeaza este generata dinamic cu functia Date, nu mai conteaza setarile regionale ale calculatorului pentru ca ordinea argumentelor din functia Date este predefinita – Date(AN, LUNA, ZI)

Exemplul 4.2. Formule IF avansate pentru testarea datelor viitoare si/sau trecute

Exemplul 4.2.1:

Sa va anunte daca au mai ramas mai putin de 5 zile pana la inceperea cursului (ca sa-i anuntati pe cursanti sa vina)

=IF(Today()-C5<5,”Mai putin de 5 de zile”, „”)

Exemplul 4.2.2:

Sa va anunte daca au trecut mai mult de 10 zile de la inceperea cursului (ca sa puteti incasa/factura)

=IF(Today()-C5>10,”Mai mult de 10 de zile”, „”)

5. Exemple Excel IF pentru celule completate sau pentru cele lasate libere (celule blank)

Daca doriti sa marcati datele dvs. in functie daca celula respectiva este sa nu goala (blank), atunci puteti utiliza functia IF in combinatie cu functia ISBLANK sau sa folositi expresiile logice = „”  sau <> „”

Tabelul de mai jos explica diferenta dintre aceste doua abordari :

Test logic

Descriere

Exemple formule

Celule necompletate (Blank)

=””

Evalueaza cu TRUE daca o anumita celula este goala sau daca are in ea textul de lungime 0 (empty string)

Altfel, evalueaza cu FALSE

=IF(A1=””, 0, A1)

Returneaza 0 daca celula A1 este necompletata sau are in ea formula =”” (textul empty)

Altfel, returneaza ce este scris in celula A1

ISBLANK()

Evalueaza cu True daca in celula nu exista absolut nimic, nici formula, nici text, nimic!

Altfel, evalueaza cu FALSE

=IF(ISBLANK(A1), 0)

Rezultatul este identic cu cel de mai sus, cu observatia ca da false daca in celula exista orice fel de formula, chiar si cele care intorc sirul empty („”)

Celule completate (Non-blank)

<>””

Evalueaza cu FALSE daca o anumita celula este goala sau daca are in ea textul de lungime 0 (empty string)

Altfel, evalueaza cu TRUE

=IF(A1<>””, A1, 0)

Returneaza 0 daca celula A1 este necompletata sau are in ea formula =”” (textul empty)

Altfel, returneaza ce este scris in celula A1

ISBLANK()=FALSE

Sau

NOT(ISBLANK())

Evalueaza cu FALSE daca in celula nu exista absolut nimic, nici formula, nici text, nimic!

Altfel, evalueaza cu TRUE

=IF(ISBLANK(A1)=FALSE, A1, 0)

Rezultatul este identic cu cel de mai sus, cu observatia ca da false daca in celula exista orice fel de formula, chiar si cele care intorc sirul empty („”)

Sper ca exemplele de mai sus v-au ajutat sa intelegeti logica generala a functiei IF.

In practica, de multe ori doriti ca o singura formula IF sa verifice mai multe conditii, iar urmatorul articol va arata cum sa abordati aceasta sarcina.

In plus, veti explora functiile IF imbricate/cuibarite (nested IF), formulele IF ce se aplica pe vectori de celule (pentru utilizatorii avansati), functiile IFEFFOR, IFNA precum si multe altele.

Acum sunteti pregatiti sa treceti la nivelul urmator si va invit sa parcurgeti articolul:

Functia IF din Excel cu conditii logice multiple (AND/OR/NOT) (Partea II) – explicatii pentru avansati

Va multumesc pentru ca ati citit pana la final!

RESURSE ARTICOL

Puteți descărca fișierul cu exemplele din acest articol.

INVĂȚAȚI EXCEL CU DR.EXCEL!

Cursuri Excel/VBA/BI pentru toate categoriile de utilizatori

de la incepători la experți

AVEȚI ÎNTREBĂRI TEHNICE EXCEL, VBA, SQL, BI?

intrebari

Alăturați-vă celor 12.000 de membri ai Comunității Dr.Excel!