Modulul 5
Functii logice
Functiile AND, IF, OR si NOT
Funcţiile logice se utilizează pentru a testa valoarea de adevăr a uneia sau mai multor condiţii. De
exemplu, cu ajutorul funcţiei IF se returnează o anumită valoare dacă se îndeplineşte condiţia şi o alta
pentru o valoare falsă a condiţiei.
Functia AND
Returnează True dacă toate argumentele sale sunt adevărate; returnează False dacă unul sau mai multe
argumente sunt [Link]ţia poate avea până la 30 de argumente, adevărate sau false.
Observaţii:
Argumentele trebuie exprimate prin valori logice.
Dacă referinţa unui argument conţine text sau este vidă, atunci acel argument va fi ignorat.
Dacă în seria specificată nu exista valori logice, funcţia AND va returna valoarea de eroare
#VALUE!
Exemple:
1) AND(2+2=4, 2+3=5) returneaza TRUE
2) Presupunem ca in B4 se gaseste un numar si se vrea afisarea TRUE daca este cuprins intre
valorile 1 si 100, altfel FALSE
Daca B4 contine numarul 104, atunci :
AND(1<B4, B4<100) returneaza valoarea FALSE
Daca B4 contine 50, atunci:
AND(1<B4, B4<100) returneaza valoarea TRUE.
Functia OR
Functia OR(argument1,argument2,…) – Returneaza True daca oricare din argumente este TRUE;
returneaza False daca toate argumentele sunt FALSE.
Functia poate avea pana la 30 de argumente.
Exemple :
1)OR(True) returneaza True
2)OR (1+1=1, 2+2=5) returneaza False
Funtia NOT
Schimbă valoarea argumentului într-o valoare opusă. Utilizați NOT atunci când vreți să vă asigurați că o
valoare nu este egală cu o valoare particulară.
Sintaxă
NOT(logical)
Logical este o valoare sau o expresie care poate fi evaluată ca TRUE sau FALSE.
Observație
Dacă logical este FALSE, NOT întoarce TRUE; dacă logical este TRUE, NOT întoarce FALSE.
Exemplu:
A B
1 Formulă Descriere (Rezultat)
2 =NOT(FALSE) Inversează FALSE (TRUE)
=NOT(1+1=2) Inversează o ecuație care este evaluată la TRUE
3
(FALSE)
Functia IFERROR
Returnează o valoare specificată de dvs. dacă o formulă are ca rezultat o eroare; altfel, returnează
rezultatul formulei. Utilizați funcția IFERROR pentru a găsi și gestiona erorile într-o formulă.
Sintaxă
IFERROR(value,value_if_error)
Value este argumentul care este verificat pentru a găsi erorile.
Value_if_error este valoarea de returnat dacă formula are ca rezultat o eroare. Se evaluează
următoarele tipuri de erori: #N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME? sau #NULL!.
Observații
Dacă argumentele value sau value_if_error sunt o celulă goală, IFERROR le tratează ca o
valoare de șir necompletat ("").
Dacă valoarea este o formulă matrice, IFERROR returnează o matrice de rezultate pentru
fiecare celulă din intervalul specificat în valoare. Vedeți al doilea exemplu de mai jos.
Exemplu: găsirea erorilor de împărțire utilizând o formulă obișnuită
1 A B
2 Cotă Unități vândute
3 210 35
4 55 0
5 23
6 Formulă Descriere (rezultat)
7 =IFERROR(A2/B2, "Eroare Verifică pentru a găsi o eroare în formulă în primul argument (împarte 210 la
de calcul") 35), nu găsește nicio eroare, apoi returnează rezultatul formulei (6).
8
=IFERROR(A3/B3, "Eroare Verifică pentru a găsi o eroare în formulă în primul argument (împarte 55 la
9
de calcul") 0), găsește eroarea de împărțire la 0, apoi returnează value_if_error (Eroare de
10 calcul).
=IFERROR(A2/B4, "Eroare Verifică pentru a găsi o eroare în formulă în primul argument (împarte 23 la
de calcul") 35), nu găsește nicio eroare, apoi returnează rezultatul formulei (0).
Functia IF
Functia IF(conditie, valoare_daca_true,valoare_daca_false) – Returneaza o anumita valoare in cazul in
care conditia specificata este evaluata True si o alta daca este evaluata False.
Conditia reprezinta orice valoare sau expresie care se poate evalua logic.
Valoare_daca_true este valoarea care va fi returnata in cazul in care conditia este indeplinita. In cazul in
care conditia este adevarata si valoarea_daca_true este omisa, se returneaza True. Valoarea_daca_true
poate fi si o alta formula.
Valoarea_daca_false este valoarea returnata in cazul neindeplinirii conditiei. In cazul in care conditia
este falsa si valoarea_daca_false este omisa, se returneaza False. Valoarea_daca_false poate fi si o alta
formula.
Observatii:
Se pot imbrica pana la 7 functii IF.
Cand se evalueaza valoarea_daca_true si valoarea_daca_false, IF returneaza valoarea
returnata de aceste argumente.
Exemplu:
Presupunem urmatorul test: daca valoarea celulei A10 este 100, conditia este adevarata si se calculeaza
valoarea totala pentru seria B5:B15. Altfel conditia este falsa si in celula care contine functia IF nu se
scrie nimic.
IF(A10=100, SUM(B5 :B15), "")
Functii de informare ( ISBLANK, ISERROR… )
Această secțiune descrie cele nouă funcții din foaia de calcul utilizate pentru testarea
tipului unei valori sau referințe.
Fiecare din aceste funcții, referită generic ca funcție IS, verifică tipul argumentului
valoare și întoarce TRUE sau FALSE în funcție de rezultat. Spre exemplu, funcția ISBLANK
întoarce valoarea logică TRUE dacă valoare este o referință la o celulă goală; altfel,
întoarce FALSE.
Sintaxă
ISBLANK(value)
ISERR(value)
ISERROR(value)
ISLOGICAL(value)
ISNA(value)
ISNONTEXT(value)
ISNUMBER(value)
ISREF(value)
ISTEXT(value)
Value este valoarea pe care o testați. Value poate fi un blank (celulă goală), o valoare
de eroare, valoare logică, text, număr sau referință sau un nume care se referă la oricare
dintre acestea.
FUNCȚIE ÎNTOARCE TRUE DACĂ
ISBLANK Value se referă la o celulă goală.
ISERR Value se referă la orice valoare de eroare cu excepția #N/A.
ISERROR Value se referă la orice valoare de eroare (#N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NUME? sau
#NULL!).
ISLOGICAL Value se referă la o valoare logică.
ISNA Value se referă la valoarea de eroare #N/A (valoarea nu este disponibilă).
ISNONTEXT Value se referă la orice element care nu este text. (De reținut că această funcție întoarce TRUE
dacă value se referă la o celulă goală).
ISNUMBER Value se referă la un număr.
ISREF Value se referă la o referință.
ISTEXT Value se referă la text.
Observații
Argumentelor value pentru funcțiile IS nu li se face conversia. De exemplu, în
multe alte funcții unde se cere un număr, valoarea text „19” este convertită la
numărul 19. Oricum, în formula ISNUMBER("19"), „19” nu este convertit din valoarea
text și funcția ISNUMBER întoarce FALSE.
Funcțiile IS sunt utile în formule pentru testarea rezultatului unui calcul. Atunci
când sunt combinate cu funcția IF, ele asigură o metodă de a localiza erorile din
formule (vezi exemplele următoare).
Exemplul 1
A B
1
2 Formulă Descriere (Rezultat)
=ISLOGICAL(TRUE) Verifică dacă TRUE este valoare logică
3 (TRUE)
=ISLOGICAL("TRUE" Verifică dacă „TRUE” este valoare
4 ) logică (FALSE)
=ISNUMBER(4) Verifică dacă 4 este număr (TRUE)
Exemplul 2
A
1
2 Date
3
Aur
4
Regiunea1
5
#REF!
6
330,92
#N/A
Formulă Descriere (Rezultat)
=ISBLANK(A2) Verifică dacă celula C2 este necompletată
(FALSE)
=ISERROR(A4) Verifică dacă #REF! este o eroare (TRUE)
=ISNA(A4) Verifică dacă #REF! este o eroare #N/A
(FALSE)
=ISNA(A6) Verifică dacă #N/A este eroarea #N/A
(TRUE)
=ISERR(A6) Verifică dacă #N/A este o eroare (FALSE)
=ISNUMBER(A5 Verifică dacă 330,92 este număr (TRUE)
)
=ISTEXT(A3) Verifică dacă Regiunea1 este text (TRUE)
Functii de regasire a datelor
Functia SEARCH
Search - este o functie care returneaza pozitia pe care se gaseste primul caracter dintr-un sir de
caractere specificat.
Functia Search are 3 argumente: sirul de caractere cautat (find_text), referinta catre celula in
care se gaseste textul cautat (within_text), pozitia de pe care vrei sa incepi cautarea acelui sir
de caractere (start_num). Ultimul argument este optional. In cazul in care strat_num e lasat
liber, cautarea se face de la inceput.
Daca vrei sa scrii aceasta functie direct pe bara de formule, o poti face in felul urmator:
=search(textul cautat, referinta celulei in care se gaseste textul; pozitia de inceput)
Ex. 1 In celula B1 scrii =search(” “;A1) – in acest caz, textul caruia vrei sa-i afli pozitia este
spatiu (” “), celula care contine textul este A1. Nu se specifica pozitia de inceput, cautarea
facandu-se de la inceputul textului.
Daca in A1 textul ar fi “1111 Bedeleu Georgiana”, iar textul cautat ar fi spatiu, in celula B1
rezultatul va fi 5. Numarul 5 reprezinta pozitia primului spatiu din textul specificat (spatiul
dintre 1111 si Bedeleu).
Ex. 2 In celula B1 scrii =search(” “;A1;6) – in acest caz, textul caruia vrei sa-i afli pozitia este
spatiu (” “), celula care contine textul este A1, pozitia de la care sa inceapa cautarea este 6.
Daca in A1 textul ar fi “1111 Bedeleu Georgiana”, iar textul cautat ar fi spatiu si cautarea ar
trebui sa inceapa de la pozitia 6, in celula B1 rezultatul va fi 13. Numarul 13 reprezinta pozitia
primului spatiu gasit dupa pozitia 6 in textul specificat (adica spatiul dintre Bedeleu si
Georgiana).
Functia VLOOKUP
Această funcţie caută o valoare în coloana cea mai din stânga a unui tabel şi returnează valoarea din
acelaşi rând, dintr-o coloană pe care o specifici. Utilizează această funcţie atunci când compari valori
aflate pe coloană, spre deosebire de funcţia HLOOKUP pe care o foloseşti atunci când compari valori
aflate pe rând.
Funcţia are următoarea sintaxă:
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
lookup_value este valoarea după care se face căutarea în prima coloană din stânga a tabelului.
Această valoare poate fi text, număr sau şir de caractere.
table_array este tabelul în care se caută informaţia. Pentru specificarea acestuia foloseşte referinţe de
celule sau nume de domenii.
col_index_num este numărul de coloană din tabel de unde se va returna valoarea echivalentă valorii
lookup_value.
range_lookup este o valoare logică care specifică funcţiei VLOOKUP dacă să găsească o valoare
identică cu cea pe care o caută sau o valoare aproximativă.
range_lookup = TRUE valoarea găsită poate să fie aproximativă cu valoarea
lookup_value.
range_lookup = FALSE valoarea găsită trebuie să fie identică cu valoarea căutată
Obs. 1: col_index_num = 1 funcţia returnează valoarea din prima coloană din stânga a tabelului
col_index_num = 2 funcţia returnează valoarea din coloana a doua din stânga a
tabelului
col_index_num<1 funcţia returnează valoarea de eroare #VALUE
col_index_num este mai mare decât numărul de rânduri al tabelului, funcţia
returnează valoarea de eroare #N/A
Obs. 2: Dacă funcţia nu găseşte valoarea lookup_value şi range_lookup = TRUE atunci se
foloseşte cea mai mare valoare care este mai mică sau egală cu valoarea lookup_value.
Obs. 3: Dacă funcţia nu găseşte valoarea lookup_value şi range_lookup = FALSE atunci
returnează valoare de eroare #N/A.
Obs. 4: Dacă lookup_value este mai mare decât cea mai mare valoare din prima coloană a
tabelului, atunci funcţia returnează valoarea de eroare #N/A.
Exemplu:
1. VLOOKUP(1,A2:C10,1,TRUE) = 0,946
2. VLOOKUP(1,A2:C10,2) = 2,17
3. VLOOKUP(1,A2:C10,3,TRUE) = 100
4. VLOOKUP(0,746,A2:C10,3,FALSE) = 200
5. VLOOKUP(0,1,A2:C10,2,TRUE) = #N/A deoarece valoarea 0,1 este mai mică decât orice
valoare din prima coloană
6. VLOOKUP(2,A2:C10,2,TRUE) = 1,71
Functia HLOOKUP
Funcţia HLOOKUP caută o valoare în primul rând al unui tabel sau al unei matrici de valori
şi returnează o valoare de pe aceiaşi coloană, dintr-un rând specificat. Este bine să foloseşti
funcţia HLOOKUP când valoarea pe care o cauţi se situează în primul rând al unui tabel şi
valoarea care trebuie returnată se află câteva rânduri mai jos.
Funţia HLOOKUP are următoarea sintaxă:
HLOOKUP(lookup_value,table_array,row_index_num,range_lookup)
lookup_value este valoare care urmează a fi găsită în primul rând al tabelului. Poate fi o valoare, o
referinţă sau un şir tip text.
table_array este tabelul cu informaţii în care se caută valoarea lookup_value.
valoarea din primul rând poate fi text, număr sau valoare logică
nu se face diferenţa între litere mari şi litere mici
row_index_num este numărul rândului din tabel (table_array) de unde va fi returnată valoarea
echivalentă.
range_lookup este o valoare logică care specifică dacă funcţia HLOOKUP să caute o valoare exactă
sau aproximativă a valorii lookup_value
dacă range_lookup = TRUE se admite o aproximare a valorii lookup_value. Dacă
nu este găsită o valoare exactă este returnată valoarea cea mai mare care este mai mică
decât lookup_value.
dacă range_lookup = FALSE valoarea găsită în tabel trebuie să fie identică cu cea
a argumentului lookup_value. Dacă nu este găsită o valoarea identică atunci se returnează
mesajul de eroare #N/A.
Obs. 1: Dacă range_lookup = TRUE valorile din primul rând al tabelului trebuie să fie sortate în
ordine ascendentă; altfel funcţia HLOOKUP nu va returna rezultatul corect. Dacă range_lookup
= FALSE tabelul nu trebuie sortat.
Obs. 2: Poţi pune în ordine ascendentă valorile, de la stânga la dreapta, selectând valorile,
executând secvenţa Data\Sort\Options şi făcând click pe opţiunea Sort left to right. Apoi
alege rândul din lista câmpului Sort by şi opţiunea Ascending.
Obs. 3: row_index_num = 1 returnează valoarea din primul rând a tabelului.
row_index_num = 2 returnează valoarea din rândul doi al tabelului.
row_index_num < 1 funcţia returnează valoarea de eroare #VALUE.
row_index_num este mai mare decât numărul de rânduri din tabel funcţia returnează
valoarea de eroare #REF.
Exemplu:
1. HLOOKUP(„carti”,E1:H5,2,TRUE) = 50
2. HLOOKUP(„penare”, E1:H5,3,FALSE) = 8
3. HLOOKUP(„penar”, E1:H5,3,FALSE) = #N/A
4. HLOOKUP(„stilouri”,E1:H5,4) = 38
5. HLOOKUP(3,{1,2,3 ; „a”, „b”, „c”; „d” „e” „f”},2,TRUE) = „c”
Functia MATCH
Funcția MATCH caută un element specificat într-o zonă de celule, apoi returnează poziția
relativă a acelui element din zonă. De exemplu, dacă zona A1:A3 conține valorile 5, 25 și 38,
atunci formula
=MATCH(25;A1:A3;0)
returnează numărul 2, deoarece 25 este al doilea element din pagină.
Utilizați funcția MATCH în loc de una dintre funcțiile LOOKUP atunci când aveți nevoie de
poziția unui element dintr-o zonă în loc de elementul în sine. De exemplu, funcția MATCH se
poate utiliza pentru a furniza o valoare pentru argumentul nr_rând al funcției INDEX.
Sintaxă
MATCH(valoare_căutare, matrice_căutare, [tip_potrivire])
Sintaxa funcției MATCH are următoarele argumente:
valoare_căutare Obligatoriu. Reprezintă valoarea care vreți să se potrivească
în matricea de căutare . De exemplu, atunci când căutați numărul de telefon al unei persoane
în cartea de telefon, utilizați numele persoanei ca valoare de căutare (valoare_căutare), dar
numărul de telefon este valoarea pe care o doriți.
Argumentul valoare_căutare poate fi o valoare (număr, text sau valoare logică) sau o referință
de celulă spre un număr, text sau valoare logică.
matrice_căutare Obligatoriu. Reprezintă zona de celule în care se caută.
tip_potrivire Opțional. Este numărul -1, 0 sau 1. Argumentul tip_potrivire specifică
modul în care Excel potrivește valoarea_căutare cu valori din matricea_căutare. Valoarea
implicită pentru acest argument este 1.
Următorul tabel descrie modul în care funcția găsește valori pe baza setării
argumentului tip_potrivire.
MATCH_TYPE COMPORTAMENT
1 sau omis MATCH găsește cea mai mare valoare mai mică sau egală cu valoare_căutare. Valorile din
argumentul matrice_căutare trebuie să fie plasate în ordine ascendentă, de exemplu: ...-2, -1,
0, 1, 2, ..., A-Z, FALSE, TRUE.
0 MATCH găsește prima valoare care este exact egală cu valoare_căutare. Valorile din
argumentul matrice_căutare pot fi în orice ordine.
-1 MATCH găsește cea mai mică valoare care este mai mare sau egală cu valoare_căutare.
Valorile din argumentul matrice_căutare trebuie să fie plasate în ordine ascendentă, de
exemplu: TRUE, FALSE, Z-A, ...2, 1, 0, -1, -2, ..., etc.
NOTE
MATCH returnează poziția valorii care se potrivește în matrice_căutare, nu valoarea în
sine. De exemplu,MATCH("b";{"a";"b";"c"};0) returnează 2, poziția relativă a lui „b” în
matricea {"a";"b";"c"}.
MATCH nu face distincție între literele mari și mici atunci când potrivește valori text.
Dacă MATCH nu găsește o potrivire, returnează valoarea de eroare #N/A.
Exemplu:
A B C
1
Produs Contor
2
3 Banane 25
Portocale 38
4
Mere 40
5
Pere 41
6 Formulă Descriere Rezultat
=MATCH(39;B2:B5;1) Deoarece nu este o potrivire perfectă, se 2
returnează poziția celei mai mici valori
7 următoare (38) din intervalul B2:B5.
=MATCH(41;B2:B5;0) Poziția valorii 41 în intervalul B2:B5. 4
8
=MATCH(40;B2:B5;- Returnează o eroare, deoarece valorile din #N/A
1) intervalul B2:B5 nu sunt în ordine ascendentă.
9