Bralci, kot ste vi, pomagajo podpirati MUO. Ko opravite nakup prek povezav na našem spletnem mestu, lahko zaslužimo partnersko provizijo. Preberi več.

Vlookup je bistvena funkcija v Excelu in je postal pomemben del obdelave podatkov. Zagotavlja nekatere funkcije, ki jih običajno povezujete s celovito bazo podatkov.

Kaj pa, če želite to funkcijo avtomatizirati? Da, to je mogoče, še posebej, če znate uporabljati Excelov izvorni jezik za avtomatizacijo, VBA. Evo, kako lahko avtomatizirate funkcijo vlookup v Excel VBA.

Sintaksa funkcije Vlookup

Sintaksa funkcije vlookup je precej preprosta, vendar ima štiri vidike, na katere se morate osredotočiti, tudi če jo avtomatizirate v Excelu VBA.

=vlookup (lookup_value, lookup_array, column_index, exact_match/partial_match)

Argumenti funkcije imajo naslednji pomen:

  • iskalna_vrednost: To je primarna vrednost, ki jo želite poiskati v matriki za iskanje.
  • iskalna_matrika: To so izvorni podatki, ki jih bo lookup_value uporabil kot referenco.
  • indeks_stolpca: Stolpec za vrnitev vrednosti.
  • instagram viewer
  • natančno_ujemanje/delno_ujemanje: Za določitev vrste ujemanja uporabite 0 ali 1.

Priprava podatkov

Ta niz podatkov ima dva dela: iskalno tabelo in ciljne podatkovne točke.

Iskalna tabela je sestavljena iz treh stolpcev s podatki, ki polnijo polja Podkategorija in Ime izdelka:

Ciljna tabela ima ujemajoče se stolpce, brez podatkov o podkategoriji ali imenu izdelka. Upoštevajte, da so vrednosti v njegovem stolpcu ID naročila prisotne tudi v istem stolpcu v iskalni tabeli:

Uporaba funkcije Vlookup neposredno v Excelovi preglednici

Če želite izpolniti ciljna stolpca, B in C, lahko uporabite Excelovo funkcijo vlookup.

V celici B2, vnesite naslednjo formulo:

=VLOOKUP($A2, $F$3:$H$17, 2, 0)

Podobno v celici C2, vnesite to formulo:

=VLOOKUP($A2, $F$3:$H$17, 3, 0)

Formulo lahko povlečete navzdol od celice B2 do konca stolpca, B17. Ta postopek ponovite tudi za stolpec C. Vrednosti za vsak naslednji vnos se samodejno posodobijo v obeh stolpcih.

Vrednosti, ki jih posredujete funkciji vlookup, so:

  • A2: iskalna vrednost je v tej celici.
  • F3:H17: To je sestavljeno iz obsega iskanja.
  • 2/3: referenčni stolpci, iz katerih se pridobi vrednost.
  • 0: Označuje natančno ujemanje.

Funkcija Vlookup programa Excel VBA

Funkcija vlookup ima veliko podobnosti, ne glede na to, ali jo uporabljate neposredno v Excelu ali prek VBA. Ne glede na to, ali ste podatkovni analitik, ki se ukvarja z vrsticami podatkov, ali upravitelj inventarja, ki redno obravnava nove izdelke, vam lahko koristi vlookup.

Ko delate z dinamičnim obsegom iskanja, je vedno najbolje avtomatizirati svoje formule, da se izognete večkratni uporabi formul v Excelu. Z avtomatizacijo vaše funkcije Vlookup v VBA lahko izvedete izračune v več stolpcih z enim klikom.

1. Izvedite zahtevano nastavitev

Začnite tako, da odprete urejevalnik kodiranja (pritisnite Alt + F11 ali se pomaknite do Razvijalec zavihek) v novem Excelovem delovnem zvezku in dodajte modul, da začnete pisati kodo. V urejevalniku kode dodajte naslednje vrstice na vrh okna za kodiranje, da ustvarite podprogram:

 Sub vlookup_fn1()End Sub

Podprogram je vsebnik za vašo kodo VBA in je ključnega pomena za uspešno izvajanje. Alternativa je, da ustvarite uporabniški obrazec VBA da bo vaš uporabniški vmesnik bolj interaktiven.

2. Označite svoje spremenljivke in ustvarite svoje referenčne obsege

Najprej morate deklarirati spremenljive podatkovne tipe z uporabo Dim izjava:

 Dim i kot celo število, lastrow kot long

Nato ustvarite a lastrow spremenljivko, da shranite vrednost zadnje izpolnjene vrstice znotraj vašega obsega iskanja. Lastrow funkcija uporablja konec (xldown) funkcijo za izračun sklica končne vrstice znotraj podanega obsega.

V tem primeru spremenljivka lastrow shrani zadnjo poseljeno vrednost vrstice obsega iskanja,17.

 lastrow = Sheets("Sheet2").Range("F3").End (xlDown).Row

V zgornjem primeru se ciljna tabela razteza od A2:C17, medtem ko se izvorna tabela razteza od F2:H17. Formula vlookup bo pregledala vsako vrednost, shranjeno v stolpcu A, jo poiskala v izvorni tabeli in prilepila ujemajoče se vnose v stolpca B in C.

Preden pa skočite v zanko, morate vrednosti obsega shraniti v novo spremenljivko (moj_razpon), kot sledi:

 my_range = Sheets("Sheet2").Range("F3:H" & lastrow)

Izrecno morate definirati sklic na začetno celico (F3) in sklic na končni stolpec (H). VBA samodejno doda vrednost vrstice za dokončanje matrike za iskanje.

3. Napišite zanko za kroženje skozi vsako iskalno vrednost

Pred pisanjem zanke določite vrednost začetne vrstice, 2. Določitev začetne vrednosti za vašo zanko je bistvena, saj imate opravka z dinamičnimi elementi. V ciljni tabeli je vrstica 2 prva vrstica podatkov. Spremenite to vrednost, če se vaši podatki začnejo v drugi vrstici.

 i = 2

Uporabite lahko a do-while zanke za obdelavo vsake vrstice, začenši v vrstici 2 in konča v vrstici 17. Tako kot preostali del kode je tudi ta vidik dinamičen; zanka se bo izvajala, dokler pogoj ni napačen. Uporabite pogoj za preverjanje neprazne vrednosti v prvi celici trenutne vrstice.

 Do While len (Sheets("Sheet2").Cells (i, 1).value) <> 0

Znotraj zanke lahko pokličete funkcijo VLookup za zapolnitev celic:

 Listi("Sheet2").Celice (i, 2).Vrednost = _ Aplikacija. Funkcija delovnega lista. VLookup (Sheets("Sheet2") _ .Cells (i, 1).Value, my_range, 2, False) Sheets("Sheet2").Cells (i, 3).Value = _ Application. Funkcija delovnega lista. VLookup (Sheets("Sheet2") _ .Cells (i, 1).Value, my_range, 3, False)

Ti stavki nastavijo vrednost celic v trenutni vrstici, v stolpcu 2 oziroma 3. Uporabljajo Funkcija delovnega lista predmet za klicanje VLookup funkcijo, ki posreduje ustrezno vrednost iz stolpca 1 za iskanje. Prav tako posredujejo obseg, ki ste ga definirali prej, in indeks ustreznega stolpca, iz katerega pridobijo končno vrednost.

Koda vlookup je pripravljena, vendar morate še vedno povečati spremenljivko vrstice vsakič po zanki:

 i = i + 1

Vsakič, ko se zanka zažene, poveča vrednost jaz z 1. Zapomnite si, da je začetna vrednost vrstice 2 in povečanje se zgodi vsakič, ko se zanka izvaja. Uporabi zanka ključno besedo za nastavitev konca bloka kode zanke.

Ko zaženete celotno kodo, bo zapolnila rezultate v obeh stolpcih na podlagi vrednosti v izvorni tabeli.

Tukaj je celotna koda za referenco:

 Sub vlookup_fn1() Dim i As Integer lastrow = Sheets("Sheet2").Range("F3").End (xlDown).Row my_range = Sheets("Sheet2").Range("F3:H" & lastrow) i = 2 Do While Len (Sheets("Sheet2").Cells (i, 1).Value) <> 0 On Error Resume Next Sheets("Sheet2").Cells (i, 2).Value = _ Aplikacija. Funkcija delovnega lista. VLookup (Sheets("Sheet2") _ .Cells (i, 1).Value, my_range, 2, False) Sheets("Sheet2").Cells (i, 3).Value = _ Application. Funkcija delovnega lista. VLookup (Sheets("Sheet2") _ .Cells (i, 1).Value, my_range, 3, False) i = i + 1 LoopEnd Sub

4. Ustvarite gumb za zagon kode

Ko koda ni na poti, lahko ustvarite gumb v Excelovem delovnem zvezku, da ga zaženete z enim klikom. Vstavite želeno obliko na prazen Excelov list, z desno miškino tipko kliknite nanjo in kliknite na Dodeli makro možnost.

V pogovornem oknu izberite ime podprograma in kliknite v redu.

Ko želite zagnati kodo, kliknite gumb, da vidite, kako se podatki takoj zapolnijo.

Uporaba programa Excel VBA za avtomatizacijo funkcij iskanja

Excel VBA je prilagodljiv jezik, ki je dobro prilagojen za lažjo avtomatizacijo v različnih vidikih MS Excela. V MS Excel VBA obstaja veliko možnosti, vse od avtomatizacije Excelovih funkcij do samodejnega ustvarjanja izdelanih vrtilnih tabel.

Ko delate z različnimi Excelovimi segmenti, lahko eksperimentirate z različnimi možnostmi, da bo vaše življenje lažje in učinkovitejše.