
Fórmula genérica
(=INDEX(data,MATCH(TRUE,EXACT(val,lookup_col),0),col_num))
Resumo
Pesquisa que diferencia maiúsculas de minúsculas
Por padrão, as pesquisas padrão com VLOOKUP ou INDEX + MATCH não diferenciam maiúsculas de minúsculas. Ambos VLOOKUP e MATCH irão simplesmente retornar a primeira correspondência, ignorando maiúsculas e minúsculas.
No entanto, se você precisar fazer uma pesquisa com distinção entre maiúsculas e minúsculas, pode fazê-lo com uma fórmula de matriz que usa INDEX, MATCH e a função EXACT.
No exemplo, estamos usando a seguinte fórmula
(=INDEX(data,MATCH(TRUE,EXACT(F4,B3:B102),0),3))
Esta fórmula é uma fórmula de matriz e deve ser inserida com Control + Shift + Enter.
Explicação
Como o MATCH sozinho não faz distinção entre maiúsculas e minúsculas, precisamos de uma maneira de fazer o Excel comparar maiúsculas e minúsculas. A função EXACT é a função perfeita para isso, mas a forma como a usamos é um pouco incomum, porque precisamos comparar uma célula a um intervalo de células.
Trabalhando de dentro para fora, temos primeiro:
EXACT(F4,B3:B102)
onde F4 contém o valor de pesquisa e B3: B102 é uma referência à coluna de pesquisa (nomes). Como estamos fornecendo uma matriz EXACT como segundo argumento, obteremos de volta uma matriz de valores falsos VERDADEIROS como este:
(FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, etc.)
Este é o resultado da comparação do valor em B4 de cada célula na coluna de pesquisa. Sempre que vemos VERDADEIRO, sabemos que temos uma correspondência exata que respeita maiúsculas e minúsculas.
Agora precisamos obter a posição (ou seja, o número da linha) do valor VERDADEIRO neste array. Para isso, podemos usar MATCH, procurando TRUE e configurando no modo de correspondência exata:
MATCH(TRUE,EXACT(F4,B3:B102),0)
É importante notar que MATCH sempre retornará a primeira correspondência se houver duplicatas, portanto, se acontecer de haver outra correspondência exata na coluna, você corresponderá apenas à primeira.
Agora temos um número de linha. Em seguida, só precisamos usar INDEX para recuperar o valor na linha certa e na interseção da coluna. O número da coluna neste caso é codificado permanentemente como 3, uma vez que os dados do intervalo nomeado incluem todas as colunas. A fórmula final é:
(=INDEX(data,MATCH(TRUE,EXACT(F4,B3:B102),0),3))
Temos que inserir esta fórmula como uma fórmula de matriz por causa da matriz criada por EXACT.
Esta fórmula recuperará valores de texto e numéricos. Se você deseja recuperar apenas números, pode usar uma fórmula baseada em SUMPRODUCT; veja o link abaixo