Sunteți pe pagina 1din 16

VLOOKUP (Funcia VLOOKUP)

Acest articol descrie sintaxa de formul i utilizarea funciei VLOOKUP n Microsoft Excel.

Descriere
Avei posibilitatea s utilizai funcia VLOOKUP pentru a cuta n prima coloan dintr-o zon de celule, apoi a returna o valoare din orice celul din acelai rnd din zon. De exemplu, s presupunem c avei o list de angajai n zona A2:C10. Numerele ID ale angajailor sunt stocate n prima coloan din zon, dup cum se afieaz n ilustraia urmtoare.

n cazul n care cunoatei numrul ID al angajatului, avei posibilitatea s utilizai funcia VLOOKUP pentru a returna departamentul sau numele angajatului. Pentru a obine numele angajatului numrul 38, avei posibilitatea s utilizai formula =VLOOKUP(38; A2:C10; 3; FALSE). Aceast formul caut valoarea 38 n prima coloan din zona A2:C10, apoi returneaz valoarea coninut n a treia coloan din zon i n acelai rnd ca valoarea de cutare ("Alex Lupu"). Litera V din VLOOKUP nseamn vertical. Utilizai funcia VLOOKUP n locul funciei HLOOKUP atunci cnd valorile de comparat sunt localizate ntr-o coloan din partea stng a datelor pe care dorii s le gsii.

Sintax
VLOOKUP(cutare_valoare, matrice_tabel, num_index_col, [zon_cutare]) Sintaxa funciei VLOOKUP are urmtoarele argumente:

cutare_valoare Obligatoriu. Valoarea de cutat din prima coloan a tabelului sau zonei. Argumentulcutare_valoare poate fi o valoare sau o referin. Dac valoarea pe care o oferii pentru argumentulcutare_valoare este mai mic dect cea mai mic valoare din prima coloan a argumentului matrice_tabel,VLOOKUP returneaz valoarea de eroare #N/A.

matrice_tabel Obligatoriu. Reprezint zona de celule care conine datele. Avei posibilitatea s utilizai o referin la o zon (cum ar fi A2:D8 sau un nume de zon. Valorile din prima coloan a matrice_tabel sunt valorile cutate dup cutare_valoare. Aceste valori pot fi text, numere sau valori logice. Textul cu litere mari este echivalent cu cel cu litere mici. num_index_col Obligatoriu. Este numrul de coloan din argumentul matrice_tabel pentru care trebuie returnat valoarea potrivit. Un argument num_index_col egal cu 1 returneaz valoarea din prima coloan dinmatrice_tabel; un num_index_col egal cu 2 returneaz valoarea din a doua coloan din matrice_tabel etc. Dac argumentul num_index_col este:

Mai mic dect 1, VLOOKUP returneaz valoarea de eroare #VALUE!. Mai mare dect numrul de coloane din matrice_tabel, VLOOKUP returneaz valoarea de eroare #N/A.

zon_cutare Opional. O valoare logic, care specific dac VLOOKUP caut o potrivire exact sau o potrivire aproximativ: Dac zon_cutare este TRUE sau este omis, se returneaz o potrivire exact sau aproximativ. Dac nu se gsete o potrivire exact, se va returna urmtoarea valoare maxim care este mai mic dectcutare_valoare.
IMPORTANT Dac zon_cutare este TRUE sau este omis, valorile din prima coloan

din matrice_tabeltrebuie plasate n ordine ascendent; altfel, este posibil ca VLOOKUP s nu returneze valoarea corect. Pentru mai multe informaii, consultai Sortarea datelor dintr-o zon sau un tabel. Dac zon_cutare este FALSE, valorile din prima coloan din matrice_tabel nu au nevoie de sortare.

Dac argumentul zon_cutare este FALSE, VLOOKUP va gsi exact o potrivire. Dac exist dou sau mai multe valori n prima coloan din matrice_tabel care se potrivesc cu cutare_valoare, se va utiliza prima valoare. Dac nu se gsete o potrivire exact, se returneaz valoarea #N/A.

Observaii

Cnd se caut valori text n prima coloan a matrice_tabel, asigurai-v c datele din prima coloan amatrice_tabel nu conin spaii la nceput, spaii n plus, utilizri inconsistente ale apostrofului sau ghilimelelor drepte ( ' sau " ) sau curbate ( sau ) sau caractere neimprimabile. n acest caz, VLOOKUP poate returna o valoare incorect sau neateptat. Pentru mai multe informaii, consultai funciile CLEAN iTRIM.

Atunci cnd se caut valori numerice sau date, asigurai-v c datele din prima coloan a matrice_tabel nu sunt memorate ca valori text. n acest caz VLOOKUP poate returna o valoare incorect sau neateptat. Dac zon_cutare este i cutare_valoare este text, avei posibilitatea s utilizai metacaracterele semnul de ntrebare (?) i asteriscul (*) n cutare_valoare. Un semn de ntrebare se potrivete cu orice caracter individual; un asterisc se potrivete cu orice secven de caractere. Dac dorii s gsii un semn de ntrebare sau un asterisc efectiv, tastai simbolul tilda (~) naintea caracterului.

Exemple Exemplul 1
Utilizai registrul de lucru ncorporat afiat aici pentru a lucra cu exemple ale acestei funcii. Putei s inspectai i s modificai formulele existente, s introducei formule proprii i s citii informaii suplimentare despre modul n care funcioneaz funcia. n acest exemplu se caut n coloana Densitate a unui tabel cu proprieti atmosferice pentru a gsi valorile corespunztoare din coloanele Vscozitate i Temperatur. (Valorile sunt pentru aer la 0 grade Celsius la nivelul mrii sau la 1 atmosfer.) EWA1 Pentru a lucra n profunzime cu acest registru de lucru, putei s l descrcai pe computer i s l deschidei n Excel. Pentru mai multe informaii, consultai articolul Descrcarea unui registru de lucru ncorporat de pe SkyDrive i deschiderea acestuia pe computer..

Exemplul 2
n acest exemplu se caut n coloana Cod articol a unui tabel cu produse pentru copii i se potrivesc valorile din coloanele Cost i Adaos pentru a calcula preurile i a verifica starea lor. EWA2

Exemplul 3
n acest exemplu se caut n coloana Cod a unui tabel cu angajai i se potrivesc valorile din alte coloane pentru a calcula vrste, testnd condiiile de eroare. EWA3

Utilizarea functiilor LOOKUP pentru interogarea tabelelor de date - VLOOKUP


Astazi am ales sa va scriu despre functiile LOOKUP care se folosesc pentru a aduce intr-o celule informatii dintr-un tabel de date. Aceste functii sunt foarte utilizate in randul celor care folosesc in mod intens excel-ul.

Eu folosesc cel mai des functiile LOOKUP, in cadrul fisierelor in care se introduc date pentru a completa automat tabelul cu informatiile pe care le cunoastem deja. Un exemplu ar fi intr-o format de factura, in care putem folosi formula vlookup pentru a aduce, in functie de numele clientului, celelalte date ale sale ca adresa, contul bancar, CUI-ul etc.

Functia VLOOKUP - este folosita pentru a cuta datele specificate in prima


coloana a unui tabel de date. Sintaxa functiei VLOOKUP este urmatoarea:=vlookup(lookup_value,table_array,col_index_num,range_lookup) 1.

Lookup_value - reprezinta ceea ce dorim sa cautam in tabelul de date.Lookup_value poate fi o valoare sau o referinta. Daca in tabelul de date nu exista
valoarea cautata de vlookup atunci functia va returna eroarea #N/A.

2.

Table_array - reprezinta tabelul de date in care cautam valoarea dorita.Tabelul de date poate sa aibe doua sau mai multe coloane. Principala conditie in
vlookup este ca prima coloana a tabelului sa contina valorile unde cautam lookup_value. Aceste valori pot fi text, numere sau valori logice. Textul cu litere mari este echivalent cu cel cu litere mici.

3.

Col_index_num - reprezinta numarul coloanei din table_array din care trebuie


returnata valoarea potrivita. Dac col_index_num este mai mic dect 1, functia returneaza eroarea #VALUE!, iar daca este mai mare decat numarul de coloane din tabel, returneaza eroarea #N/A.

4.

Range_lookup - reprezinta o valoare logica, care specifica daca functia cauta o


potrivire exacta sau o potrivire aproximativa. In general se foloseste cautarea exacta care are ca argument FALSE sau 0. In cazul cautarii aproximative (argumentul TRUE, 1 sau omis), tabelul trebuie sortat in ordine crescatoare dupa prima coloana. De asemenea, daca functia nu gaseste valoarea din lookup_value, ea returnaza valoarea cea mai mare urmatoare care este mai mica decat lookup_value.

Pentru a intelege mai bine functia VLOOKUP am creat un tabel cu 3 coloane Cod angajat, Departament si Angajat.

In exemplul nostru interogam acest tabel de date dupa codul angajatului. Adica punem intrebarea: Angajatul cu codul 110 ce nume are. Sintaxa formulei este urmatoarea =VLOOKUP(F2,$A:$C,3,0)

1. Selectam celula unde vrem sa aducem numele angajatului. 2. Scrien =Vlookup( 3. Alegem celula unde vom scrie codul angajatului pentru care vrem sa aflam numele, in cazul nostru F2. 4. Alegem tabelul de date cu angajati, in exemplul nostru acesta este format din coloanele A:C. Va recomand ca dupa selectarea tabelului sa faceti adresa acestuia referinta, mai ales daca formula este copiata si in alte celule. 5. Scrien numarul coloanei din care sa ne fie returnat rezultatul. In cazul nostru, acesta este 3. 6. Alegem True sau False/ 0 sau 1 in functie de cum dorim sa fie executata cautarea. In cazul nostru, dorim o cautare exacta deci alegem 0. 7. Apasam ENTER.

Lectia 10 VLOOKUP si HLOOKUP


Scopul lectiei: Folosirea unor functii de cautare VLOOKUP si HLOOKUP care permit renuntarea la IF Restrictii n folosirea acestor functii

1.1 Rolul functiilor VLOOKUP si HLOOKUP


Tabele care sa se bazeze pe o lista de tip Nomenclator sunt foarte des ntlnite.Nomenclatorul are sute, chiar mii de repere. Functia IF nu poate fi folosita. Atunci se folosesc doua functii VLOOKUP si HLOOKUP, care fac acelasi lucru. Consulta un nomenclator.

1.2 Functiile VLOOKUP

Fig 10.1 Sa luam un exemplu simplu, adica dorim tabelul din Fig 10.1, n care atunci cnd tastam codul n coloana E, sa apara simultan denumirea produsului n coloana F si pretul produsului n coloana G. Cum procedam. Deschidem un Registru si redenumim foile ca n Fig 10.2[1]. Prima Foaie de lucru va fi Fact (FACTURI). Aici facem capul de tabel ca n Fig 10.1
A doua Foaie de lucru Nom (NOMENCLATOR) n foaia Nom facem urmatorul tabel (lista): acesta va fi Nomen-clatorul. Fig 10.3.

Fig 10.2 n acest NOMENCLATOR codurile produselor sa fie n ordine strict crescatoare. Poate sa fie "goluri" dar sa nu fie dubluri! Codurile pot fi numere, dar si litere amestecate cu cifre. Denumirile rubricilo 14114t198o r nu trebuie sa fie acelasi n NOMENCLATOR cu cele existente n tabelul (lista) FACTURI, pentru ca identificarea se face dupa numarul de ordine al coloanei, nu dupa denumirea ei. Functia, care rezolva acest lucru este: VLOOKUP () B. Fiindca s-a facut redenumirea n prealabil se nteleg mai usor argumentele. Functia este scrisa n FoaiaFact iar Nomenclatorul se gaseste foaia Nom.

Fig 10.3

=VLOOKUP(E2;Nom!$A$1:$C$7;2)
Nr de ordine a coloanei dinNom de unde se iadenumirea

Nomenclator Nom adica domeniul sau


Celula de referinta unde este CODP n Foaia Fact

Fig 10.4 (Functia VLOOKUP() pentru Denumire) Urmariti Fig 10.1 si vedeti ca celula de referinta este E2 adica CODP (codul produsului). Nomenclatrul se gaseste n foaia Nom si este cuprins n dreptunghiul format de celulele A1 si C7. S-a scris $A$1:$C$7 pentru ca este o zona fixa, (un domeniu). Denumirea produsului se gaseste n Nom n coloana 2 pe cnd pretul produsului se gaseste n coloana 3. Formulele sunt cele din Fig 10.5. Se scrie prima formula cea din F2 si apoi este copiata prin glisare, pe coloana n jos. Formula se poate scrie direct sau se poate apela functia VLOOKUP vezi Fig 10.6 si Fig 10.7

Fig 10.5 n concluzie avem Nomenclatorul pe o Foaie de lucru separata (nu e obligatoriu, e recomandabil) codurile din Nomenclator sunt obligatoriu n ordine strict crescatoare (adica fara dubluri) si cautarile se fac pe verticala. n Fig 10.8 si Fig 10.9 am redenumit domeniul si acest lucru se vede n argumentele functieiVLOOKUP.

Fig 10.6 (Inserarea comenzii functie) Cautati iconita sau n cautam VLOOKUP.

meniul

principal

comanda nserare, apoi Functie si

Fig 10.7 (Apelarea functieiVLOOKUP) Pentru Lookup_value nu este nevoie sa se scrie E2 ci sa se faca clic pe celula E2.

Pentru Table_array se face clic pe acest marcator declansator si cu ajutorul mausului se face clic pe numele foii Nom si se baleiaza apoi lista nomenclator A1:C7, nca un clic pe marcatorul declansator, A1:C7 apare n ferestruica, apasam tasta F4 sa punem semnul dolar $ naintea liniei si a coloanei si apare $A$1:$C$7. n ferestruica Col_index_num care nseamna numarul de ordine al coloanei din Nomenclator, scriem 2, pentru ca denumirea este a doua coloana dinNomenclator. Vedeti n Fig 10.7 Range lookup. Este un argument logic. Rolul lui se gaseste n Fig 10.9. el specifica cum se face cautarea: exact sau aproximativ. Formulele generate pentru VLOOKUP lookup exista TRUE sau FALSE ca n Fig 10.8 () difera dupa cum n Range

Fig 10.8 Argumentul FALSE e obligatoriu, daca este omis se subntelege TRUE, cu consecintele de rigoare din Fig 10.9. Daca nRange lookupeste scris:

Aceasta nseamna: n cazul n care codul nu exista n Nom se va afisa denumirea si pretul celui mai apropiat cod ca valoare. Codul 222 nu exista n Nom. Cel mai apropiat cod este 112. s-a afisat denumirea de la 112 "Zahar", ceea ce este o aberatie din punct de vedere a gestiunii corecte. Daca exista codul n Nom, atunci i se afiseaza atributele sale, daca nu exista se afiseaza un mesaj de eroare. Obligatoriu n gestiuni se foloseste aceasta a doua forma! Nu sunt permise ambiguitati. Un produs are un cod!

True sau nimic

False

Fig 10.9 Observati n Fig 10.7 ca facnd clic pe E2 n ferestruica Lookup_value a aparut nu E2 ci CODP, numele coloanei, pentru ca a avut loc, n prealabil, o redenumire a domeniului. Vezi Lectia 6. Respectati urmatoarele reguli:

Suntem atenti sa nu dam coduri n afara celor din Nomenclator pentru ca rezultatele sunt eronate, se va afisa ultimul cod din Nom. Nu este obligatoriu ca sa avem denumirea de Nomenclator, poate exista si fara denumire. Daca schimbam denumirea sau pretul unui produs n Nomenclator toate rndurile din foaia Fact, care au acelasi cod, se vor modifica. Daca apar coduri noi, nti le introducem n Nom sortam din nou nomenclatorul si intervenim n formule din lista ca sa schimbam zona n care se gaseste noulNomenclator.

Fig 10.10

Fig 10.11

Fig 10.12 Fig 10.10 Fig 10.11 Fig 10.12 Fig 10.13

Fig 10.13
Lista nainte de introducerea unui nou cod Nomenclatorul nainte de introducerea unui nou cod s-a introdus un nou cod 222 si s-a resortat Nom s-a modificat formula n loc de $C$9 s-a scris $C$10

Lista cuprinde si noul produs 222 Oua.

Concluzia: cnd construim Nomenclatorul sa punem n el nu numai codurile care se gasesc la un moment dat n depozit, ci pe toate care pot sa apara n viitor. Ne ghidam dupa ofertele furnizorilor, dupa propria noastra experienta etc.Cnd apare o noua marfa o introducem nNomenclator, dar poate sa fie acolo fiindca odata si odata a mai fost.

Fig 10.14 Nu stergeti coduri de produse care vi se par vechi. Mare greseala. Ex: n 2001 a fost un produs "ABS"cu codul 123. Trei ani nu a mai aparut si n locul lui s-a trecut cu acelasi cod produsul "XCV". Cineva a vrut sa consulte arhiva din 2001 peste tot vechiul produs "ABS" a fost nlocuit cu "XCV". S-a putut reface toata ncurcatura, dar cu ce cheltuieli!

1.3 Functia HLOOKUP


Exista si functia HLOOKUP care face cautari pe orizontala ntr-un tabel de tip Nomenclator. (Nomenclatorul este aranjat pe orizontala si de aceea se fac cautari pe orizontala).

Fig 10.15 (Ce nseamna HLOOKUP) Functia HLOOKUP are aceiasi logica a sintaxei ca functia VLOOKUP.

Fig 10.16 Observatie: Exista riscul de a gresi atunci cnd dam un cod gresit, dar codul exista n Nomenclator si n loc de un produs apare altul. Aici doar atentia operatorului poate preveni o asemenea greseala.

O metoda buna prin care se elimina o serie de greseli este aceea ca nu permite scrierea n Facturi, dect codurile din Nomenclator. Aceasta este procedura (comanda Validare).

1.4 Ce nseamna VALIDARE


n sens general n informatica, prin validare, se ntelege verificarea datelor de intrare ntr-un program de calculator. n cazul nostru e necesar sa aducemNomenclatorul n aceiasi Foaie de lucru cu Tabelul facturilor, pentru ca altfel nu functioneaza comanda Validare. A fost adus si lucrurile se prezinta ca n Fig 10.13. Mentin afirmatia ca Nomenclatorul era mai bine sa fie pe o Foaie de lucru separata, nu pentru ca este o regula specifica EXCEL-ului, ci pentru mai multa ordine.

Fig 10.17 Comanda Validare se apeleaza ca n Fig 10.18

Nu mai repet ca se face clic pe Date, apoi pe Validare, etc. Fig 10.18 La Criterii de validare din Meniul derulant alegem lista si se obtine Fig 10.18! n dreapta avem un marcaj declansator care mi permite sa aleg cu mausul domeniul unde se afla lista. Facem clic pe marcajul declansator si baleiem domeniul unde se afla lista.E vorba de lista de coduri din Nomenclator. Facem din nou clic pe marcajul declansator si apare domeniul =$k$4:$K$9 Fig 10.19.

Aici este marcajul declansator. Faceti clic pe el si baleiati coloanaK. n ferestruica apare Lista

Fig 10.19

n final apare Fig 10.20, unde la coloana CODP avem un meniu ascuns (derulant) si n el sunt codurile din Nomenclator. n plus se pot stabili, atunci cnd se instaleaza Validarea, mesaje de intrare, avertizare de eroare, lucru care s-a si facut, dar nu sunt ntotdeauna necesare. Fig 10.20 si Fig 10.21
Faceti clic aici! Apar codurile din Lista singurele ce pot fi utilizate.

Fig 10.20

Fig 10.20 (Semnalarea unei erori de introducere a datelor. Codul 777 nu este corect!)

. La nceput asemenea mesaje plac. Dupa un timp devin enervante!

S-ar putea să vă placă și