Vlookup - Useita tuloksia VBA: lla - Esimerkkejä VBA -koodista

Vlookup -teksti

Vlookup -vakiotoimintoa voidaan käyttää arvon löytämiseen taulukosta:

Ja käytämme VLOOKUPia seuraavasti:

= HAKU (A1: 10, "Koira", 2, EPÄTOSI)

antaa arvon 30.

Tässä luettelossa näemme kuitenkin, että koira esiintyy 3 kertaa. Normaali VLOOKUP -toiminto palauttaa vain tämän luettelon ensimmäiseen kohteeseen liittyvän arvon. Se ei palauta 125: tä tai 9 250: tä, kun luettelon toinen tai kolmas esiintymä on "koira".

Vlookup Useita tuloksia

Seuraavan funktion avulla voimme määrittää alueen, haettavan lausekkeen ja esiintymän (tuloksen numeron) ja palauttaa sitten vastaavan arvon:

Funktio Find_nth_Occurrence (sarakkeen_alue alue, lauseke merkkijonona, Occ kokonaislukuna) kaksinkertaisena himmennettynä solun himmennyksenä Tapahtumat_päivämääränä kokonaislukuna Find_nth_Occurrence = 1000000 esiintymisajan_päivämäärä = 0 jokaiselle solulle sarakkeessa_alue Jos solun arvo = ilmennys_tapahtuma Sitten Find_nth_Occurrence = Solun siirtymä (0, 1). Arvo Loppu Jos loppu Jos seuraava solun lopetusfunktio

Suurin ero tämän ja VLOOKUP -vakiotoiminnon välillä on, että tässä tapauksessa alue on ainoa tarra -alue - ei koko tietoalue.
Seuraava on aliohjelma, joka kutsuu tätä toimintoa komentopainikkeen napsautustapahtuman perusteella. Se näyttää taulukon 2 alueella A1: A8 sanan Koira 3. esiintymän:

Yksityinen alikomento CommandButton1_Click () Himmennä vastaus kaksinkertaisena vastauksena = Find_nth_Occurrence (Sheets ("Sheet2"). Alue ("A1: A8"), "Dog", 3) MsgBox AnswerEnd Sub

Muuttuja "Vastaus" tallentaa toiminnon tuloksen - joka näytetään sitten Msgbox -ruudulla:

> Jos sanaa ei kuitenkaan löydy luettelosta tai esiintymistiheyttä ei esiinny esim. Sanan "koira" viidennen esiintymän kohdalla, arvo 1 000 000 palautetaan:-
Vastaus = Find_nth_Occurrence (Sheets ("Sheet2"). Alue ("A1: A8"), "Dog", 5)
Tai
Vastaus = Find_nth_Occurrence (Sheets ("Sheet2"). Alue ("A1: A8"), "Hevonen", 2)

wave wave wave wave wave