PROCV DUPLO no Excel – sem usar VBA

Uma consulta dupla a um banco de dados, por exemplo, é algo muito comum usando SQL. Esse tipo de necessidade tão comum, está ausente no Excel, pelo menos de um modo simplificado como é o PROCV.

Existem várias soluções para fazer um PROCV duplo, aqui apresento as mais comuns, inclusive algumas delas sem uso do VBA e de criação de macros ou funções.

Vamos supor que tenho estes dados:

Eu quero, a partir de uma data em A13 e de uma informação da segunda coluna (em B13), retornar, se encontradas ambas informações, os números da coluna C.

O truque mais usado é inserir uma coluna extra e concatenar duas ou mais colunas em uma terceira coluna usando o & (e comercial), por exemplo, se os dados estão na colunas A e B, usa-se na coluna C (ou outra qualquer, que pode ficar oculta) =A1&B1 e copiando-se (arrastando) a fórmula para baixo, tem-se os dados transformados em texto e podem antão ser usados normalmente em um PROCV comum:

procvduploconcatena

Aí você concatena os seus dados para fazer a busca, por exemplo:

=PROCV(A13 & B13; C1:D10 ; 2 ; FALSO)

Neste caso os dados que estavam na coluna C foram deslocados para a coluna D e é o que será mostrado na busca.
Observação: datas são armazenadas internamente no Excel como números inteiros, por isso 1/1/2001 e a letra a se transformaram em 36892a na célula C1.

Existe outra maneira, implementando um verdadeiro PROCV DUPLO, aí usa-se a possibilidade de criação de funções pelo VBA do Excel, mas a questão é que sempre será necessário habilitar macros e/ou lembrar de enviar a função criada para quando precisar usar ela. Um exemplo de PROCV TRIPLO existe aqui (em inglês):
http://www.automateexcel.com/2008/10/04/vba-udf-to-perform-a-3-parameter-vlookup/

Uma terceira maneira usa ÍNDICE e CORRESP (para simular o PROCV) e a concatenação, além de fórmula matricial do Excel, há uma explicação sobre como fazer isso em:
http://fabiojoaquim.wordpress.com/2010/11/08/microsoft-excel-procurando-com-2-condicoes/

Para quem não quer criar uma coluna extra e nem quer implementar uma nova função no Excel, existe a opção de usar a função SOMARPRODUTO:

=SOMARPRODUTO(- -(A1:A10=A13);- -(B1:B10=B13); C1:C10)

A função acima funcionará tal e qual um PROCV duplo…

Por último, é possível usar a função BDEXTRAIR, desde que haja títulos nas colunas de nossos dados:

A função fica:

=BDEXTRAIR(A1:C11;”resposta”;A13:B14)

Bom, agora é só escolher a solução preferida!