Menu

PROCX no Excel (XLOOKUP): fórmula, exemplos e modos

=PROCX(F2;A2:A6;C2:C6) procura F2 em A2:A6 e retorna o valor da mesma linha de C2:C6. Texto para não encontrado, várias colunas de uma vez, busca à esquerda, última ocorrência, correspondência aproximada e com curinga.

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

=PROCX(F2;A2:A6;C2:C6) procura o valor de F2 em A2:A6 e retorna o valor da mesma linha de C2:C6. Ela procura uma correspondência exata por padrão, a coluna de busca pode estar em qualquer lugar, e ela precisa do Excel 2021 ou do Microsoft 365 (no Excel 2019 e anteriores, use ÍNDICE e CORRESP). A PROCX se chama XLOOKUP em inglês, e a tabela mostra a fórmula assim: =XLOOKUP(F2,A2:A6,C2:C6). Você também pode digitar as fórmulas em português, com ponto e vírgula. Digite outro produto em F2.

Preço de um produto
G2
ABCDEFG
1ProductCategoryPriceStockLook forPrice
2AppleFruit$1.2040Bread$2.40
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
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: =PROCX(F2;A2:A6;C2:C6)

Clique em G2: o intervalo de busca e o intervalo de retorno aparecem contornados separadamente. Mude C2:C6 para B2:B6 e G2 retorna a categoria. Não há número de coluna para contar, então inserir uma coluna entre A e C não quebra a fórmula: o Excel move os dois intervalos.

Sintaxe da PROCX

=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
ArgumentoO que fazPadrão
lookup_valueO valor a encontrar.obrigatório
lookup_arrayA coluna (ou linha) onde procurar.obrigatório
return_arrayA coluna, linha ou bloco de onde retornar. Mesma altura de lookup_array.obrigatório
if_not_foundO que mostrar quando nada bate.#N/D
match_mode0 exata, -1 exata ou o próximo menor, 1 exata ou o próximo maior, 2 curingas.0
search_mode1 do primeiro ao último, -1 do último ao primeiro, 2 e -2 busca binária em dados ordenados.1

Só os três primeiros são obrigatórios. Para pular um argumento opcional e definir um posterior, deixe o argumento vazio entre os separadores: =PROCX(F2;A2:A6;C2:C6;;0;-1) define o modo de pesquisa e deixa o se não encontrado no padrão.

Retornar várias colunas de uma vez

Passe à PROCX um intervalo de retorno com várias colunas de largura e a linha inteira volta. O resultado se espalha pelas células ao lado da fórmula.

Todos os campos de um produto
B8
ABCD
1ProductCategoryPriceStock
2AppleFruit$1.2040
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
7Look forCarrot
8ResultVegetable$0.8060
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: =PROCX(B7;A2:A6;B2:D6)

Uma fórmula em B8 preenche B8:D8 com Vegetable, $0.80 e 60. Digite algo em C8 e B8 mostra #DESPEJAR! (#SPILL! em inglês, como a tabela mostra os erros), porque o resultado não tem espaço; apague e o resultado volta. Para retornar as colunas em outra ordem, envolva o intervalo de retorno em ESCOLHERCOLS (CHOOSECOLS em inglês): =PROCX(B7;A2:A6;ESCOLHERCOLS(B2:D6;3;1)) dá Stock e depois Category.

PROCX à esquerda, e uma mensagem quando nada bate

A coluna de busca não precisa vir primeiro. Aqui a PROCX procura os preços na coluna C e retorna o nome do produto da coluna A, o que o PROCV (VLOOKUP) não consegue fazer. O quarto argumento diz o que mostrar quando nenhum produto tem aquele preço.

Qual produto custa isso?
G2
ABCDEFG
1ProductCategoryPriceStockPriceProduct
2AppleFruit$1.2040$2.40Bread
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
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: =PROCX(F2;C2:C6;A2:A6;"No product")

$2.40 retorna Bread. Mude F2 para 3 e G2 mostra "No product" em vez de #N/A. "" como quarto argumento mostra uma célula que parece vazia. O se não encontrado só cobre o "não encontrado": um intervalo de retorno com a altura errada continua dando #VALOR! (#VALUE!), que é o que você quer ver.

Encontrar a última ocorrência

A PROCX retorna a primeira ocorrência de cima para baixo. Defina o modo de pesquisa, o sexto argumento, como -1 e ela procura de baixo para cima, então retorna a última ocorrência: o pedido mais recente, o preço mais recente, o último status.

Primeiro e último pedido de um cliente
G2
ABCDEFG
1DateCustomerAmountCustomerFirstLast
22026-03-02Ben120Ben12060
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.No Excel em português: =PROCX(E2;B2:B7;C2:C7;;0;-1)

O primeiro pedido de Ben é 120 e o último é 60. Mude E2 para Ana: 80 e 95. Isso depende de as linhas estarem em ordem de data. Se não estiverem, procure a data mais recente do cliente: =PROCX(1;(B2:B7=E2)*(A2:A7=MÁXIMOSES(A2:A7;B2:B7;E2));C2:C7).

Correspondência aproximada: o próximo menor ou o próximo maior

O modo de correspondência -1 retorna uma correspondência exata ou, se não houver, o próximo valor menor. É a regra das faixas: um nível de comissão, uma faixa de imposto, uma nota. Diferente do PROCV com VERDADEIRO, a tabela não precisa estar ordenada. As faixas abaixo estão fora de ordem de propósito.

Taxa de comissão por vendas
F2
ABCDEF
1Sales fromRateRepSalesRate
250005%Ana7500%
300%Ben4,2003%
4100008%Cara5,0005%
510003%Dev12,5008%
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: =PROCX(E2;$A$2:$A$5;$B$2:$B$5;;-1)

Os 4.200 de Ben caem entre 1.000 e 5.000, então ele recebe os 3% da faixa de 1.000. Os 5.000 de Cara são uma correspondência exata, 5%. O modo de correspondência 1 funciona ao contrário, exata ou o próximo maior, e responde "a menor caixa que serve" ou "o próximo horário de entrega": =XLOOKUP(18,{5;12;25;50},{"S";"M";"L";"XL"},,1) (forma em inglês) retorna L.

PROCX com curingas

O modo de correspondência 2 transforma * (quaisquer caracteres) e ? (um caractere) em curingas. Sem ele, a PROCX procura os próprios caracteres, o contrário do PROCV (cuja correspondência exata aceita curingas), e esse é o motivo comum de uma PROCX com curinga retornar #N/D ou o texto de se não encontrado:

=XLOOKUP("*coffee*",A2:A6,C2:C6,"None")      None: no product is named *coffee*
=XLOOKUP("*coffee*",A2:A6,C2:C6,"None",2)    2.9, the price of Iced coffee

No Excel em português: =PROCX("*coffee*";A2:A6;C2:C6;"None";2).

Primeiro produto cujo nome contém o texto
F2
ABCDEF
1ProductCategoryPriceContainsPrice
2Green teaDrinks$3.20coffee$2.90
3Iced coffeeDrinks$2.90
4Coffee beansPantry$8.50
5Black teaDrinks$2.70
6Orange juiceDrinks$3.40
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: =PROCX("*"&E2&"*";A2:A6;C2:C6;"None";2)

"coffee" encontra primeiro Iced coffee, $2.90. Acrescente -1 como sexto argumento e ela encontra Coffee beans, $8.50. Como toda busca do Excel, a correspondência ignora maiúsculas. Para encontrar um asterisco ou um ponto de interrogação de verdade no modo 2, coloque um til antes: "~*".

PROCX em duas direções

Uma PROCX que retorna uma linha inteira pode ser o intervalo de retorno de uma segunda PROCX. A de dentro escolhe a linha pela região, a de fora escolhe a coluna do mês nessa linha.

Vendas por região e mês
B8
ABCD
1RegionJanFebMar
2North4,2003,9004,800
3South3,1003,6003,300
4East5,2004,7005,600
5West2,8003,0003,400
6RegionSouth
7MonthFeb
8Sales3,600
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: =PROCX(B7;B1:D1;PROCX(B6;A2:A5;B2:D5))

PROCX(B6;A2:A5;B2:D5) retorna a linha de South, 3100, 3600 e 3300. A PROCX de fora encontra Feb em B1:D1 e pega o valor correspondente dessa linha: 3,600. Escolha outra região e outro mês em B6 e B7. A versão com ÍNDICE e CORRESP da mesma busca está na página ÍNDICE e CORRESP.

PROCX no Excel antigo e no Google Planilhas

A PROCX existe no Excel 2021, no Excel 2024, no Microsoft 365, no Excel para a web e nos aplicativos móveis. Se você abrir um arquivo que a usa no Excel 2019 ou anterior, as fórmulas mostram #NOME? assim que recalculam. Quando um arquivo precisa funcionar em qualquer lugar, escreva a busca com ÍNDICE e CORRESP (INDEX e MATCH em inglês), que todas as versões entendem:

=XLOOKUP(F2, A2:A6, C2:C6, "Not found")
=IFNA(INDEX(C2:C6, MATCH(F2, A2:A6, 0)), "Not found")

No Excel em português: =PROCX(F2;A2:A6;C2:C6;"Not found") e =SENÃODISP(ÍNDICE(C2:C6;CORRESP(F2;A2:A6;0));"Not found").

O Google Planilhas tem a PROCX desde 2022, com os mesmos argumentos. Para ver as diferenças lado a lado, veja PROCV ou PROCX. Para bater com duas colunas de uma vez (produto e tamanho, nome e data), o padrão =PROCX(1;(B2:B6=E2)*(C2:C6=F2);D2:D6) está explicado na página busca com vários critérios.

Prática: um preço, ou "Not found"

Lista de preços
G2
ABCDEFG
1ProductCategoryPriceStockLook forPrice
2AppleFruit$1.2040Kiwi
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
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 G2, retorne o preço do produto em F2, ou o texto Not found quando ele não estiver na lista.

Prática: desconto pelo tamanho do pedido

Faixas de desconto
E2
ABCDE
1Order fromDiscountOrderDiscount
2$00%$320
3$1005%
4$25010%
5$50015%
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.

Sua vez: Cada desconto vale a partir do seu valor de pedido para cima. Em E2, use a PROCX para retornar o desconto do valor do pedido em D2.

Perguntas frequentes

Como uso a PROCX no Excel?

Passe três argumentos: o que encontrar, a coluna onde procurar e a coluna a retornar. =PROCX("Pear";A2:A6;C2:C6) encontra Pear em A2:A6 e retorna o valor da mesma linha de C2:C6. Ela procura uma correspondência exata, a não ser que você diga outra coisa.

Quais versões do Excel têm a PROCX?

Excel 2021, Excel 2024, Microsoft 365 e Excel para a web. No Excel 2019 e anteriores, a fórmula mostra #NOME?; nessas versões, use =ÍNDICE(C2:C6;CORRESP(F2;A2:A6;0)). O Google Planilhas também tem a PROCX.

Como faço a PROCX retornar vazio ou um texto em vez de #N/D?

Use o quarto argumento, se não encontrado: =PROCX(F2;A2:A6;C2:C6;"Not found"), ou "" para uma célula que parece vazia. Ele só troca o caso de não encontrado; os outros erros continuam aparecendo.

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

Defina o sexto argumento, o modo de pesquisa, como -1, para a busca correr de baixo para cima: =PROCX("Ben";B2:B7;C2:C7;;0;-1) retorna o último valor de Ben em vez do primeiro.

A PROCX pode retornar mais de uma coluna?

Pode. Passe um intervalo de retorno com várias colunas de largura, como =PROCX(F2;A2:A6;B2:D6), e o resultado se espalha pelas células ao lado. As células em que ele se espalha precisam estar vazias, senão o Excel mostra #DESPEJAR!.

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

Aprenda a programar com o Coddy

COMEÇAR