Menu

CORRESPX no Excel (XMATCH): posição, última ocorrência

=CORRESPX(E2;A2:A6) retorna a posição de E2 em A2:A6, com correspondência exata por padrão. Ela também encontra o próximo valor menor ou maior sem ordenar, procura de baixo para cima e usa curingas.

Todas as planilhas desta página são ao vivo: mude um número ou uma fórmula e elas recalculam.

=CORRESPX(E2;A2:A6) retorna a posição de E2 em A2:A6: 1 para a primeira célula, 2 para a segunda. Diferente da CORRESP (MATCH), ela procura uma correspondência exata, a não ser que você diga outra coisa. A CORRESPX precisa do Excel 2021 ou do Microsoft 365; em versões anteriores, use CORRESP(E2;A2:A6;0). Em inglês, ela se chama XMATCH, e a tabela mostra a fórmula assim: =XMATCH(E2,A2:A6). Você também pode digitar as fórmulas em português, com ponto e vírgula.

Posição de um produto
F2
ABCDEF
1ProductCategoryPriceLook forPosition
2AppleFruit$1.20Carrot3
3PearFruit$1.50
4CarrotVegetable$0.80
5BreadBakery$2.40
6MilkDairy$1.10
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =CORRESPX(E2;A2:A6)

Carrot é o terceiro item, então F2 mostra 3. Digite Kiwi e ela retorna #N/D (#N/A em inglês, como a tabela mostra). Como toda busca do Excel, ela ignora maiúsculas.

Sintaxe da CORRESPX

=XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])
ArgumentoValores
match_mode0 exata (padrão), -1 exata ou o próximo menor, 1 exata ou o próximo maior, 2 correspondência com curinga
search_mode1 a partir do primeiro item (padrão), -1 a partir do último item, 2 busca binária crescente, -2 busca binária decrescente

Os modos binários são mais rápidos em listas ordenadas muito grandes e retornam posições erradas em listas fora de ordem. Os outros modos funcionam com dados em qualquer ordem.

O próximo menor ou o próximo maior, sem ordenar

O modo de correspondência 1 encontra o menor valor que é maior ou igual ao valor procurado. Isso responde "a menor caixa que serve" mesmo quando os tamanhos estão listados fora de ordem. Com a CORRESP, você precisaria da lista ordenada do maior para o menor.

A menor caixa em que o item cabe
E2
ABCDE
1BoxHolds (liters)Item (liters)18
2S5Position4
3XL50BoxL
4M12
5L25
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =CORRESPX(E1;B2:B5;1)

Os tamanhos em que cabem 18 litros são 25 e 50, e o menor é 25, o quarto item, a caixa L. Mude E1 para 12 para uma correspondência exata (M) ou para 40 para XL. O modo -1 é o contrário: o maior valor menor ou igual ao valor procurado, a regra das faixas de imposto e de comissão. A PROCX (XLOOKUP) tem os mesmos dois modos e retorna o valor direto.

Procurar a partir do último item

O modo de pesquisa -1 começa por baixo, então a CORRESPX retorna a posição da última ocorrência. As posições continuam contando a partir do topo do intervalo.

Último pedido de um cliente
F2
ABCDEF
1DateCustomerAmountCustomerBen
22026-03-02Ben120Last position5
32026-03-05Ana80Last date2026-03-20
42026-03-09Ben45First position1
52026-03-12Cara200
62026-03-20Ben60
72026-03-24Ana95
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =CORRESPX(F1;B2:B7;0;-1)

Ben aparece nas posições 1, 3 e 5. A busca para a frente retorna 1 e a busca reversa retorna 5, o pedido dele de 2026-03-20. Antes da CORRESPX, a última posição exigia um truque de matriz: =CORRESP(2;1/(B2:B7=F1)).

Curingas precisam do modo de correspondência 2

Com o modo 2, * vale por quaisquer caracteres e ? por exatamente um. Nos outros modos, eles são caracteres comuns, enquanto a CORRESP os trata como curingas sempre que o tipo de correspondência é 0.

Encontrar por padrão
D2
ABCD
1ProductPatternPosition
2Green tea*coffee2
3Iced coffee?lack*4
4Coffee beans
5Black tea
6Orange juice
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =CORRESPX(C2;A2:A6;2)

*coffee (qualquer coisa que termine em "coffee") bate com Iced coffee na posição 2, e ?lack* bate com Black tea na posição 4. Coffee beans não bate com *coffee, porque o padrão não tem * no fim. Sem o modo 2, o mesmo padrão é procurado como texto literal, então no Excel isto retorna #N/D:

=XMATCH("*coffee", A2:A6)        #N/A: no cell is literally "*coffee"
=XMATCH("*coffee", A2:A6, 2)     2

No Excel em português: =CORRESPX("*coffee";A2:A6;2).

CORRESPX ou CORRESP

CORRESPCORRESPX
Padrão quando o modo fica de foraAproximada (1), dados precisam estar ordenadosExata
Próximo valor menor1, dados em ordem crescente-1, qualquer ordem
Próximo valor maior-1, dados em ordem decrescente1, qualquer ordem
CuringasSempre ativos com 0Só com o modo de correspondência 2
Última ocorrênciaNãoModo de pesquisa -1
VersõesTodasExcel 2021 e Microsoft 365

Os sinais são invertidos: o -1 da CORRESP encontra o próximo valor maior e o -1 da CORRESPX, o próximo menor. Ao converter CORRESP(E2;A2:A6;0) para CORRESPX, tire o 0; ao converter uma CORRESP aproximada, inverta o sinal, e a ordem dos dados deixa de importar. A página da CORRESP trata da função mais antiga.

Prática: a posição do último pedido

Pedidos
F2
ABCDEF
1DateCustomerAmountCustomerBen
22026-03-02Ben120Last position
32026-03-05Ana80
42026-03-09Ben45
52026-03-12Cara200
62026-03-20Ben60
72026-03-24Ana95
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.

Sua vez: Em F2, retorne a posição do último pedido do cliente em F1.

Perguntas frequentes

Qual a diferença entre CORRESP e CORRESPX?

A CORRESPX tem a correspondência exata como padrão (a CORRESP tem a aproximada), encontra o próximo valor menor ou maior sem precisar de dados ordenados, pode procurar do último item para cima e só trata * e ? como curingas quando você pede, com o modo de correspondência 2. Ela precisa do Excel 2021 ou do Microsoft 365.

Como encontro a última ocorrência com a CORRESPX?

Defina o modo de pesquisa, o quarto argumento, como -1: =CORRESPX("Ben";B2:B7;0;-1) retorna a posição do último Ben em B2:B7. As posições continuam contando a partir do topo do intervalo.

O que a CORRESPX retorna quando nada bate?

#N/D, como a CORRESP. Envolva em SENÃODISP para mostrar outra coisa: =SENÃODISP(CORRESPX(E2;A2:A6);"Not in list").

A CORRESPX pode substituir a CORRESP dentro do ÍNDICE?

Pode. =ÍNDICE(C2:C6;CORRESPX(E2;A2:A6)) funciona como o ÍNDICE com CORRESP(E2;A2:A6;0), sem um 0 para esquecer. Use a CORRESP quando o arquivo precisa abrir no Excel 2019 ou anterior.

Ilustração das linguagens de programação do Coddy

Aprenda a programar com o Coddy

COMEÇAR