Funktsiooni VLOOKUP täiustamine

Sisu

Kuidas langevarju õigesti pakkida?

Kasu. 2. väljaanne, muudetud.

Oletame, et meil on järgmine tellimuste tabel:

Funktsiooni VLOOKUP täiustamine

Peame näiteks teadma, kui suur oli Ivanovi kolmanda tellimuse summa või millal Petrov oma teise tehingu sooritas. Sisseehitatud funktsioon VLOOKUP saab otsida ainult perekonnanime esimest esinemist tabelis ega aita meid. Küsimused nagu "Kes oli tellimuse nr 10256 haldur?" jääb ka vastuseta, tk. sisseehitatud VLOOKUP ei suuda tagastada väärtusi otsingust vasakul asuvatest veergudest.

Mõlemad ülesanded lahendatakse ühe hoobiga – kirjutame oma funktsiooni, mis ei otsi mitte ainult esimest, vaid üldiselt ka N-ndat esinemist. Lisaks saab see otsida ja toota tulemusi mis tahes veergudes. Nimetagem seda näiteks VLOOKUP2-ks. 

Avage Visual Basicu redaktor, vajutades ALT+F11 või valides menüüst Teenus – makro – Visual Basicu redaktor (Tööriistad – makro – Visual Basicu redaktor), sisestage uus moodul (menüü Sisesta – moodul) ja kopeerige selle funktsiooni tekst sinna:

Funktsioon VLOOKUP2 (tabel variandina, otsinguveeruarv nii pikk, otsinguväärtus kui variant, _ N nii pikk, tulemusveeru arv pikk) Dim i nii pikk, iCount As Long Valige juhtumi tüüpNimi(tabel) Juhtjuht "Vahemik" i jaoks = 1 kuni tabelini.Rida .Count If Tabel.Cells(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 End If If iCount = N Siis VLOOKUP2 = Table.Cells(i, ResultColumnNum) Välju For End If Next i Juhtum "Variant()" i puhul = 1 UBound(tabel) Kui tabel(i, otsinguveeruarv) = otsinguväärtus, siis iCount = iCount + 1, kui iCount = N, siis VLOOKUP2 = tabel(i, tulemuseveeruarv) Välju lõppu Kui järgmine i End Valige Lõppfunktsioon  

Sulgege Visual Basicu redaktor ja naaske Excelisse.

Nüüd läbi Sisesta – funktsioon (Sisesta – funktsioon) kategoorias Kasutaja määratletud (kasutaja määratud) leiate meie funktsiooni VLOOKUP2 ja saate seda kasutada. Funktsiooni süntaks on järgmine:

=VLOOKUP2(tabel; otsitava_veeru_arv; otsingu_väärtus; N; veeru_arv_väärtuse_saamisest_väärtuseni)

Nüüd ei ole standardfunktsiooni piirangud meile takistuseks:

Funktsiooni VLOOKUP täiustamine

PS Eriline tänu The_Pristile funktsiooni täiustamise eest, et see saaks suletud raamatutest otsida.

  • Andmete otsimine ja asendamine ühest tabelist teise, kasutades funktsiooni VLOOKUP
  • “Vasak VLOOKUP”, kasutades funktsioone INDEX ja MATCH

 

Jäta vastus