
Üldine valem
=VLOOKUP(A1,CHOOSE((1,2),range2,range1),2,0)
Kokkuvõte
Vasakpoolse otsingu teostamiseks VLOOKUP-i abil saate otsingu tabeli ümberkorraldamiseks kasutada funktsiooni CHOOSE. Näidatud näites on valem F5-s järgmine:
=VLOOKUP(E5,CHOOSE((1,2),score,rating),2,0)
kus skoor (C5: C9) ja hinnang (B5: B9) nimetatakse vahemikeks.
Selgitus
Funktsiooni VLOOKUP üks peamisi piiranguid on see, et see saab väärtusi otsida ainult paremale. Teisisõnu, otsingu väärtusi sisaldav veerg peab asuma VLOOKUP-iga allalaaditavatest väärtustest vasakul. Seda käitumist ei saa kuidagi ümber lükata, kuna see on funktsiooni külge kinnitatud. Selle tulemusel ei saa tavalise konfiguratsiooni korral VLOOKUP-i kasutada veerus B antud hinnangu leidmiseks veerus C antud hinnangu põhjal.
Üks lahendus on otsingutabeli enda ümberkorraldamine ja otsingu veeru liigutamine otsinguväärtustest vasakule. See on selles näites kasutatud lähenemisviis, mis kasutab funktsiooni CHOOSE vastupidist hinnangut ja skoori järgmiselt:
CHOOSE((1,2),score,rating)
Tavaliselt kasutatakse CHOOSE'i esimese argumendina ühe indeksi numbriga ja ülejäänud argumendid on väärtused, mille vahel valida. Kuid siin valime indeksarvu massiivikonstandi, mis sisaldab kahte arvu: (1,2). Sisuliselt palume valida nii esimese kui ka teise väärtuse.
Väärtused esitatakse näites kahe nimetatud vahemikuna: skoor ja hinnang. Pange tähele, et pakume need vahemikud vastupidises järjekorras. Funktsioon CHOOSE valib mõlemad vahemikud ettenähtud järjekorras ja tagastab tulemuse ühe massiivina järgmiselt:
(5,"Excellent";4,"Good";3,"Average";2,"Poor";1,"Terrible")
CHOOSE tagastab selle massiivi otse tabeli massiivi argumendina VLOOKUP. Teisisõnu, CHOOSE edastab VLOOKUPile sellise otsingu tabeli:
Kasutades otsingu väärtust E5-s, otsib VLOOKUP vastelaua vastloodud tabeli seest ja tagastab tulemuse teisest veerust.
Järjestuse muutmine massiivi konstandiga
Kuvatud näites korraldame otsingutabeli ümber, muutes valitud funktsiooni sees "hinnangu" ja "skoori". Kuid selle asemel võiksime massiivikonstandi asemel kasutada järjestust:
CHOOSE((2,1),rating,score)
Tulemus on täpselt sama.
Indeksiga ja MATCH
Kuigi ülaltoodud näide töötab hästi, pole see ideaalne. Esiteks ei saa enamik keskmistest kasutajatest aru, kuidas valem töötab. Loomulikum lahendus on INDEX ja MATCH. Siin on samaväärne valem:
=INDEX(rating,MATCH(E5,score,0))
Tegelikult on see hea näide sellest, kuidas INDEX ja MATCH on paindlikumad kui VLOOKUP.