Upotreba VLOOKUP funkcije u Excel-u

VLOOKUP je jedna od najkorisnijih Excel funkcija. To je takodje, i jedna od najmanje razumljivih excel funkcija. U ovom tekstu ćemo pokušati da “demistifikujemo” VLOOKUP funkciju na način što ćemo karakteristike njenog rada objasniti kroz realizaciju jednog realnog finansijskog dokumenta – kreiraćemo potpuno upotrebljiv šablon fakture za neko hipotetičko preduzeće.

Sa funkcijama kao matematičkom kategorijom smo se počeli susretati u djetinjstvu – već prvih dana školovanja. Druženje sa funkcijama je u početku najčešće bilo kroz  matematiku kao školski predmet, mada ni neki drugi školski predmeti nisu oskudjevali u korištenju kategorija čiji je imenitelj funkcija. Naše prve funkcije su bile: apsolutna vrijednost, kvadratni korjen,sinus, kosinus, tanges… Kada smo počeli učiti programske jezike – funkcije su se pojavile kao sastavni dio razvoja programskog proizvoda a predefinisane funkcije koje su dolazile uz programske jezike su najčešće bile grupisane prema podršci koju su one pružale u odnosu na specifične tipove podataka (stringovi su imali svoj set funkcija, brojevi – svoj, datumi – svoj). Skoro svi programski jezici (pascal, basic, JAVA, C++, PHP…) su imali skoro identičan set funkcija opšte namjene. Kad smo “ušli u Excel vode”, nije nam bilo “čudno” kad smo otkrili  da i on ima funkcije (“poveži 2 niza”, “oduzmi dva datuma”, “pretvori niz u broj” itd).Tekst koji slijedi pretpostavlja da čitalac razumije osnovne mehanizme rada Excel funkcija  i da čitalac zna da koristi osnovne Excel funkcije kao što su npr  SUM, AVERAGE, TODAY. Ono što VLOOKUP funkciju razlikuje od ostalih Excel funkcija je prije svega činjenica da u drugim sferama  ljudskog (kompijuterskog) djelovanja (u drugim programskim jezicima ili u matematici, fizici) ne susrećemo funkciju koja bi bila “pandam” VLOOKUP funkciji. Upravo zbog ove činjenice se suočavamo sa početnom odbojnošću korisnika da prihvati ovu funkciju u svom svakodnevnom radu. VLOOKUP je funkcija koja ima svoje argumente (parametre) i vraća vrijednost. U najopštijem smislu VLOOKUP je database funkcija, što znači da radi nad tabelama baze podataka ili, da ne budemo tako strogi – nad listom podataka (što u excel terminologiji pretstavlja worksheet ili neki dio worksheet-a).

Koje zahtjeve lista podataka treba zadovolji da bi se koristila u VLOOKUP funkciji? Za početak to treba prije svega da bude neki skup podataka. Lista može da pretstavlja listu proizvoda, listu zaposlenih radnika, listu video kaseta… Svaka od ovih lista može da ima specifične dodatne atribute (lista “zaposleni radnici”, npr može imati atribute – ime i prezime radnika, JMBG, adresu, radno mjesto itd). Za VLOOKUP je nebitno koji su to dodatni podaci – dodatni atributi. Postojanje liste podataka je preduslov da se može koristiti VLOOKUP funkcija.

Slijedeća slika prikazuje listu podataka – listu proizvoda neke kompanije koju ćemo u nastavku teksta eksploatisati kako bi objasnili način rada VLOOKUP funkcije:

vlookup 1Liste podataka treba da sadrže u sebi neku vrstu identifikatora – svaki red u listi treba da sadrži neki atribut (neko svojstvo) koji podatak u konkretnom  redu na jedinstven način razlikuje od podataka u ostalim redovima u listi. U prethodnoj listi, podaci koji su uneseni u kolonu (u atribut) “Item Code” imaju svojstvo jedinstvene identifikacije svih ostalih atributa izabranog reda – proizvoda.  Atribut koji u listi ima svojstvo jedinstvene identifikacije se naziva ključ.

Sada smo u mogućnosti da preciznije definišemo glavne zahtjeve koje lista mora ispuniti da bi se nad njom mogla realizovati VLOOKUP funkcija:

  • Mora postojati kolona koja će imati ulogu “ključa”. To znači da naša lista proizvoda može imati 2 proizvoda sa istim imenom, može imeti 5 proizvoda sa istom cjenom ali svaki od tih proizvoda u koloni “Item code” mora imati jedinstvenu šifru koja ga razlikuje od ostalih proizvoda u listi
  • Kolona koja ima ulogu “ključa” mora biti prva kolona u listi. To znači da na našoj prethodnoj slici, ako nam lista počinje od “A” kolone, kolona “Item Code” nije smjela bit u “B” ili “C” koloni Excel sheet-a nego baš u onoj koloni u kojoj smo je i prikazali – u koloni A.

Najteži dio kod shvatanja načina rada VLOOKUP funkcije je tačno razumjevanje prethodno definisana 2 zahtjeva.  Bilo bi dobro da provjerimo da li nam je jasno šta zahtjevi znače. Formalna definicije VLOOKUP funkcije u referentnoj dokumentaciji glasi:

VLOOKUP vraća informaciju iz baze podataka/liste na osnovu vrijednosti jedinstvenog identifikatora koji je prosljedjen kao parametar.

Drugačije rečeno, ukoliko u neku ćeliju excel sheet-a ukucamo VLOOKUP funkciju i ukoliko funkciji kao argumenat proslijedimo jedinstveni identifikator naše liste podataka, funkcija će nam vratiti vrijednost jednog od atributa koji je povezan sa vrijednošću jedinstvenog identifikatora koji smo proslijedili kao parametar. Ako to povežemo sa našim primjerom koji se odnosi na listu proizvoda, mi ćemo VLOOKUP funkciji proslijediti konkretni “Item code” a VLOOKUP će nam vratiti ili naziv proizvoda ili cjenu proizvoda ili raspoloživost proizvoda (broj komada na zalihama). Koja od ovih informacija će biti vraćena upotrebom VLOOKUP funkcije zavisi od načina na koji smo definisali parametre funkcije a to će nam biti jasno čitajući nastavak teksta.

Prije nastavka diskusije, jedna digresija.

VLOOKUP funkcija nije ekonomična za upotrebu za sve vrste pretraživanja baza podataka. Ukoliko je Vaš cilj da u bazi podataka ili u listi podataka pronadjete samo jedan konkretan podatak i uz njega vezane dodatne atribute mnogo je racionalnije upotrebiti komandu FIND iz Excel tool bara kojoj ćete prosljediti vrijednost koju tražite. Za pravilan rad VLOOKUP funkcije su potrebna podešavanja koja je ekonomično raditi samo ukoliko se za rezultat obrade treba dobiti skup podataka zasnovan na nekoj vrsti templatea u kojem svaki elemenat tog templatea traži dodatne podatke iz baze podataka. Da bi se funkcija VLOOKUP pravilno podesila treba realizovati niz koraka koji su opisani u nastavku ovog materijala. Ovaj skup aktivnosti nije racionalno primjenjivati za slučaj kada treba u bazi podataka da nadjemo 1, 2 ili 3 podatka.

Kraj digresije.

Krenimo sada na konkretan rad – hajde da kreiramo  šablon fakture koji ćemo kasnije moći višestruko da koristimo.

Prvo moramo da pokrenemo Excel…

vlookup 2…i kreirajmo za naše potrebe praznu fakturu samo sa osnovnim elementima:

vlookup 3 Scenario kako faktura treba da radi bi bio sljedeći:  Radnik u preduzeću će koristiti template fakture na način što će unositi skup šifara artikala u kolonu “A” a sistem će za svaku od tih šifara proizvoda vraćati naziv proizvoda i cijenu. Cijena će biti iskorištena za računanje ukupne cijene za proizvod (uz pretpostavku da se naručuje validan broj proizvoda – ne veći od količine na zalihama).

U želji da ovaj primjer ne bude previše komplikovan, bazu podataka sa informacijama o svim proizvodima kojima raspolaže preduzeće, njihovim cijenama i količini na zalihama ćemo čuvati na posebnom sheet-u unutar istog Excel dokumenta – unutar istog workbook-a:

vlookup 4U realnosti, mnogo je vjerovatnije da će se produkcioni podaci nalaziti u nekom drugom fajlu u fajl sistemu računara.  Za shvatanje načina rada VLOOKUP funkcije taj momenat nam nije od značaja. Realna situacija će uzrokovati da se mora uraditi mala dorada u načinu prosljedjivanja parametara funkciji VLOOKUP. Rad funkcije VLOOKUP nije opterećen ispitivanjem da li je baza podataka iz koje se uzimaju podaci u istom excel sheet-u, u drugom sheet-u unutar workbook-a ili u nekom drugom file-u u operativnom sistemu (tom problematikom se bave pravila za definisanje parametara VLOOKUP funkcije odnosno pravila parametrizacije Excel dokumenata).

vlookup 5U cilju testiranja VLOOKUP funkcije, treba prvo da ukucamo korektnu šifru proizvoda u ćeliju A11. Kolona A je kolona iz naše fakture u koju unosimo šifre proizvoda koje neki klijent kupuje a ćelija A11 je pva ćelija u A koloni u koju smijemo za ovu fakturu da unosimo šifre proizvoda. Ovo ograničenje je posljedica definicije template-a fakture koji smo prikazali na prethodnim slikama a ne VLOOKUP funkcije. Šifra koju unesemo u kolonu A11 treba da bude neka od šifara iz kolone ItemCode.

vlookup 6 Sljedeći korak je – pozicioniranje na ćeliju u kojoj želimo da nam se upišu podaci iz baze podataka korištenjem VLOOKUP funkcije. Interesantno je da je ovo korak koji korisnicima koji definišu način upotrebe VLOOKUP funkcije stvara najviše problema. Da pojasnimo: treba da kreiramo VLOOKUP formulu koja treba da nam vrati ime proizvoda iz baze podataka koje odgovara šifri proizvoda koji smo ukucali u ćeliji A11. Gdje želimo da ime proizvoda bude ispisano? U ćeliji B11 – naravno. Stoga – gdje treba unjeti VLOOKUP funkciju – u ćeliju B11.

Odaberimo ćeliju B11:

vlookup 7 Vremenom ćemo naučiti sintaksu VLOOKUP funkcije pa ćemo biti u mogućnosti da direktno ukucamo vrijednosti svih parametara funkcije uz minimalnu asistenciju Excel tooltips-a. Ovom prilikom,  obzirom da učimo kako VLOOKUP funkcija radi, potpuno ćemo se osloniti na Excel čarobnjaka.

Potrebno je da izaberemo listu svih raspoloživih funkcija koje Excel ima u svom asortimanu a iz koje ćemo u narednom koraku odabrati VLOOKUP funkciju. Izborom ove funkcije će nam biti ponudjena pomoć za definisanje vrijednosti njenih parametara.  Da bi se ovo uradilo, treba prvo da izaberemo tab Formulas a zatim iz podmenija da izaberemo Insert Function:

vlookup 8 Forma za komunikaciju koja se pojavljuje na ekranu Vam omogućuje da odaberete bilo koju od Excel funkcija. Lista raspoloživih funkcija je ogromna i pretraga može da potraje.

vlookup 9Da bi postupak ubrzali na raspolaganju nam je mogućnost da ukucamo ključnu riječ za pretragu. Ako u prethodnoj formi ukucamo “lookup” (zato što je funkcija koja nama treba lookup funkcija) početna lista se znatno skraćuje.  Sistem će nam vratiti sve “lookup” funkcije a naša VLOOKUP funkcija je na vrhu liste.  Odaberimo željenu funkciju i pritisnimo taster  OK

vlookup 10Dobijamo novu formu za komunikaciju – Function Arguments box, preko koje se od nas traži da definišemo vrijednosti svih argumenata (parametara) VLOOKUP funkcije. Možete ovu formu zamisliti kao upitnik preko kojeg treba da damo odgovor na sljedeća 3 pitanja:

  1. Koji jedinstveni identifiktor tražimo u bazi podataka?
  2. Gdje je baza podataka – šta je skup podataka koji čini listu?
  3. Koju vrijednost atributa iz baze podataka povezanu sa identifikatorom koji tražimo treba da vratimo u excel ćeliju  u kojoj definišemo VLOOKUP funkciju?

VLOOKUP funkcija ima 4 argumenta. Prva 3 argumenta su u formi za komunikaciju označena bold slovima čime se naglašava da su podaci obavezni za unos (VLOOKUP funkcija će biti nekompletna dok se svi oni ne definišu – funkcija neće vratiti nikakve podatke ukoliko bilo koji od ova 3 argumenta nije definisan).  Četvrti argumenat nije ispisan bold fontom što znači da je opcionalan.

vlookup 11Prvi argumenat koji treba da kompletiramo je Lookup_value argumenat.  Funkcija traži od nas da definišemo gdje se nalazi jedinstveni identifikator (item codes za naš primjer) koji će biti iskorišten da za taj identifikator kasnije pronadjemo njegov naziv. Moramo odabrati šifru proizvoda koju smo ukucali u ćeliji A11.

Mišem izaberite “selector icon” desno od polja za unos prvog argumenta:

vlookup 12Zatim mišem odaberite ćeliju u Excelu gdje se nalazi šifra proizvoda kojeg ste ukucali (A11) i pritisnite Enter:

vlookup 13Vrijednost  “A11” je umetnuta kao prvi argumenat.

Sada treba da unesemo vrijednost za argumenat Table_array.  Drugačije rečeno, treba da kažemo VLOOKUP funkciji gdje da potraži listu podataka – bazu podataka.  Mišem izaberite “selector icon” desno od polja za unos drugog argumenta:

vlookup 14Sada locirajte mjesto gdje je baza podataka – lista vrijednosti i markirajte cjelu listu (nemojte markirati zaglavlja kolona u kojima su ispisani nazivi kolona). Za ovaj primjer, baza podataka se nalazi u posebnom worksheet-u, zato je potrebno da prvo izaberemo odgovarajući worksheet tab:

vlookup 15U sljedećem koraku ćemo markirati cjelu bazu podataka (isključujući zaglavlje sa imenom kolona):

vlookup 16…i pritisnuti Enter.  Opseg ćelija koji pretstavlja bazu podataka (u ovom slučaju “’Product Database’!A2:D7”) je unešen automatski u polje za drugi argumenat.

Na ovom mjestu treba primjetiti da smo ispoštovali zahtjev sa početka teksta da ključni atribut liste podataka formira prvu kolonu liste podataka. VLOOKUP funkcija će vrijednost koju smo specificirali kao prvi argument tražiti u prvoj koloni ove liste.

Slijedi definisanje trećeg argumenta, Col_index_num.  Ovaj argumenat koristimo da funkciji  VLOOKUP “prenesemo” informaciju o rednom broju atributa iz selektovane baze podataka čija vrijednost za traženi id (iz prvog argumenta) želimo da se vrati u našu excel ćeliju. U našem konkretnom primjeru, želimo da nam se vrati naziv proizvoda, odnosno description. Ukoliko pogledamo worksheet gdje je baza podataka definisana, primjetićemo da je kolona “Description” druga kolona u bazi podataka.  Ovo znači da moramo unjeti “2” kao vrijednost argumenta Col_index_num:

vlookup 17Veoma je bitno da uoćimo da nismo u ovom slučaju ukucali “2” zbog toga što je atribut “Description” u B koloni worksheet-a već zato što je to druga kolona u bazi podataka.  Da se desilo da smo definisali bazu podataka koja počinje u koloni K worksheet-a, u ovoj novoj bazi podataka bi unjeli za vrijednost trećeg argumenta takodje oznaku “2”.

Konačno, treba da odlučimo da li da definišemo vrijednost za posljednji argumenat  VLOOKUP funkcije, Range_lookup.  Ovaj argumenat može imati dvije vrijednosti – true ili false, ili može ostati nedefinisan.  Kada koristimo funkciju VLOOKUP nad bazom podataka (listom podataka) , što je istina u bar 90% slučajeva, tada odluka šta da stavimo kao vrijednost ovog argumenta  zavisi od sljedećeg:

  • Ako je prva kolona baze podataka (kolona koja sadrži jedinstveni identifikator) sortirana u rastućem redosljedu, tada je potrebno da postavimo za vrijednost ovog parametra konstantu true ili da ovaj parametar ostavimo nedefinisanim.
  • Ukoliko prva kolona baze podataka nije sortirana ili je sortirana u padajućem redosljedu, tada za vrijednost ovog parametra moramo uzeti konstantu false

Pošto u našem primjeru prva kolona liste podataka nije sortirana, za vrijednost 4. parametra ćemo uzeti false:

vlookup 18To bi bilo sve.

Na ovaj način smo definisali parametre koji su potrebni funkciji VLOOKUP da vrati korektnu vrijednost za naš upit. Pritisnite taster OK i uočite da je opis koji odgovara šifri proizvoda  “R99245”  korektno prikazan u ćeliji B11:

vlookup 19Formula koja je kreirana za nas ima sljedeći oblik:

vlookup 20Ukoliko unesemo drugu šifru proizvoda u ćeliju A11, postaćemo svjesni snage  VLOOKUP funkcije:  vrijednost u polju “description” se automatski mjenja na način da zadovoljava vrijednost nove šifre proizvoda:

vlookup 21Sličan postupak postupku  koji smo sproveli za dobijanje naziva proizvoda za izabranu šifru možemo sprovesti kako bi dobili cijenu proizvoda u ćeliji E11 naše fakture. Uočite da se u ćeliji E11 za ovu funkcionalnost mora kreirati nova formula (ne može se raditi copy postojeće formule).  Rezultat će biti sličan prikazu na sljedećoj slici:

vlookup 22…a nova formula treba da odgovara sljedećem tekstu:

vlookup 23Uočite da je jedina razlika izmedju 2 uradjene formule vrijednost trećeg argumenta  (Col_index_num) i ona je izmjenjena sa vrijednosti  “2” na “3” (pošto želimo da nam se prikažu podaci iz treće kolone iz baze podataka).

Ukoliko smo odlučili da kupimo 2 artikla izabrane šifre, trebali bi da ukucamo broj “2” u ćeliju D11.  Sada bi mogli da ispišemo i jednostavnu formulu u ćeliju F11 kako bi dobili cijenu za naručenu količinu proizvoda:

=D11*E11

…sve to skupa izgleda kao na sljedećoj slici…

vlookup 24Kompletiranje template-a fakture

Mnogo smo naučili o  VLOOKUP funkciji do sada. Ustvari, naučili smo sve što nam je bio cilj da naučimo kroz ovaj tekst. Važno je da znate da  se VLOOKUP funkcija može koristiti i u druge svrhe pored toga što se koristi da se pronadju podaci u bazi podataka za izabranu šifru. Ove druge namjene su manje očigledne i o njima će biti govora nekom drugom prilikom.

Naš template fakture još nije kompletiran. Kako bi se taj zadatak realizovao korektno do kraja potrebno je uraditi još i sljedeće:

  1. Treba da uklonimo šifru proizvoda iz ćelije A11 koju smo tamo ukucali da bi objasnili način upotrebe funkcije VLOOKUP kao i količinu (2) koju smo unjeli u ćeliju D11. Ova brisanja podataka će prouzrokovati drugačiji prikaz rezultata rada VLOOKUP funkcije – prikaz koji indicira da je došlo do greške u radu:vlookup 25Prikaz greške u radu funkcije nije “user frendly” i poželjno ga je zaobići. Stvar se jednostavno rješava korištenjem Excel-ovih funkcija IF() i ISBLANK().  Izmjenićemo naše formule na način da izvorni oblik prikazan u sljedećem redu: …

=VLOOKUP(A11,’Product Database’!A2:D7,2,FALSE)

…prevedemo u oblik…

=IF(ISBLANK(A11),””,VLOOKUP(A11,’Product Database’!A2:D7,2,FALSE))

  1. Trebalo bi da kopiramo formule iz ćelija  B11, E11 i F11 u ostale redove fakture – sve do poslednjeg reda u koji je dozvoljeno operaterima da unose podatke o prodanim proizvodima.  Uočite da ukoliko ovo uradite, rezultirajuće nove formule u novim redovima fakture neće korektno referisati opseg baze podataka. Da bi se ovaj problem izbjegao uradićemo na drugom parametru funkcije VLOOKUP promjenu relativnih referenci na ćelije baze podataka u apsolutne reference adresa ćelija. Alternativno riješenje, i čak bolje riješenje je da kreiramo ime koje će biti sinonim za opseg podataka koji ulazi u sastav baze podataka (recimo da to ime bude “Products”), a onda da u formulama umjesto ćelija koje definišu granice baze podataka koristimo definisano ime. U ovom slučaju formula bi se izmjenila iz sljedećeg oblika….

=IF(ISBLANK(A11),””,VLOOKUP(A11,’Product Database’!A2:D7,2,FALSE))

…u…

 =IF(ISBLANK(A11),””,VLOOKUP(A11,Products,2,FALSE))

…Poslije ovakve intervencije je moguće kopirati formulu u ostale redove koji formiraju tjelo template-a fakture bez bojazni da ćemo imati problema sa referisanjem na opseg ćelija u kojima se nalaze podaci baze podataka (kako se definišu imena u Excel-u možete pogledati na ovom istom blog-u u posebnom tekstu).

  1. Trebali bi “zaključati” ćelije koje sadrže formule (ili tačnije otključati ostale ćelije), a zatim zaštititi  worksheet, kako bi smo obezbjedili da se naše pažljivo kreirane formule slučajno ne prebrišu tokom unosa podataka od strane korisnika template-a fakture.
  2. Trebali bi da sačuvamo cjeli dokumenat u obliku template dokumenta kako bi se mogao kao šablon koristiti od strane svih zainteresovanih korisnika firme.

Na kraju, ukoliko se osjećamo sigurnim u naše shvatanje načina rada VLOOKUP funkcije, mogli bi da kreiramo bazu podataka svih klijenata u posebnom worksheet-u i da onda koristimo ID klijenta koji bi unosili u ćeliju F5 da se na osnovu njega automatski popune podaci o imenu klijenta i njegovoj adresi u ćelijama B6, B7 i B8.

vlookup 26

Advertisements

One thought on “Upotreba VLOOKUP funkcije u Excel-u

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s