VBA Application.Match - Guía paso a paso con ejemplos

Tabla de contenido

Aplicación Excel VBA.

Una de las mejores cosas de VBA es que tiene su propia función y también nos permitirá acceder a todas las funciones de la hoja de trabajo en la clase "Función de la hoja de trabajo". Ya debe haber usado la función COINCIDIR como una función de hoja de trabajo, pero no es una función de VBA, por lo que debemos acceder a la clase de función de la hoja de trabajo. En este artículo, le mostraremos cómo usar la función COINCIDIR en VBA usando el método de aplicación.

Resumen rápido de la función MATCH

COINCIDIR es una función de búsqueda que busca la posición del valor de búsqueda en la matriz de búsqueda mencionada. Por ejemplo, mire la siguiente imagen de los datos.

En los datos anteriores, tenemos meses de A2 a A6, y si queremos saber en qué lugar ocurre el mes “Mar”, entonces podemos usar la función PARTIR.

A continuación se muestra la sintaxis de la función COINCIDIR.

COINCIDIR (valor de búsqueda, matriz de búsqueda, (tipo de coincidencia))
  • Valor de búsqueda: para qué valor estamos buscando la posición en la matriz de búsqueda.
  • Matriz de búsqueda: en qué matriz buscamos la posición del valor de búsqueda.
  • (Tipo de coincidencia): para esto, podemos proporcionar tres argumentos.
  1. 1 = menor que
  2. 0 = Coincidencia exacta
  3. -1 = mayor que

La mayoría de las veces, usamos solo "0 concordancia exacta".

¿Cómo utilizar la función Application.Match en VBA?

Ejemplo 1

Mire los datos a continuación en Excel.

A partir de los datos anteriores, necesitamos encontrar la posición del mes "Mar" en el rango de celdas de A2 a A6. Dado que necesitamos resultados en las celdas D2 de inmediato, inicie el código como Rango ("D2"). Valor =.

Para obtener el valor en la celda D2, necesitamos usar la función de hoja de trabajo COINCIDIR, por lo que para acceder a esto primero, debemos acceder al objeto APLICACIÓN y luego al objeto FUNCIÓN HOJA DE TRABAJO.

Ingrese un punto para ver una lista de funciones de la hoja de trabajo.

Elija "Coincidir" en la lista.

Uno de los problemas en VBA al usar funciones de hoja de trabajo es que no vemos la sintaxis exacta como vemos con la función de hoja de trabajo. Esta es una de las razones por las que hemos explicado la sintaxis solo al principio.

Entonces, el primer argumento es el valor de búsqueda, es decir , qué valor buscamos para encontrar el lugar. En este caso, estamos buscando encontrar el lugar para "Mar" que está en la celda C2, así que proporcione la referencia de la celda.

El siguiente argumento es la matriz de búsqueda, es decir , en qué rango estamos buscando la posición de un valor de búsqueda , para este suministro de celdas de A2 a A6.

El último argumento será una coincidencia exacta, así que proporcione 0.

Código:

Sub Match_Example1 () Range ("D2"). Value = Application.WorksheetFunction.Match (Range ("C2"). Value, Range ("A2: A6"), 0) End Sub

Ok, hemos terminado con la fórmula.

Ejecute el código a través de la tecla F5 y vea lo que obtenemos.

Así que tenemos el resultado como 3 porque el valor “Mar” está en el lugar de la posición en el rango de A2 a A6.

Esta función COINCIDIR puede proporcionar la posición del valor de búsqueda. Sin embargo, la función COINCIDIR se utiliza en gran medida con la función BUSCARV para proporcionar el número de índice de la columna según el encabezado de la columna.

Ejemplo # 2

Ahora veremos cómo utilizar COINCIDIR como una función de apoyo para la función BUSCARV.

Mira los datos a continuación.

En la tabla anterior, estamos viendo las ventas del mes “febrero” del año 2018, por lo que debemos usar la función BUSCARV. BUSCARV también es una función de hoja de trabajo, así que acceda a esto como hemos accedido a la función COINCIDIR.

El valor de búsqueda será la celda G2, así que proporcione la dirección de la celda.

Código:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, End Sub

Table Array will be from A2 to D6.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value,Range("A2:D6"), End Sub

Now we need to provide from which column of the table array we are looking for the result, so this will be from the 3rd column. Instead of supplying the column number as 3, let’s use the MATCH function.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, Range("A2:D6"), Application.WorksheetFunction.Match(Range("H1").Value, Range("A1:D1"), 0), 0) End Sub

Entonces, la función COINCIDIR proporciona el número de columna del rango A1 a D1 para el mes "febrero". Ejecutemos el código y veamos cómo obtiene los números de columna automáticamente.

Ahí tienes, tenemos un resultado de la columna número 2 gracias al suministro automático de números de columna de la función COINCIDIR.

Cosas para recordar

  • La función COINCIDIR busca la posición del valor de búsqueda en la tabla de matriz seleccionada.
  • La función COINCIDIR se utiliza principalmente con la función BUSCARV para proporcionar el número de índice de la columna automáticamente utilizando el encabezado de la columna.
  • La función COINCIDIR está disponible como una función de hoja de trabajo en VBA.

Articulos interesantes...