Match Match în VBA
Funcția INDEX & MATCH în combinația VBA este alternativa la funcția VLOOKUP în excel. În VBA, nu avem luxul de a folosi funcția INDEX & MATCH direct, deoarece aceste două funcții nu fac parte din funcțiile încorporate VBA. Cu toate acestea, le putem folosi în continuare ca parte a clasei de funcții a foii de lucru.
Sunteți liber să utilizați această imagine pe site-ul dvs. web, șabloane etc., Vă rugăm să ne furnizați un link de atribuireCum să oferiți atribuire?Link către articol de către hyperlink
De exemplu:
Sursă: VBA Index Match (wallstreetmojo.com)
Cum se utilizează potrivirea indexului în VBA? (Pas cu pas)
De exemplu, uitați-vă la datele de mai jos.
În datele de mai sus, valoarea de căutare este numele departamentului și, pe baza acestui nume de departament, trebuie să extragem suma salariului.
Dar problema aici este că coloana cu rezultate este acolo în prima, iar coloana cu valoarea de căutare este ulterior coloana cu rezultate. În acest caz, VLOOKUP nu poate prelua suma salariului deoarece VLOOKUP funcționează numai de la dreapta la stânga, nu de la stânga la dreapta.
În aceste cazuri, trebuie să folosim formula de combinație a funcției VBA INDEX & MATCH. Să îndeplinim sarcina de a găsi valoarea salariului pentru fiecare departament în codul VBA.
Pasul 1: Începeți rutina soarelui.
Pasul 2: Declarați variabila VBA Integer.
Cod:
Sub INDEX_MATCH_Example1() Dim k As Integer End Sub
Pasul 3: Acum deschideți For Next Loop în VBA.
Cod:
Sub INDEX_MATCH_Example1() Dim k As Integer For k = 2 To 5 Next k End Sub
Pasul 4: În bucla VBA, executați formula. În 5a coloană, trebuie să aplicăm formula, deci codul este CELLS (k, 5). Valoare =
Cod:
Sub INDEX_MATCH_Example1() Dim k As Integer For k = 2 To 5 Cells(k, 5).Value = Next k End Sub
Pasul 5: În acea celulă, trebuie să aplicăm formula VBA INDEX & MATCH. După cum am spus, trebuie să folosim aceste funcții ca Funcție foaie de lucru în clasa VBA, deci deschideți clasa de funcții foaie de lucru.
Cod:
Sub INDEX_MATCH_Example1() Dim k As Integer For k = 2 To 5 Cells(k, 5).Value = WorksheetFunction. Next k End Sub
Pasul 6: După introducerea clasei de funcții a foii de lucru, putem vedea toate funcțiile disponibile ale foii de lucru, deci selectați funcția INDEX.
Cod:
Sub INDEX_MATCH_Example1() Dim k As Integer For k = 2 To 5 Cells(k, 5).Value = WorksheetFunction.Index( Next k End Sub
Pasul 7: În timp ce utilizați funcția de foaie de lucru în VBA, trebuie să fiți absolut sigur de argumentele formulei. Primul argument este array, adică din care coloană avem nevoie de rezultat. În acest caz, avem nevoie de rezultatul de la A2 la A5.
Cod:
Sub INDEX_MATCH_Example1() Dim k As Integer For k = 2 To 5 Cells(k, 5).Value = WorksheetFunction.Index(Range("A2:A5"), Next k End Sub
Pasul 8: Următorul este din ce număr de rând avem nevoie de rezultat. După cum am văzut în exemplul anterior, nu putem furniza manual numărul rândului de fiecare dată. Deci, utilizați funcția MATCH.
Pentru a utiliza încă o dată funcția MATCH, trebuie să deschidem clasa Function Sheet Function.
Cod:
Sub INDEX_MATCH_Example1() Dim k As Integer For k = 2 To 5 Cells(k, 5).Value = WorksheetFunction.Index(Range("A2:A5"), WorksheetFunction.Match( Next k End Sub
Pasul 9: Primul argument al funcțiilor MATCH este valoarea LOOKUP; aici, valoarea noastră de căutare este numele departamentelor; este acolo în celule (2, 4).
Deoarece de fiecare dată când numărul rândului trebuie să se schimbe, putem furniza variabila „k” în locul rândului manual numărul 2. Celule (k, 4).
Cod:
Sub INDEX_MATCH_Example1() Dim k As Integer For k = 2 To 5 Cells(k, 5).Value = WorksheetFunction.Index(Range("A2:A5"), WorksheetFunction.Match(Cells(k,5).Value, Next k End Sub
Pasul 10: În continuare, trebuie să menționăm intervalul de valori al departamentului, adică Range („B2: B5”).
Cod:
Sub INDEX_MATCH_Example1() Dim k As Integer For k = 2 To 5 Cells(k, 5).Value = WorksheetFunction.Index(Range("A2:A5"), WorksheetFunction.Match(Cells(k,5).Value,Range("B2:B5"),
Următorul k
Sfârșitul Sub
Pasul 11: Apoi, puneți argumentul ca 0 pentru că avem nevoie de o potrivire exactă și închideți parantezele.
Cod:
Sub INDEX_MATCH_Example1() Dim k As Integer For k = 2 To 5 Cells(k, 5).Value = WorksheetFunction.Index(Range("A2:A5"), WorksheetFunction.Match(Cells(k, 4).Value, Range("B2:B5"), 0))
Următorul k
Sfârșitul Sub
Ok, am terminat cu partea de codare. Să rulăm codul pentru a avea rezultatul în coloana 5.
Deci, am obținut rezultatul.
Putem folosi această formulă ca alternativă la funcția VLOOKUP.
Articole recomandate
Acesta a fost un ghid pentru VBA Index Match. Aici aflăm cum să folosim funcția Index Match în VBA ca alternativă la VLOOKUP împreună cu exemple și șabloane de descărcare. Mai jos sunt câteva articole Excel utile legate de VBA –
- Valoare VBA
- String Array în VBA
- Funcția de potrivire VBA
- Funcția Matrici în VBA
- 3 cursuri
- 12 proiecte practice
- 43+ ore
- Acces complet pe viață
- Certificat de finalizare
AFLAȚI MAI MULTE >>