Excel formula: XLOOKUP case-sensitive

Fórmula genérica

=BUSCARX(1,--IGUAL(range1,"RED"),range2)

Explicación

Para construir una coincidencia exacta entre mayúsculas y minúsculas, puede usar la función BUSCARX con la función IGUAL. En el ejemplo que se muestra, la fórmula en F5 es:

=BUSCARX(1,--IGUAL(B5:B15,"RED"),B5:D15)

que coincide con "ROJO" (distingue entre mayúsculas y minúsculas) y devuelve toda la fila.

Cómo funciona esta fórmula

Por sí misma, la función BUSCARX no distingue entre mayúsculas y minúsculas. Un valor de búsqueda de "ROJO" coincidirá con "rojo", "ROJO" o "Rojo". Podemos evitar esta limitación construyendo una matriz de búsqueda adecuada para BUSCARX con una expresión lógica.

Trabajando de adentro hacia afuera, para darle a BUSCARX la capacidad de combinar mayúsculas y minúsculas, utilizamos la función IGUAL de esta manera:

IGUAL(B5:B15,"RED") // test for "RED"

Como hay 11 valores en el rango E5: D15, IGUAL devuelve una matriz con 11 resultados VERDADERO FALSO como este:

{FALSO;FALSO;FALSO;FALSO;VERDADERO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO}

Observe que la posición de VERDADERO corresponde a la fila donde el color es "ROJO".

Por brevedad (y para permitir que la lógica se extienda fácilmente con lógica booleana), forzamos los valores VERDADERO FALSO a 1s y 0s con el doble negativo:

--IGUAL(B5:B15,"RED") // convert to 1s and 0s

que produce una matriz como esta:

{0;0;0;0;1;0;0;0;0;0;0}

Observe que la posición de 1 corresponde a la fila donde el color es "ROJO". Esta matriz se devuelve directamente a la función BUSCARX como argumento de la matriz de búsqueda.

Ahora podemos simplemente la fórmula para:

=BUSCARX(1,{0;0;0;0;1;0;0;0;0;0;0},B5:D15)

Con un valor de búsqueda de 1, BUSCARX encuentra el 1 en la quinta posición y devuelve la quinta fila en la matriz de retorno, B9: D9.

Extendiendo la lógica

La estructura de la lógica se puede ampliar fácilmente. Por ejemplo, para reducir la coincidencia a "ROJO" en el mes de abril, puede usar una fórmula como esta:

=BUSCARX(1,IGUAL(B5:B15,"RED")*(MES(C5:C15)=4),B5:D15)

Aquí, debido a que cada una de las dos expresiones devuelve una matriz de valores VERDADERO FALSO, y debido a que estas matrices se multiplican juntas, la operación matemática obliga a los valores VERDADERO y FALSO a 1s y 0s. No es necesario usar el doble negativo.

Como el valor de búsqueda sigue siendo 1, como en la fórmula anterior.

Primer y último partido

Ambas fórmulas anteriores devolverán la primera coincidencia de "RED" en un conjunto de datos. Si necesita la última coincidencia, puede realizar una búsqueda inversa configurando el argumento del modo de búsqueda para BUSCARX en -1:

=BUSCARX(1,--IGUAL(B5:B15,"RED"),B5:D15,,,-1) // last match

Si necesita devolver resultados de múltiples coincidencias, consulte la función FILTRAR.


Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT