Fórmula de Excel: búsqueda de coincidencias exactas con INDICE y MATCH -

Tabla de contenido

Fórmula genérica

(=INDEX(data,MATCH(TRUE,EXACT(val,lookup_col),0),col_num))

Resumen

Búsqueda sensible a mayúsculas y minúsculas

De forma predeterminada, las búsquedas estándar con VLOOKUP o INDEX + MATCH no distinguen entre mayúsculas y minúsculas. Tanto VLOOKUP como MATCH simplemente devolverán la primera coincidencia, ignorando el caso.

Sin embargo, si necesita realizar una búsqueda que distinga entre mayúsculas y minúsculas, puede hacerlo con una fórmula de matriz que use INDICE, COINCIDIR y la función EXACT.

En el ejemplo, usamos la siguiente fórmula

(=INDEX(data,MATCH(TRUE,EXACT(F4,B3:B102),0),3))

Esta fórmula es una fórmula de matriz y debe ingresarse con Control + Shift + Enter.

Explicación

Dado que COINCIDIR por sí solo no distingue entre mayúsculas y minúsculas, necesitamos una forma de hacer que Excel compare el caso. La función EXACTA es la función perfecta para esto, pero la forma en que la usamos es un poco inusual, porque necesitamos comparar una celda con un rango de celdas.

Trabajando de adentro hacia afuera, tenemos primero:

EXACT(F4,B3:B102)

donde F4 contiene el valor de búsqueda y B3: B102 es una referencia a la columna de búsqueda (Nombres). Debido a que estamos dando un arreglo EXACTO como segundo argumento, obtendremos un arreglo de valores falsos VERDADEROS como este:

(FALSO, FALSO, FALSO, FALSO, FALSO, VERDADERO, etc.)

Este es el resultado de comparar el valor en B4 en cada celda de la columna de búsqueda. Dondequiera que veamos VERDADERO, sabemos que tenemos una coincidencia exacta que respeta el caso.

Ahora necesitamos obtener la posición (es decir, el número de fila) del valor VERDADERO en esta matriz. Para esto, podemos usar MATCH, buscando TRUE y configurarlo en modo de coincidencia exacta:

MATCH(TRUE,EXACT(F4,B3:B102),0)

Es importante tener en cuenta que COINCIDIR siempre devolverá la primera coincidencia si hay duplicados, por lo que si hay otra coincidencia exacta en la columna, solo coincidirá con la primera.

Ahora tenemos un número de fila. A continuación, solo necesitamos usar INDICE para recuperar el valor en la intersección de fila y columna de la derecha. En este caso, el número de columna está codificado como 3, ya que los datos del rango con nombre incluyen todas las columnas. La fórmula final es:

(=INDEX(data,MATCH(TRUE,EXACT(F4,B3:B102),0),3))

Tenemos que ingresar esta fórmula como una fórmula de matriz debido a la matriz creada por EXACT.

Esta fórmula recuperará valores numéricos y de texto. Si desea recuperar solo números, puede utilizar una fórmula basada en SUMPRODUCT; ver enlace a continuación

Articulos interesantes...