Upload
kupovina-iz-fotelje
View
247
Download
1
Embed Size (px)
DESCRIPTION
kako koristiti v look up funkciju
Citation preview
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:
Liste 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…
…i kreirajmo za naše
potrebe praznu fakturu samo sa osnovnim elementima:
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:
U 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).
U 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.
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:
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 izaberemoInsert Function:
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.
Da 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 trebalookup 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…
Dobijamo 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.
Prvi
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:
Zatim
mišem odaberite ćeliju u Excelu gdje se nalazi šifra proizvoda kojeg ste ukucali (A11) i
pritisnite Enter:
Vrijednost “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:
Sada
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:
U sljedećem koraku ćemo markirati cjelu bazu
podataka (isključujući zaglavlje sa imenom kolona):
…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:
Veoma 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 – trueili 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:
To 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:
Formula koja je
kreirana za nas ima sljedeći oblik:
Ukoliko 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:
Slič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:
…a
nova formula treba da odgovara sljedećem tekstu:
Uoč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…
Kompletiranje 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:
Prikaz 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))
2. 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).
3. 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.
4. 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.