Exemplu de utilizare a functiei IF in Excel
Puteti recapitula cele invatate, utilizand fisierul de lucru atasat:
__________________________________________________________________
Functia IF este o functie de tip logic, cu urmatoarea sintaxa (pentru toate versiunile de Excel):
=IF(logical_test, [value_if_true],[value_if_false])
Separatorul de argumente este virgula (versiunea in limba engleza), respectiv punct si virgula (versiunea in limba romana/franceza).
Functia IF are trei argumente, doar primul fiind obligatoriu (logical_test).
logical_test = o conditie logica ce trebuie indeplinita pentru a intoarce value_if_true
Poate fi rezultatul unei functii, referinta la o celula sau chiar o constanta.
Testul logic poate fi de forma:
- ceva egal cu altceva sau ceva mai mare cu altceva, etc.
- rezultat al unei functii de tip logic (ce intoarce TRUE sau FALSE)
- rezultatul unei functii (de exemplu, functia FIND, IF(FIND()….))
In cazul in care testul logic este rezultatul unei functii, nu este nevoie de utilizarea testului logic cu comparatie.
Semne de comparatie: = , <>, >=, <=, >, <
ATENTIE! Daca rezultatul testului logic este o eroare, atunci functia IF se opreste si rezultatul acesteia va fi eroare.
value_if_true = actiunea ce trebuie realizata daca rezultatul testului logic este TRUE.
Este un argument optional, in cazul in care este omis si testul logic este indeplinit, rezultatul functiei IF va fi TRUE.
Poate fi o constanta numerica, un text (caz in care textul trebuie obligatoriu inclus intre ghilimele duble) sau o alta functie, inclusiv o noua functie de tip IF).
value_if_false = actiunea ce trebuie realizata daca rezultatul testului logic este FALSE.
Este un argument optional, in cazul in care este omis si testul logic nu este indeplinit, rezultatul functiei IF va fi FALSE.
Poate fi o constanta numerica, un text (caz in care textul trebuie obligatoriu inclus intre ghilimele duble) sau o alta functie).
Exemple:
=IF(TYPE(A1)=1,) va intoarce rezultatul TRUE daca in celula A1 este inscrisa o valoare numerica si FALSE in orice alt caz.
=IF(LEFT(a1,2)= ”Bu”, ”Contract din Bucuresti”,””) va intoarce rezultatul “Contract din Bucuresti” daca primele doua litere din celula A1 sunt “Bu” si va intoarce blank (in celula respectiva nu va aparea nimic) in orice alt caz.
=IF(LEFT(A1,2)= ”Bu”, ”Contract din Bucuresti”,) va intoarce rezultatul “Contract din Bucuresti” daca primele doua litere din celula A1 sunt “Bu” si va intoarce FALSE (in celula respectiva va aparea textul FALSE) in orice alt caz.
=IF(LEFT(A1,2)= ”Bu”, ”Contract din Bucuresti”,IF(LEFT(A1,2)=”Br”,”Contract din Brasov”,”Alte contracte”)) va intoarce rezultatul “Contract din Bucuresti” daca primele doua litere din celula A1 sunt “Bu”, daca nu, in cazul in care primele doua litere din A1 sunt ”Br” va intoarce “Contract din Brasov” si daca nu, va intoarce valoarea “Alte contracte”.
Atentie! Chiar daca argumentele value_if_true si value_if_false sunt optionale, dupa argumentul logical_test trebuie sa introduceti si separatorul de argumente (virgula – pentru varianta in limba engleza, respectiv punct si virgula pentru varianta in limba romana/franceza), dupa care inchideti paranteza.
In cazul in care introduceti o actiune doar pentru value_if_true, de exemplu, in cazul in care conditia logica definita la logical_test nu este indeplinita, rezultatul functiei va fi FALSE.
Pentru a realiza o actiune si in cazul in care conditia nu este indeplinita, introduceti si value_if_false.
EXEMPLU
Se da o baza de date de contracte, pentru care trebuie completata coloana Departament, stiind ca numarul contractului (coloana A) contine indicativul de departament, astfel:
- Ou = Outsourcing
- Co = Consultanta
Exemplu : Bu_Co_2009_1 semnifica un contract incheiat in subsidiara Bucuresti si de catre departamentul Consultanta
REZOLVARE
PASUL 1
Extragem grupul de caractere ce semnifica indicativul de departament din numarul contractului, utilizand functia MID
=MID(A5,4,2) – extrage din celula A5, un numar de 2 caractere, incepand cu al patrulea caracter
Vom utiliza un nume definit de utilizator, pentru a realiza o formula mai eleganta si mai lizibila.
Am dat denumirea indicativ_dep functiei MID(A5,4,2).
Acest nume definit de utilizator va fi parte din testul logic (logical_test) al functiei IF.
PASUL 2
In celula I5 (prima celula din coloana Departament a bazei de date), inscriem functia:
=IF(indicativ_dep=”Co”,”Consultanta”,”Outsourcing”)
Daca grupul de caractere extras din A5 (cu functia MID definita ca nume definit de utilizator indicativ_dep) este Co, atunci inseamna ca departamentul este Consultanta, daca nu, inseamna ca este Outsourcing.
Daca nu am fi definit anterior numele indicativ_dep, functia ar fi aratat astfel:
=IF(MID(A5,4,2)=”Co”,”Consultanta”,”Outsourcing”)
Rezultatul functiei este corect doar in cazul in care, intr-adevar (ca in exemplul nostru), era vorba doar de doua departamente.
Pentru mai multe departamente, o varianta eleganta si simpla este utilizarea functiei VLOOKUP (Vezi aici un exemplu de utilizare a functiei VLOOKUP).
PASUL 3
Copiati formula pana la capatul tabelului.
PASUL 4
In cazul in care informatiile din tabel sunt statice (nu veti mai realiza modificari in coloana A), puteti copia coloana Departament peste ea insasi, utilizand Copy à Paste Special pentru a nu pastra decat rezultatul functiei IF utilizate.
Va invit sa refaceti exercitiul, utilizand fisierul de lucru atasat la inceputul articolului. Spor la treaba!