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

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.