Fórmula do Excel: XLOOKUP diferencia maiúsculas de minúsculas -

Fórmula genérica

=XLOOKUP(1,--EXACT(range1,"RED"),range2)

Resumo

Para construir uma correspondência exata com distinção entre maiúsculas e minúsculas, você pode usar a função XLOOKUP com a função EXACT. No exemplo mostrado, a fórmula em F5 é:

=XLOOKUP(1,--EXACT(B5:B15,"RED"),B5:D15)

que corresponde a "RED" (diferencia maiúsculas de minúsculas) e retorna a linha inteira.

Explicação

Por si só, a função XLOOKUP não faz distinção entre maiúsculas e minúsculas. Um valor de pesquisa de "RED" corresponderá a "red", "RED" ou "Red". Podemos contornar essa limitação construindo uma matriz de pesquisa adequada para XLOOKUP com uma expressão lógica.

Trabalhando de dentro para fora, para dar ao XLOOKUP a capacidade de combinar maiúsculas e minúsculas, usamos a função EXATA como esta:

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

Como existem 11 valores no intervalo E5: D15, EXACT retorna uma matriz com 11 resultados TRUE FALSE como este:

(FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE)

Observe que a posição de TRUE corresponde à linha onde a cor é "RED".

Por brevidade (e para permitir que a lógica seja facilmente estendida com a lógica booleana), forçamos os valores TRUE FALSE para 1s e 0s com o negativo duplo:

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

que produz uma matriz como esta:

(0;0;0;0;1;0;0;0;0;0;0)

Observe que a posição 1 corresponde à linha onde a cor é "VERMELHO". Essa matriz é retornada diretamente para a função XLOOKUP como o argumento da matriz de pesquisa.

Agora podemos simplesmente a fórmula para:

=XLOOKUP(1,(0;0;0;0;1;0;0;0;0;0;0),B5:D15)

Com um valor de pesquisa de 1, XLOOKUP encontra o 1 na 5ª posição e retorna a 5ª linha na matriz de retorno, B9: D9.

Estendendo a lógica

A estrutura da lógica pode ser facilmente estendida. Por exemplo, para restringir a correspondência para "VERMELHO" no mês de abril, você pode usar uma fórmula como esta:

=XLOOKUP(1,EXACT(B5:B15,"RED")*(MONTH(C5:C15)=4),B5:D15)

Aqui, como cada uma das duas expressões retorna uma matriz de valores TRUE FALSE e como essas matrizes são multiplicadas juntas, a operação matemática força os valores TRUE e FALSE para 1s e 0s. Não é necessário usar o duplo negativo.

Como o valor da pesquisa permanece 1, como na fórmula acima.

Primeira e última partida

Ambas as fórmulas acima retornarão a primeira correspondência de "VERMELHO" em um conjunto de dados. Se precisar da última correspondência, você pode realizar uma pesquisa reversa definindo o argumento do modo de pesquisa para XLOOKUP como -1:

=XLOOKUP(1,--EXACT(B5:B15,"RED"),B5:D15,,,-1) // last match

Se você precisar retornar resultados de várias correspondências, consulte a função FILTER.

Artigos interessantes...