Menu

PROCV no Excel (VLOOKUP): como usar, com exemplos

=PROCV(F2;A2:D6;3;FALSO) procura F2 na primeira coluna de A2:D6 e retorna o valor da terceira coluna da mesma linha. Correspondência exata e aproximada, como resolver o #N/D, outra planilha, dois critérios.

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

=PROCV(F2;A2:D6;3;FALSO) procura o valor de F2 na primeira coluna de A2:D6 e retorna o valor da terceira coluna da mesma linha. O FALSO no fim significa "só correspondência exata". Escolha outro produto em F2 e o preço muda. O PROCV se chama VLOOKUP em inglês, e a tabela mostra a fórmula assim: =VLOOKUP(F2,A2:D6,3,FALSE). Você também pode digitar as fórmulas em português na tabela, com ponto e vírgula.

Preço de um produto
G2
ABCDEFG
1ProductCategoryPriceStockLook forPrice
2AppleFruit$1.2040Pear$1.50
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: =PROCV(F2;A2:D6;3;FALSO)

Clique em G2 para ver a tabela A2:D6 contornada. Mude o 3 da fórmula para 2 e G2 retorna a categoria no lugar do preço, porque Category é a segunda coluna da tabela. A busca ignora maiúsculas: pear encontra Pear.

Sintaxe do PROCV

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
ArgumentoO que éNo exemplo
lookup_value (valor_procurado)O valor a encontrar.F2 (Pear)
table_array (matriz_tabela)A tabela onde procurar. O PROCV procura só na primeira coluna dela.A2:D6
col_index_num (núm_índice_coluna)Qual coluna da tabela retornar, contando a partir da primeira coluna da tabela (1).3 (Price)
range_lookup (procurar_intervalo)FALSO ou 0 para correspondência exata. VERDADEIRO, 1 ou nada para correspondência aproximada.FALSO

O número da coluna conta a partir do começo da tabela, não da coluna A da planilha. Em uma tabela que começa na coluna C, col_index_num 2 significa a coluna D. Um número maior que a largura da tabela retorna #REF!, e 0 retorna #VALOR! (#VALUE! em inglês; a tabela mostra os nomes de erro em inglês).

No Excel em português, os argumentos são separados por ponto e vírgula: =PROCV(F2;A2:D6;3;FALSO).

Escolher a coluna de retorno com CORRESP

Um 3 fixo quebra em silêncio quando alguém insere uma coluna dentro da tabela: a fórmula continua retornando a terceira coluna, que agora tem outra coisa. Deixe a CORRESP (MATCH em inglês) achar o número da coluna a partir do cabeçalho. Aqui G1 é uma lista suspensa: escolha Stock ou Category e G2 acompanha.

Número da coluna a partir do cabeçalho
G2
ABCDEFG
1ProductCategoryPriceStockLook forPrice
2AppleFruit$1.2040Carrot0.8
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: =PROCV(F2;A2:D6;CORRESP(G1;A1:D1;0);FALSO)

CORRESP(G1;A1:D1;0) retorna a posição de "Price" na linha de cabeçalho, 3, e o PROCV usa essa posição como número da coluna: 0.8 para Carrot. É uma busca em duas direções: uma linha escolhida pelo produto, uma coluna escolhida pelo cabeçalho. A mesma ideia escrita com ÍNDICE (INDEX em inglês) no lugar do PROCV está na página ÍNDICE e CORRESP.

Correspondência aproximada: PROCV com VERDADEIRO

Com VERDADEIRO como último argumento, o PROCV não procura um valor igual. Ele encontra o maior valor menor ou igual ao valor procurado. É o que você quer para faixas: faixas de imposto, notas, tabelas de frete, níveis de comissão. A primeira coluna precisa estar ordenada do menor para o maior.

Taxa de comissão por vendas
F2
ABCDEF
1Sales fromRateRepSalesRate
200%Ana7500%
310003%Ben4,2003%
450005%Cara5,0005%
5100008%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: =PROCV(E2;$A$2:$B$5;2;VERDADEIRO)

Os 4.200 de Ben não estão na coluna A. O maior valor que não passa disso é 1.000, então ele recebe 3%. Os 5.000 de Cara batem exatamente com a linha de 5.000 e ela recebe 5%. Os 12.500 de Dev passam da última faixa e ele recebe a última taxa, 8%. Um valor abaixo da primeira faixa (aqui, uma venda negativa) retorna #N/D, e é por isso que a tabela começa em 0.

Os $ em $A$2:$B$5 mantêm a tabela no lugar quando F2 é arrastada até F5. Sem eles, F3 procuraria em A3:B6 e pularia a primeira faixa.

Deixar o quarto argumento de fora é o mesmo que VERDADEIRO. Em uma lista de produtos fora de ordem, isso é um bug silencioso: o Excel procura como se a lista estivesse ordenada e pode retornar um preço da linha errada, ou #N/D para um valor que está lá. Quando você busca nomes, códigos ou IDs, termine sempre com FALSO.

Por que o PROCV retorna #N/D

#N/D (#N/A em inglês) significa "não encontrado". A tabela abaixo mostra três causas comuns, e a coluna G repete cada busca envolvida em SENÃODISP e ARRUMAR.

Três buscas que retornam #N/A
F2
ABCDEFG
1ProductCategoryPriceStockLook forPriceFixed
2AppleFruit$1.2040Kiwi#N/ANot found
3PearFruit$1.5025Milk #N/A$1.10
4CarrotVegetable$0.8060Fruit#N/ANot found
5BreadBakery$2.4015
6MilkDairy$1.1030
#N/A O valor procurado não está no intervalo de pesquisa.No Excel em português: =PROCV(E2;$A$2:$D$6;3;FALSO)
  1. O valor não está na tabela. Kiwi não está em A2:A6. É um "não encontrado" de verdade, e SENÃODISP(...;"Not found") transforma isso em um texto legível. Mude E2 para Apple e as duas colunas mostram o preço.
  2. Espaços a mais. E3 tem "Milk " com um espaço no fim, então não é igual a Milk. ARRUMAR(E3) (TRIM em inglês) tira o espaço e G3 encontra o preço. Se os espaços estiverem na tabela, limpe a coluna A com ARRUMAR uma vez em vez de em cada busca.
  3. O valor está em outra coluna. Fruit existe, mas na coluna B. O PROCV só procura na primeira coluna da tabela, então E4 falha nas duas colunas. Comece a tabela pela coluna onde você procura, ou use a PROCX (XLOOKUP em inglês), que recebe a coluna de busca e a coluna de retorno separadas.

Use a SENÃODISP (IFNA em inglês) em vez da SEERRO (IFERROR) em volta de uma busca. A SENÃODISP só pega o #N/D, então um #REF! de um número de coluna errado continua aparecendo em vez de ficar escondido como "Not found".

Mais duas causas:

  • Números armazenados como texto. Se a coluna A tem códigos de produto digitados como texto (comum depois de uma importação, com um triangulozinho verde no canto) e F2 tem o número 101, =PROCV(F2;A2:B6;2;FALSO) retorna #N/D mesmo com 101 na lista. Converta um dos lados: =PROCV(F2&"";A2:B6;2;FALSO) procura o texto "101", e =PROCV(VALOR(F2);A2:B6;2;FALSO) procura um número quando F2 é o texto.
  • Correspondência aproximada em dados fora de ordem, descrita na seção acima.

PROCV retorna 0 em vez de vazio

Quando a célula em que o PROCV cai está vazia, o Excel mostra 0, não uma célula vazia. Um 0 numa coluna Stock passa a ser lido como "sem estoque" quando o estoque nunca foi preenchido. Acrescente &"" à fórmula, ou teste o tamanho do resultado:

=VLOOKUP(F2,A2:D6,4,FALSE)&""
=IF(LEN(VLOOKUP(F2,A2:D6,4,FALSE))=0,"",VLOOKUP(F2,A2:D6,4,FALSE))

No Excel em português: =PROCV(F2;A2:D6;4;FALSO)&"" e =SE(NÚM.CARACT(PROCV(F2;A2:D6;4;FALSO))=0;"";PROCV(F2;A2:D6;4;FALSO)). A primeira é mais curta, mas transforma todo número que retorna em texto, então uma SOMA depois pula esse valor. A segunda mantém os números como números.

PROCV de outra planilha

Escreva o nome da planilha e ! antes da tabela. Quando você monta a fórmula no Excel, clique na aba da outra planilha e selecione o intervalo: o Excel escreve Prices!A2:B6 para você. Aqui a aba Orders busca os preços na aba Prices.

Pedidos com preço da planilha Prices
D2
ABCDE
1OrderProductQtyPriceTotal
21001Pear3$1.50$4.50
31002Milk2$1.10$2.20
41003Apple5$1.20$6.00
51004Bread1$2.40$2.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: =PROCV(B2;Prices!$A$2:$B$6;2;FALSO)

Abra a aba Prices e mude o preço de Apple: o total do pedido se atualiza. Dois detalhes:

  • Um nome de planilha com espaços precisa de aspas simples: =PROCV(B2;'Price list'!$A$2:$B$6;2;FALSO).
  • Uma tabela em outra pasta de trabalho acrescenta o nome do arquivo entre colchetes, [Prices.xlsx]Prices!$A$2:$B$6. Quando esse arquivo está fechado, o Excel mostra o caminho completo dele na fórmula e a busca continua funcionando a partir do arquivo salvo.

PROCV com curingas (correspondência parcial)

Com FALSO, o valor procurado pode ter curingas: * vale por qualquer quantidade de caracteres e ? por exatamente um. "*"&E2&"*" encontra o primeiro produto cujo nome contém o texto de E2.

Encontrar um produto por parte do nome
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: =PROCV("*"&E2&"*";A2:C6;3;FALSO)

"coffee" bate com Iced coffee e com Coffee beans; o PROCV retorna o primeiro de cima para baixo, $2.90. Mude E2 para bean para ter $8.50, ou para juice. Para procurar um asterisco ou um ponto de interrogação de verdade, coloque um til antes: "~*".

PROCV à esquerda

O PROCV não consegue retornar uma coluna à esquerda da coluna onde procura: col_index_num só conta para a direita, e números negativos dão erro. Para achar o produto de um preço, procure na coluna C e retorne a coluna A com a PROCX ou com ÍNDICE e CORRESP:

=XLOOKUP(2.4, C2:C6, A2:A6)              Excel 2021 and Microsoft 365
=INDEX(A2:A6, MATCH(2.4, C2:C6, 0))      every version

No Excel em português: =PROCX(2,4;C2:C6;A2:A6) e =ÍNDICE(A2:A6;CORRESP(2,4;C2:C6;0)). As duas retornam Bread com os dados da primeira tabela. A PROCX tem a explicação completa.

Prática: frete por peso

Tabela de frete
E2
ABCDE
1Weight from (kg)CostWeight (kg)Cost
20$4.507
32$6.00
45$9.50
510$14.00
620$22.00
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 custo vale a partir do seu peso até o próximo peso da lista. Em E2, use o PROCV para retornar o custo de frete do peso do pacote em D2.

PROCV com dois critérios

O PROCV aceita um valor procurado. Para bater com duas colunas, crie uma coluna auxiliar que junta as duas, coloque essa coluna primeiro na tabela e procure o mesmo texto juntado. A coluna A abaixo é =B2&"-"&C2 arrastada para baixo, então ela tem Coffee-Small, Coffee-Large e assim por diante.

Preço por produto e tamanho
G2
ABCDEFG
1KeyProductSizePriceProductSizePrice
2Coffee-SmallCoffeeSmall$2.50TeaLarge
3Coffee-LargeCoffeeLarge$3.50
4Tea-SmallTeaSmall$2.00
5Tea-LargeTeaLarge$3.00
6Juice-SmallJuiceSmall$3.00
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.

Sua vez: A coluna A junta o produto e o tamanho com um hífen. Em G2, retorne o preço do produto em E2 no tamanho em F2.

O separador faz diferença: "Tea"&"Large" dá TeaLarge, que não bate com nada na coluna A. No Excel 2021 e no Microsoft 365, você pode dispensar a coluna auxiliar com =PROCX(1;(B2:B6=E2)*(C2:C6=F2);D2:D6); busca com vários critérios mostra essa fórmula e a versão com ÍNDICE/CORRESP.

Perguntas frequentes

Como faço um PROCV no Excel?

Digite =PROCV( e passe quatro argumentos: o valor procurado, a tabela (a primeira coluna dela precisa ter esse valor), o número da coluna a retornar e FALSO para uma correspondência exata. =PROCV("Pear";A2:D6;3;FALSO) encontra Pear na coluna A e retorna o valor da coluna C dessa linha.

O que significa VERDADEIRO ou FALSO no fim do PROCV?

FALSO (ou 0) pede uma correspondência exata e retorna #N/D quando o valor não existe. VERDADEIRO (ou 1, ou deixar o argumento de fora) pede uma correspondência aproximada: o maior valor menor ou igual ao valor procurado, o que só funciona quando a primeira coluna está em ordem crescente.

Por que meu PROCV retorna #N/D?

O valor não foi encontrado na primeira coluna da tabela. As causas comuns são um erro de digitação, um espaço a mais ("Milk " não é "Milk"), um número armazenado como texto só de um lado, ou um valor que está em outra coluna. Envolva a fórmula na SENÃODISP para mostrar o seu próprio texto: =SENÃODISP(PROCV(F2;A2:D6;3;FALSO);"Not found").

O PROCV consegue buscar à esquerda?

Não. O PROCV só retorna colunas à direita da primeira coluna da tabela. Use =PROCX(F2;C2:C6;A2:A6) no Excel 2021 ou no Microsoft 365, ou =ÍNDICE(A2:A6;CORRESP(F2;C2:C6;0)) em qualquer versão.

Como faço um PROCV de outra planilha?

Coloque o nome da planilha e um ponto de exclamação antes do intervalo: =PROCV(B2;Prices!$A$2:$B$6;2;FALSO). Se o nome da planilha tiver um espaço, coloque o nome entre aspas simples: 'Price list'!$A$2:$B$6.

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

Aprenda a programar com o Coddy

COMEÇAR