Cititorii ca tine ajută la sprijinirea MUO. Când efectuați o achiziție folosind link-uri de pe site-ul nostru, este posibil să câștigăm un comision de afiliat. Citeşte mai mult.

Vlookup este o funcție esențială în Excel și a devenit o parte vitală a procesării datelor. Oferă unele dintre funcționalitățile pe care le-ați putea asocia de obicei cu o bază de date completă.

Dar dacă doriți să automatizați această funcție? Da, acest lucru este posibil, mai ales dacă știți cum să utilizați limbajul nativ de automatizare al Excel, VBA. Iată cum puteți automatiza funcția vlookup în Excel VBA.

Sintaxa Vlookup

Sintaxa funcției vlookup este destul de simplă, dar are patru aspecte pe care trebuie să vă concentrați, chiar și în timp ce o automatizați în Excel VBA.

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

Argumentele funcției au următoarea semnificație:

  • valoare_căutare: Aceasta este valoarea principală pe care doriți să o căutați din matricea de căutare.
  • lookup_array: Acestea sunt datele sursă, pe care lookup_value le va folosi ca referință.
  • instagram viewer
  • index_coloană: Coloana de la care returnează valoarea.
  • potrivire_exactă/potrivire_parțială: Utilizați fie 0, fie 1 pentru a determina tipul de potrivire.

Pregătirea datelor

Acest set de date are două părți: un tabel de căutare și punctele de date de destinație.

Tabelul de căutare este format din trei coloane, cu date populând câmpurile Subcategorie și Nume produs:

Tabelul de destinație are coloane care se potrivesc, fără date de subcategorie sau nume de produs. Rețineți că valorile din coloana sa ID comandă sunt prezente și în aceeași coloană din tabelul de căutare:

Utilizarea Vlookup direct într-o foaie de calcul Excel

Pentru a completa coloanele de destinație, B și C, puteți utilizați funcția de căutare virtuală a Excel.

În celulă B2, introduceți următoarea formulă:

=CĂUTARE V($A2, $F$3:$H$17, 2, 0)

La fel, în celulă C2, introduceți această formulă:

=CĂUTARE V($A2, $F$3:$H$17, 3, 0)

Puteți trage formula în jos din celula B2 până la sfârșitul coloanei, B17. Repetați acest proces și pentru coloana C. Valorile pentru fiecare intrare ulterioară se vor actualiza automat în ambele coloane.

Valorile pe care le transmiteți funcției vlookup sunt:

  • A2: Valoarea de căutare este în această celulă.
  • F3:H17: Acesta constă din intervalul de căutare.
  • 2/3: Coloanele de referință de la care se preia valoarea.
  • 0: Indică o potrivire exactă.

Funcția de căutare VBA a Excel VBA

Funcția vlookup are multe asemănări, indiferent dacă o utilizați direct în Excel sau prin VBA. Indiferent dacă sunteți un analist de date care se ocupă de rânduri de date sau un manager de inventar care se ocupă cu produse noi în mod regulat, puteți beneficia de utilizarea vlookup.

Când lucrați cu un interval de căutare dinamic, este întotdeauna cel mai bine să vă automatizați formulele, pentru a evita aplicarea repetă a formulelor în Excel. Prin automatizarea funcției Vlookup în VBA, puteți efectua calcule pe mai multe coloane cu un singur clic.

1. Efectuați configurarea necesară

Începeți prin a deschide editorul de codare (apăsați Alt + F11 sau navigați la Dezvoltator fila) într-un nou registru de lucru Excel și adăugați un modul pentru a începe să vă scrieți codul. În editorul de cod, adăugați următoarele linii în partea de sus a ferestrei de codare pentru a crea o subrutină:

 Sub vlookup_fn1()End Sub

Subrutina este un container pentru codul dvs. VBA și este esențială pentru a o rula cu succes. O alternativă este să creați un formular de utilizator VBA pentru a vă face interfața de utilizare mai interactivă.

2. Declarați-vă variabilele și creați-vă intervalele de referință

Mai întâi, trebuie să declarați tipurile de date variabile folosind Dim afirmație:

 Dim i ca întreg, lastrow ca lung

Apoi, creați un ultimul rând variabilă, pentru a stoca valoarea ultimului rând populat în intervalul de căutare. Funcția lastrow folosește sfârșit (xldown) funcția pentru a calcula referința rândului final în intervalul specificat.

În acest caz, variabila lastrow stochează ultima valoare de rând populată a intervalului de căutare,17.

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

În exemplul de mai sus, tabelul de destinație se extinde de la A2:C17, în timp ce tabelul sursă se extinde de la F2:H17. Formula vlookup va parcurge fiecare valoare stocată în coloana A, o va căuta în tabelul sursă și va lipi intrările care se potrivesc în coloanele B și C.

Cu toate acestea, înainte de a trece pe buclă, trebuie să stocați valorile intervalului într-o nouă variabilă (raza_mea), după cum urmează:

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

Trebuie să definiți în mod explicit referința celulei de pornire (F3) și referința coloanei de la capăt (H). VBA adaugă automat valoarea rândului pentru a finaliza matricea de căutare.

3. Scrieți o buclă pentru a parcurge fiecare valoare de căutare

Înainte de a scrie bucla, definiți valoarea rândului de început, 2. Definirea unei valori de pornire pentru bucla este esențială, deoarece aveți de-a face cu elemente dinamice. În tabelul de destinație, rândul 2 este primul rând de date. Schimbați această valoare dacă datele dvs. încep pe un rând diferit.

 i = 2

Puteți folosi a face în timp ce buclă pentru a procesa fiecare rând, începând cu rândul 2 și terminând cu rândul 17. Ca și restul codului, acest aspect este dinamic; bucla va rula până când condiția este falsă. Folosiți condiția pentru a verifica o valoare negoală în prima celulă a rândului curent.

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

În interiorul buclei, puteți apela funcția VLookup pentru a popula celulele:

 Sheets("Sheet2").Cells (i, 2).Value = _ Application. Funcție Fișă de lucru. VLookup (Sheets(„Sheet2”) _ .Cells (i, 1).Value, my_range, 2, False) Sheets(„Sheet2”).Cells (i, 3).Value = _ Application. Funcție Fișă de lucru. VLookup (Sheets("Sheet2") _ .Cells (i, 1).Value, my_range, 3, False)

Aceste instrucțiuni stabilesc valoarea celulelor din rândul curent, în coloanele 2 și, respectiv, 3. Ei folosesc Funcție Fișă de lucru obiect pentru a apela VLookup funcția, trecând valoarea corespunzătoare din coloana 1 pentru a căuta. Ele trec, de asemenea, intervalul pe care l-ați definit mai devreme și indexul coloanei relevante din care să preia valoarea finală.

Codul de căutare este gata, dar trebuie totuși să creșteți variabila rând de fiecare dată în jurul buclei:

 i = i + 1

De fiecare dată când bucla rulează, crește valoarea lui i de 1. Amintiți-vă, valoarea rândului de pornire este 2, iar creșterea are loc de fiecare dată când rulează bucla. Folosește buclă cuvânt cheie pentru a seta sfârșitul blocului de cod al buclei.

Când rulați întregul cod, acesta va popula rezultatele în ambele coloane, pe baza valorilor din tabelul sursă.

Iată întregul cod pentru referință:

 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 = _ Aplicație. Funcție Fișă de lucru. VLookup (Sheets(„Sheet2”) _ .Cells (i, 1).Value, my_range, 2, False) Sheets(„Sheet2”).Cells (i, 3).Value = _ Application. Funcție Fișă de lucru. VLookup (Sheets("Sheet2") _ .Cells (i, 1).Value, my_range, 3, False) i = i + 1 LoopEnd Sub

4. Creați un buton pentru a rula codul

Cu codul în afara drumului, puteți crea un buton în registrul de lucru Excel pentru a-l rula cu un singur clic. Introduceți forma preferată pe o foaie Excel goală, faceți clic dreapta pe ea și faceți clic pe Atribuiți macrocomenzi opțiune.

În caseta de dialog, selectați numele sub-rutinei dvs. și faceți clic pe Bine.

Când doriți să rulați codul, faceți clic pe butonul pentru a vedea cum se populează imediat datele.

Utilizarea Excel VBA pentru a automatiza funcțiile de căutare

Excel VBA este un limbaj flexibil, care este bine adaptat pentru a face automatizarea mai ușoară în cadrul diferitelor fațete ale MS Excel. Există multe opțiuni în MS Excel VBA, chiar de la automatizarea funcțiilor Excel până la crearea automată a tabelelor pivot elaborate.

Când lucrați cu diferite segmente Excel, puteți experimenta diverse opțiuni pentru a vă face viața mai ușoară și mai eficientă.