Com o PROCX disponível no Microsoft 365, muitos declaram o PROCV morto — e com ele, o combo ÍNDICE+CORRESP. Mas há casos que o PROCX ainda não resolve de forma nativa: lookups bidirecionais com dois critérios, retornos de múltiplas colunas sem PROCX expandido e fórmulas que precisam ser compatíveis com Excel 2016/2019. ÍNDICE+CORRESP ainda é uma habilidade essencial.
O que faz cada função
ÍNDICE
O ÍNDICE retorna o valor em uma posição específica de um intervalo. Sintaxe:
=ÍNDICE(matriz; núm_linha; [núm_coluna])
Exemplo: =ÍNDICE(A1:D10; 3; 2) retorna o valor na linha 3, coluna 2 do intervalo A1:D10.
CORRESP
O CORRESP retorna a posição de um valor em um intervalo. Sintaxe:
=CORRESP(valor_procurado; matriz_procura; [tipo_correspondência])
Use 0 no terceiro argumento para correspondência exata. Exemplo: =CORRESP("Carlos"; B:B; 0) retorna o número da linha onde "Carlos" aparece na coluna B.
A combinação clássica
Combinando os dois: o CORRESP encontra a posição e o ÍNDICE usa essa posição para retornar o valor:
=ÍNDICE(C:C; CORRESP(A2; B:B; 0))
Isso busca o valor de A2 na coluna B e retorna o correspondente na coluna C. Note: ao contrário do PROCV, a coluna de retorno (C) pode estar à esquerda da coluna de busca (B).
Lookup bidirecional: linha E coluna
O grande diferencial do ÍNDICE+CORRESP sobre o PROCV é o lookup bidirecional. Você cruza dois CORRESP para encontrar o valor na interseção de uma linha e uma coluna:
=ÍNDICE(B2:E10; CORRESP(H2; A2:A10; 0); CORRESP(H3; B1:E1; 0))
Onde H2 é o nome da linha e H3 é o nome da coluna que você quer cruzar.
Com dois critérios (fórmula matricial)
Para buscar com duas condições simultaneamente, use uma fórmula matricial:
=ÍNDICE(C:C; CORRESP(1; (A:A=H2)*(B:B=H3); 0))
Confirme com Ctrl+Shift+Enter no Excel 2019 e anteriores. No Microsoft 365, funciona como fórmula normal.
Quando o PROCX ainda não substitui
- Lookup bidirecional com dois CORRESP: o PROCX não tem essa funcionalidade nativa sem aninhamento.
- Compatibilidade com Excel 2016/2019: PROCX não existe nesses versões.
- Integridade à inserção de colunas: ÍNDICE+CORRESP não precisa de número de coluna fixo, então não quebra quando colunas são inseridas (ao contrário do PROCV).
Perguntas frequentes
Qual é mais rápido: PROCX ou ÍNDICE+CORRESP?
Em planilhas com poucos dados, a diferença é imperceptível. Em tabelas muito grandes (centenas de milhares de linhas), o PROCX é ligeiramente mais otimizado. Para uso corporativo normal, os dois são equivalentes.
Posso usar ÍNDICE para retornar uma linha inteira?
Sim. Omita o argumento núm_coluna: =ÍNDICE(A1:D10; 3) retorna toda a terceira linha do intervalo.