Coincidència de l'índex VBA | Com s'utilitza la funció de concordança d'índex a VBA (exemples)

Coincidència d'índex a VBA

La funció INDEX & MATCH en combinació VBA és l’alternativa a la funció VLOOKUP en excel. A VBA no tenim el luxe d’utilitzar la funció INDEX & MATCH directament perquè aquestes dues funcions no formen part de les funcions integrades de VBA. Tot i això, encara els podem utilitzar com a part de la classe de funcions del full de treball.

Com s'utilitza la concordança d'índex a VBA? (Pas a pas)

Podeu descarregar aquesta plantilla Excel VBA Index Match aquí: plantilla Excel VBA Index Match

Per exemple, mireu les dades següents.

A les dades anteriors, el valor de cerca és el nom del departament i, en funció d’aquest nom de departament, hem d’extreure l’import del salari.

Però el problema aquí és que la columna de resultats hi ha a la primera i la columna de valor de cerca és la columna de resultats. En aquest cas, VLOOKUP no pot obtenir l'import del salari perquè VLOOKUP només funciona de dreta a esquerra i no d'esquerra a dreta.

En aquests casos, hem d’utilitzar la fórmula de combinació de la funció VBA INDEX & MATCH. Realitzem la tasca de trobar l'import salarial de cada departament al codi VBA.

Pas 1: Comenceu la rutina del sol.

Pas 2: Declareu la variable enter VBA.

Codi:

 Sub INDEX_MATCH_Example1 () Dim k As Integer End Sub 

Pas 3: Ara obriu Per al següent bucle a VBA.

Codi:

 Sub INDEX_MATCH_Example1 () Dim k Com enter per a k = 2 a 5 Següent k Finalitzar sub 

Pas 4: Dins del bucle VBA executeu la fórmula. A la cinquena columna, hem d'aplicar la fórmula, de manera que el codi és CELLS (k, 5).

Codi:

 Sub INDEX_MATCH_Example1 () Dim k Com enter per a k = 2 a 5 cel·les (k, 5). Valor = següent k Finalitzar sub 

Pas 5: En aquesta cel·la, hem d’aplicar la fórmula VBA INDEX & MATCH. Com he dit, hem d’utilitzar aquestes funcions com a Funció del full de treball a la classe vba, així que obriu la classe de funcions del full de treball.

Codi:

 Sub INDEX_MATCH_Example1 () Dim k Com enter per a k = 2 a 5 cel·les (k, 5) .Valor = Funció de full de treball. Següent Finalitzar sub 

Pas 6: Després d’entrar a la classe de funcions de full de treball, podem veure totes les funcions de full de treball disponibles, així que seleccioneu la funció INDEX.

Codi:

 Sub INDEX_MATCH_Example1 () Dim k Com enter per a k = 2 a 5 cel·les (k, 5). Valor = Feu de treball Funció.Index (següent k Finalitzar sub 

Pas 7: Mentre utilitzeu la funció de full de càlcul a VBA, heu d’estar absolutament segur dels arguments de la fórmula. El primer argument és matriu, és a dir, des de quina columna necessitem el resultat, en aquest cas, necessitem el resultat de A2 a A5.

Codi:

 Sub INDEX_MATCH_Example1 () Dim k com enter per a k = 2 a 5 cel·les (k, 5). Valor = Feu de treball Funció.Index (Rang ("A2: A5"), següent k Finalitzar sub 

Pas 8: El següent és el número de fila que necessitem per obtenir el resultat. Com hem vist l'exemple anterior, no podem subministrar manualment el número de fila cada vegada. Per tant, utilitzeu la funció MATCH.

Per tal d’utilitzar la funció MATCH una vegada més, hem d’obrir la classe Function Sheet Function.

Codi:

 Sub INDEX_MATCH_Example1 () Redueix k com enter per a k = 2 a 5 cel·les (k, 5). Valor = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Next k End Sub 

Pas 9: El primer argument de les funcions MATCH és el valor LOOKUP, aquí el nostre valor de cerca són noms de departaments, és a les cel·les (2, 4).

Com que cada vegada que ha de canviar el número de fila, podem subministrar la variable "k" en lloc del número manual de fila 2. Cèl·lules (k, 4).

Codi:

 Sub INDEX_MATCH_Example1 () Dim k com enter per a k = 2 a 5 cel·les (k, 5). Valor = WorksheetFunction.Index (Rang ("A2: A5"), WorksheetFunction.Match (Cells (k, 5). Valor, següent k Final Sub 

Pas 10: A continuació, hem d'esmentar l'interval de valors del departament, és a dir, Interval ("B2: B5").

Codi:

 Sub INDEX_MATCH_Example1 () Dim k com enter per a k = 2 a 5 cel·les (k, 5). Valor = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5). Valor, Range ("B2: B5"), 

K següent

Finalitzar sub

Pas 11: A continuació, poseu l'argument com a 0 perquè necessitem una coincidència exacta i tanqueu els claudàtors.

Codi:

 Sub INDEX_MATCH_Example1 () Dim k com a enter per a k = 2 a 5 cel·les (k, 5). Valor = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 4). Valor, Range ("B2: B5"), 0)) 

K següent

Finalitzar sub

D’acord, ja hem acabat amb la part de codificació. Executem el codi per obtenir resultats a la columna 5.

Així doncs, vam obtenir el resultat.

Podem utilitzar aquesta fórmula com a alternativa a la funció VLOOKUP.