En este artículo, aprenderá cómo usar la función INDICE & MATCH en VBA para coincidir con 2 criterios en Excel usando el código VBA.

Para obtener la salida, usaremos la combinación de las funciones OFFSET & COUNTA para crear la lista del Administrador de nombres.

Entendamos con un ejemplo:

  • Tenemos boleta de calificaciones del estudiante con el nombre del estudiante, el tema y la marca.

img1

  • Queremos averiguar las marcas para el Nombre del estudiante y el Asunto ingresados ​​en las celdas F2 y G2

img2

  • Para calcular las Marcas usando el código VBA, hemos usado la función OFFSET para crear rangos nombrados para cada categoría.

  • Presione CTRL + F3 para abrir la ventana Administrador de nombres (las listas ya están creadas)

img3

  • Uso de la función Pegar nombres en la pestaña Fórmulas; obtendremos toda la lista de rango de nombres definidos en las celdas

img4

  • Uso de la función Pegar nombres en la pestaña Fórmulas; obtendremos toda la lista de rango de nombres definidos en las celdas

img5

  • Haga clic en Pegar lista

img7

Necesitamos seguir los pasos a continuación para iniciar el editor de VB Haga clic en la pestaña Desarrollador Desde el grupo Código, seleccione Visual Basic

img8

  • Haga clic en Insertar y luego en Módulo

img9

Esto creará un nuevo módulo.

Introduzca el siguiente código en el módulo Sub IndexMatch ()

myName = [F2]

mySubject = [G2]

mark = Application.WorksheetFunction.Index ([StMark], _ Application.WorksheetFunction.Match (myName, ([StName]), 0) + _ Application.WorksheetFunction.Match (mySubject, [StSubject], 0) – 1)

[H2] = marcar End Sub

img9

  • Presione la tecla de método abreviado ALT + F8 para abrir la ventana Macro y luego seleccione la macro.

img10

  • Alternativamente, puede presionar F5 para ejecutar el código en la pantalla VBA.

  • Después de ejecutar la macro obtendremos la salida en la celda H2

img11

Así es como podemos obtener resultados usando la función de hoja de trabajo Index Match en VBA.