„Vlookup“ yra esminė „Excel“ funkcija ir tapo svarbia duomenų apdorojimo dalimi. Tai suteikia tam tikrų funkcijų, kurias paprastai galite susieti su visapusiška duomenų baze.
Bet ką daryti, jei norite automatizuoti šią funkciją? Taip, tai įmanoma, ypač jei žinote, kaip naudoti „Excel“ vietinę automatizavimo kalbą VBA. Štai kaip galite automatizuoti vlookup funkciją „Excel VBA“.
„Vlookup“ sintaksė
Funkcijos „vlookup“ sintaksė yra gana paprasta, tačiau ji turi keturis aspektus, į kuriuos turite sutelkti dėmesį net automatizuodami „Excel VBA“.
=vlookup (paieškos_vertė, peržvalgos_masyvas, stulpelio_indeksas, tiksli_atitikimas/dalinis_atitikimas)
Funkcijos argumentai turi tokią reikšmę:
- lookup_value: Tai yra pagrindinė reikšmė, kurią norite ieškoti iš paieškos masyvo.
- lookup_array: Tai yra šaltinio duomenys, kuriuos lookup_value naudos kaip nuorodą.
- column_index: Stulpelis, iš kurio grąžinama vertė.
- tiksli_atitikimas/partal_match: Norėdami nustatyti atitikties tipą, naudokite 0 arba 1.
Duomenų paruošimas
Šį duomenų rinkinį sudaro dvi dalys: peržvalgos lentelė ir paskirties duomenų taškai.
Paieškos lentelę sudaro trys stulpeliai, kuriuose duomenys užpildomi subkategorijos ir produkto pavadinimo laukuose:
Paskirties lentelėje yra atitinkamų stulpelių be antrinių kategorijų ar produkto pavadinimo duomenų. Atminkite, kad užsakymo ID stulpelio reikšmės taip pat yra tame pačiame peržvalgos lentelės stulpelyje:
„Vlookup“ naudojimas tiesiogiai „Excel“ skaičiuoklėje
Norėdami užpildyti paskirties stulpelius B ir C, galite naudokite „Excel“ vlookup funkciją.
Ląstelėje B2, įveskite šią formulę:
=VLOOKUP(A2 USD, $F$3:$H$17, 2, 0)
Panašiai ir ląstelėje C2, įveskite šią formulę:
=VLOOKUP(A2 USD, $F$3:$H$17, 3, 0)
Galite vilkti formulę žemyn iš langelio B2 iki stulpelio pabaigos B17. Pakartokite šį procesą ir su C stulpeliu. Kiekvieno paskesnio įrašo reikšmės bus automatiškai atnaujinamos abiejuose stulpeliuose.
Vertės, kurias perduodate funkcijai vlookup, yra šios:
- A2: Paieškos reikšmė yra šiame langelyje.
- F3: H17: Jį sudaro paieškos diapazonas.
- 2/3: nuorodos stulpeliai, iš kurių reikia gauti vertę.
- 0: žymi tikslią atitiktį.
„Excel VBA“ „Vlookup“ funkcija
„Vlookup“ funkcija turi daug panašumų, nesvarbu, ar naudojate ją tiesiogiai „Excel“, ar per VBA. Nesvarbu, ar esate duomenų analitikas, dirbantis su duomenų eilėmis, ar atsargų vadybininkas, reguliariai dirbantis su naujais produktais, naudodamiesi vlookup galite gauti naudos.
Dirbant su dinaminiu paieškos diapazonu, visada geriausia formules automatizuoti, kad formulės nebūtų taikomos pakartotinai programoje „Excel“. Automatizuodami „Vlookup“ funkciją VBA, vienu paspaudimu galite atlikti kelių stulpelių skaičiavimus.
1. Atlikite būtiną sąranką
Pradėkite atidarydami kodavimo rengyklę (paspauskite Alt + F11 arba eikite į Programuotojas skirtuką) naujoje „Excel“ darbaknygėje ir pridėkite modulį, kad pradėtumėte rašyti kodą. Kodo rengyklėje pridėkite šias eilutes kodavimo lango viršuje, kad sukurtumėte paprogramę:
Sub vlookup_fn1()Pabaigos sub
Paprogramė yra jūsų VBA kodo talpykla ir yra labai svarbi norint jį sėkmingai vykdyti. Alternatyva yra sukurti VBA vartotojo formą kad jūsų vartotojo sąsaja būtų interaktyvesnė.
2. Deklaruokite savo kintamuosius ir sukurkite atskaitos diapazonus
Pirmiausia turite deklaruoti kintamųjų duomenų tipus naudodami Pritemdyti pareiškimas:
Dim i kaip sveikasis skaičius, paskutinė eilutė kaip ilga
Tada sukurkite a paskutinė eilė kintamąjį, kad išsaugotumėte paskutinės užpildytos eilutės reikšmę jūsų paieškos diapazone. Paskutinės eilutės funkcija naudoja pabaiga (xldown) funkcija apskaičiuoti galutinės eilutės nuorodą nurodytame diapazone.
Šiuo atveju paskutinės eilutės kintamasis išsaugo paskutinę paieškos diapazono užpildytą eilutės reikšmę,17.
paskutinė eilutė = Lapai ("Sheet2"). Diapazonas ("F3"). Pabaiga (xlDown).Eilutė
Aukščiau pateiktame pavyzdyje paskirties lentelė tęsiasi nuo A2:C17, o šaltinio lentelė tęsiasi nuo F2:H17. Vlookup formulė apžvelgs kiekvieną vertę, saugomą A stulpelyje, ieškos šaltinio lentelėje ir įklijuos atitinkamus įrašus į B ir C stulpelius.
Tačiau prieš pereidami prie ciklo, diapazono reikšmes turite išsaugoti naujame kintamajame (mano_diapazonas), taip:
mano_diapazonas = Lapai("Sheet2").Range("F3:H" & paskutinė eilutė)
Turite aiškiai apibrėžti pradžios langelio nuorodą (F3) ir pabaigos stulpelio nuoroda (H). VBA automatiškai prideda eilutės reikšmę, kad užbaigtų paieškos masyvą.
3. Parašykite kilpą, kad galėtumėte pereiti per kiekvieną paieškos reikšmę
Prieš rašydami kilpą, nustatykite pradinės eilutės reikšmę, 2. Kai dirbate su dinaminiais elementais, labai svarbu apibrėžti ciklo pradinę vertę. Paskirties lentelės 2 eilutė yra pirmoji duomenų eilutė. Pakeiskite šią reikšmę, jei jūsų duomenys prasideda kitoje eilutėje.
i = 2
Galite naudoti a daryti, kol kilpa, kad apdorotumėte kiekvieną eilutę, pradedant nuo 2 ir baigiant 17 eilute. Kaip ir visa kita kodo dalis, šis aspektas yra dinamiškas; ciklas veiks tol, kol sąlyga bus klaidinga. Naudokite sąlygą norėdami patikrinti, ar pirmame dabartinės eilutės langelyje nėra tuščios reikšmės.
Do While len (Sheets("Sheet2").Cells (i, 1).value) <> 0
Ciklo viduje galite iškviesti VLookup funkciją, kad užpildytumėte langelius:
Lapai("Sheet2").Ląstelės (i, 2).Vertė = _ Taikymas. Darbalapio funkcija. VLookup (Sheets("Sheet2") _ .Cells (i, 1).Value, my_range, 2, False) Sheets("Sheet2").Cells (i, 3).Value = _ Taikymas. Darbalapio funkcija. VLookup (Sheets ("Sheet2") _ .Cells (i, 1).Value, my_range, 3, False)
Šie teiginiai nustato langelių reikšmę dabartinėje eilutėje, atitinkamai 2 ir 3 stulpeliuose. Jie naudojasi Darbalapio funkcija prieštarauja skambinti VLookup funkcija, perduodama atitinkamą reikšmę iš 1 stulpelio į paiešką. Jie taip pat perduoda anksčiau apibrėžtą diapazoną ir atitinkamo stulpelio indeksą, kad būtų galima gauti galutinę reikšmę.
Vlookup kodas yra paruoštas, bet vis tiek turite padidinti eilutės kintamąjį kiekvieną kartą ciklo metu:
i = i + 1
Kiekvieną kartą, kai ciklas veikia, jis padidina vertę i iki 1. Atminkite, kad pradinės eilutės reikšmė yra 2, o prieaugis vyksta kiekvieną kartą, kai vyksta ciklas. Naudoti kilpa raktinį žodį, kad nustatytumėte ciklo kodo bloko pabaigą.
Kai paleisite visą kodą, rezultatai bus pateikti abiejuose stulpeliuose, remiantis šaltinio lentelės reikšmėmis.
Štai visas kodas nuorodai:
Sub vlookup_fn1() Dim i Kaip sveikasis skaičius lastrow = Sheets("Sheet2").Range("F3").Pabaiga (xlDown).Row my_range = Sheets("Sheet2").Range("F3:H" & paskutinė eilutė) i = 2 Do While Len (Sheets ("Sheet2").Ląstelės (i, 1).Vertė) <> 0 Įvykus klaidai Tęsti kitus lapus ("Sheet2").Ląstelės (i, 2).Vertė = _ Taikymas. Darbalapio funkcija. VLookup (Sheets("Sheet2") _ .Cells (i, 1).Value, my_range, 2, False) Sheets("Sheet2").Cells (i, 3).Value = _ Taikymas. Darbalapio funkcija. VLookup (Sheets("Sheet2") _ .Cells (i, 1).Value, my_range, 3, False) i = i + 1 LoopEnd Sub
4. Sukurkite mygtuką, kad paleistumėte kodą
Kai kodas nėra pakeliui, galite sukurti mygtuką „Excel“ darbaknygėje ir paleisti jį vienu spustelėjimu. Įdėkite pageidaujamą formą į tuščią „Excel“ lapą, dešiniuoju pelės mygtuku spustelėkite ją ir spustelėkite Priskirti makrokomandą variantas.
Dialogo lange pasirinkite savo paprogramės pavadinimą ir spustelėkite Gerai.
Kai norite paleisti kodą, spustelėkite mygtuką, kad pamatytumėte, kaip duomenys iš karto užpildomi.
Naudojant Excel VBA automatizuoti paieškos funkcijas
„Excel VBA“ yra lanksti kalba, kuri yra gerai suderinta taip, kad palengvintų automatizavimą įvairiuose „MS Excel“ aspektuose. MS Excel VBA yra daug parinkčių, pradedant automatizuojant Excel funkcijas ir baigiant automatiniu sudėtingų suvestinių lentelių kūrimu.
Dirbdami su skirtingais „Excel“ segmentais galite eksperimentuoti su įvairiomis parinktimis, kad jūsų gyvenimas būtų lengvesnis ir efektyvesnis.