PROCV não funciona? 9 causas comuns e como corrigir no Excel

Foto de William Oliveira
William OliveiraEngenheiro mecânico e especialista em Excel e VBA
Atualizado em 28/10/20269 min de leitura

Você escreveu o PROCV, conferiu a fórmula duas vezes e mesmo assim apareceu #N/D. Ou pior: o PROCV trouxe um valor, mas o valor errado, e ninguém percebeu. Isso acontece com todo mundo, e quase sempre a causa é uma de poucas armadilhas que se repetem.

Neste artigo você vai ver as 9 causas mais comuns de PROCV que não funciona, como identificar cada uma e a fórmula certa para corrigir. Todos os exemplos usam a mesma tabela e foram testados.

Neste artigo (14 seções)
  1. Resposta rápida: confira estes 4 pontos primeiro
  2. Lembrete: como o PROCV funciona
  3. Tabela de exemplo
  4. 1. O valor realmente não existe na tabela
  5. 2. Número armazenado como texto
  6. 3. Espaços sobrando
  7. 4. Faltou o FALSO no final (correspondência aproximada)
  8. 5. O valor procurado não está na primeira coluna
  9. 6. Número da coluna errado (#REF!, #VALOR! ou valor trocado)
  10. 7. O intervalo “andou” quando você arrastou a fórmula
  11. 8. Valores repetidos: o PROCV só traz o primeiro
  12. 9. A fórmula aparece como texto ou não recalcula
  13. Tabela de diagnóstico rápido
  14. Perguntas frequentes

Resposta rápida: confira estes 4 pontos primeiro

  1. O último argumento é FALSO (ou 0)? Sem ele, o PROCV pode trazer valor errado.
  2. O valor procurado está na primeira coluna do intervalo?
  3. O intervalo está travado com $ (por exemplo, $A$2:$C$9)?
  4. O código procurado e o código da tabela são do mesmo tipo (os dois números ou os dois texto) e sem espaços sobrando?

Se os quatro estiverem certos e o erro continuar, siga a lista completa abaixo.

Lembrete: como o PROCV funciona

A estrutura é:

=PROCV(valor_procurado;matriz_tabela;núm_índice_coluna;[procurar_intervalo])

  • valor_procurado: o que você quer encontrar (um código, um nome).
  • matriz_tabela: o intervalo da tabela. O valor procurado precisa estar na primeira coluna dele.
  • núm_índice_coluna: o número da coluna, dentro do intervalo, de onde sai o resultado (1 é a primeira).
  • procurar_intervalo: FALSO para correspondência exata. É o que você quer em 99% dos casos.

Tabela de exemplo

Todos os exemplos usam esta lista de produtos, nas colunas A a C, linhas 1 a 9. Ela tem de propósito algumas armadilhas que aparecem em planilhas reais:

LinhaA – CódigoB – ProdutoC – Preço
2101Caneta azulR$ 2,50
3102Lápis pretoR$ 1,20
4103Caderno 96 folhas (com um espaço no fim)R$ 18,90
5104 (digitado como texto)BorrachaR$ 1,80
6105Marca-textoR$ 6,50
7106GrampeadorR$ 24,90
8107Caneta vermelhaR$ 2,50
9107Caneta vermelha (caixa)R$ 27,00

A fórmula que funciona, para buscar o preço do código 105, é:

=PROCV(105;$A$2:$C$9;3;FALSO) → 6,50

1. O valor realmente não existe na tabela

Às vezes o #N/D está certo: o código procurado não está na lista. Com a nossa tabela, =PROCV(110;$A$2:$C$9;3;FALSO) devolve #N/D porque não existe o código 110.

Como corrigir: primeiro confira se o código deveria mesmo existir (pode ter sido digitado errado). Se for normal não encontrar, troque o erro por uma mensagem:

=SEERRO(PROCV(110;$A$2:$C$9;3;FALSO);"Não encontrado")

No Excel 2013 ou mais novo, prefira a SENÃODISP, que só troca o #N/D e deixa aparecer os outros erros (que indicam fórmula errada):

=SENÃODISP(PROCV(110;$A$2:$C$9;3;FALSO);"Não encontrado")

Cuidado: colocar SEERRO antes de descobrir a causa só esconde o problema. Use depois de ter certeza de que a fórmula está certa. Veja mais detalhes no artigo sobre a função SEERRO.

2. Número armazenado como texto

Esta é a causa campeã de #N/D. Para o Excel, o número 104 e o texto “104” são coisas diferentes. Na nossa tabela, o código 104 foi digitado como texto (acontece muito com dados copiados de sistemas ou com colunas formatadas como Texto). Resultado:

=PROCV(104;$A$2:$C$9;2;FALSO) → #N/D, mesmo com o 104 visível na tabela.

Como identificar:

  • Números como texto ficam alinhados à esquerda e costumam mostrar um triângulo verde no canto da célula.
  • A fórmula =ÉTEXTO(A5) devolve VERDADEIRO se a célula for texto.

Como corrigir (melhor opção): converta a coluna da tabela para número. Selecione as células, clique no aviso amarelo e escolha Converter em Número. Outra forma: Dados > Texto para Colunas > Concluir.

Como corrigir pela fórmula: ajuste o valor procurado para o mesmo tipo da tabela.

  • Tabela com texto e você procura um número: =PROCV(TEXTO(104;"0");$A$2:$C$9;2;FALSO) → Borracha.
  • Tabela com números e o código procurado (em F2) é texto: =PROCV(VALOR(F2);$A$2:$C$9;2;FALSO) ou o atalho =PROCV(F2*1;$A$2:$C$9;2;FALSO).

3. Espaços sobrando

Um espaço no fim do nome é invisível, mas para o PROCV “Caderno 96 folhas” e “Caderno 96 folhas ” (com espaço) são textos diferentes. Na nossa tabela, o nome do caderno tem um espaço no fim:

=PROCV("Caderno 96 folhas";$B$2:$C$9;2;FALSO) → #N/D

Como identificar: use =NÚM.CARACT(B4). “Caderno 96 folhas” tem 17 caracteres; se a fórmula mostrar 18, tem um espaço sobrando.

Se o espaço está no valor procurado (quem digitou a busca colocou um espaço a mais), use ARRUMAR, que tira espaços do início e do fim:

=PROCV(ARRUMAR(F2);$B$2:$C$9;2;FALSO)

Se o espaço está na tabela, o melhor é limpar a tabela: numa coluna auxiliar use =ARRUMAR(B2), arraste, copie e cole como Valores por cima da coluna original. Se não puder mexer na tabela, esta fórmula ignora os espaços da coluna de nomes:

=ÍNDICE($C$2:$C$9;CORRESP("Caderno 96 folhas";ARRUMAR($B$2:$B$9);0)) → 18,90

No Excel 365 ela funciona com Enter. No Excel 2019 ou anterior, confirme com Ctrl + Shift + Enter.

4. Faltou o FALSO no final (correspondência aproximada)

Este é o erro mais perigoso, porque não aparece erro nenhum. Quando você omite o último argumento, o PROCV usa correspondência aproximada: se não achar o valor exato, ele devolve o da linha com o maior valor menor que o procurado.

=PROCV(108;$A$2:$C$9;3) → 27,00

O código 108 não existe, mas o PROCV devolveu o preço da última linha sem avisar. Com o FALSO, o resultado correto é #N/D:

=PROCV(108;$A$2:$C$9;3;FALSO) → #N/D

Se a tabela não estiver em ordem crescente, a correspondência aproximada pode devolver valores de linhas aleatórias. Como corrigir: sempre termine o PROCV com FALSO ou 0. A aproximada só serve para faixas (como tabela de comissão ou de INSS), com a primeira coluna em ordem crescente.

5. O valor procurado não está na primeira coluna

O PROCV só procura na primeira coluna do intervalo e só devolve colunas à direita dela. Se você tem o nome do produto e quer o código (que está à esquerda), o PROCV não resolve.

Como corrigir: use ÍNDICE com CORRESP, que funciona em qualquer versão:

=ÍNDICE($A$2:$A$9;CORRESP("Grampeador";$B$2:$B$9;0)) → 106

No Excel 365 e no Excel 2021, a função PROCX faz isso de forma mais simples: =PROCX("Grampeador";$B$2:$B$9;$A$2:$A$9).

Outro erro parecido: começar o intervalo na coluna errada. Se o código está na coluna A, o intervalo precisa começar em A ($A$2:$C$9), e não em B.

6. Número da coluna errado (#REF!, #VALOR! ou valor trocado)

O número da coluna conta a partir do início do intervalo, e não a partir da coluna A da planilha. No intervalo $A$2:$C$9 existem só 3 colunas:

  • =PROCV(106;$A$2:$C$9;4;FALSO): pede a 4ª coluna, que não existe → #REF! no Excel.
  • =PROCV(106;$A$2:$C$9;0;FALSO): coluna menor que 1 → #VALOR!.

Tem ainda um caso silencioso: alguém insere uma coluna nova no meio da tabela, e o PROCV, que pedia a coluna 3, passa a trazer outra informação.

Como corrigir: confira o número contando a partir da primeira coluna do intervalo. Para não depender do número fixo, deixe o CORRESP achar a coluna pelo título:

=PROCV(106;$A$2:$C$9;CORRESP("Preço";$A$1:$C$1;0);FALSO) → 24,90

7. O intervalo “andou” quando você arrastou a fórmula

Se você escreve =PROCV(F2;A2:C9;2;FALSO) sem os cifrões e arrasta para baixo, na linha seguinte o intervalo vira A3:C10, depois A4:C11, e assim por diante. As primeiras linhas da tabela vão saindo da busca. Por exemplo, três linhas abaixo a fórmula vira =PROCV(101;A5:C12;2;FALSO) e o código 101 dá #N/D, porque a linha 2 ficou de fora.

Como corrigir: trave o intervalo com $. Clique na referência dentro da fórmula e pressione F4:

=PROCV(F2;$A$2:$C$9;2;FALSO)

Outra opção é transformar a lista em Tabela (Ctrl + T) e usar o nome da tabela no lugar do intervalo. Assim ela também cresce sozinha quando você inclui produtos.

8. Valores repetidos: o PROCV só traz o primeiro

O código 107 aparece duas vezes na tabela. O PROCV com FALSO sempre devolve a primeira ocorrência:

=PROCV(107;$A$2:$C$9;3;FALSO) → 2,50 (a caixa, de R$ 27,00, nunca aparece)

Como identificar: =CONT.SE($A$2:$A$9;107) devolve 2. Qualquer resultado maior que 1 indica código repetido.

Como corrigir: o certo é cada código ser único. Use Formatação Condicional > Realçar Regras das Células > Valores Duplicados para achar as repetições e corrija o cadastro. Se precisar de todos os resultados, no Excel 365 a função FILTRO devolve todas as linhas de um código.

9. A fórmula aparece como texto ou não recalcula

Dois casos que parecem defeito do PROCV, mas são da célula ou da planilha:

  • A célula mostra a fórmula em vez do resultado: ela estava formatada como Texto antes de você digitar. Mude o formato para Geral, clique na célula, pressione F2 e Enter. Confira também se não há um espaço antes do sinal de igual e se o atalho Ctrl + ` (mostrar fórmulas) não foi ativado sem querer.
  • O resultado não muda quando você altera o código: o cálculo está manual. Vá em Fórmulas > Opções de Cálculo > Automático.

Tabela de diagnóstico rápido

O que apareceCausa mais provávelO que fazer
#N/DValor não existe, número como texto ou espaço sobrandoCausas 1, 2 e 3
#N/D só em algumas linhas depois de arrastarIntervalo sem $Causa 7
#REF!Número da coluna maior que o intervaloCausa 6
#VALOR!Número da coluna menor que 1Causa 6
Valor errado, sem erroFaltou o FALSO, coluna errada ou código repetidoCausas 4, 6 e 8
Fórmula aparece como textoCélula formatada como TextoCausa 9

Perguntas frequentes

Por que o PROCV dá #N/D se o valor está na tabela?

Na maioria das vezes, um dos lados é número e o outro é texto, ou existe um espaço invisível no fim. Teste com =ÉTEXTO(A5) e =NÚM.CARACT(B4) e veja as causas 2 e 3.

Devo usar FALSO ou 0 no final?

Tanto faz: os dois significam correspondência exata. =PROCV(102;$A$2:$C$9;3;0) dá o mesmo resultado que com FALSO (1,20).

O PROCV diferencia maiúsculas de minúsculas?

Não. “CANETA AZUL” e “caneta azul” são encontrados da mesma forma. Acentos, porém, contam: “Lapis” sem acento não encontra “Lápis”.

PROCX substitui o PROCV?

No Excel 365 e 2021, sim: o PROCX já usa correspondência exata por padrão e busca para qualquer lado. Se a planilha vai ser aberta em versões mais antigas, use PROCV ou ÍNDICE com CORRESP, que funcionam em todas.

Referência: Função PROCV – Suporte da Microsoft.

QUER IR ALÉM DESTE ARTIGO?
Aprenda Excel do básico ao avançado com aulas em vídeo
O Curso de Excel da Expert Cursos vai das primeiras configurações até funções, gráficos e macros. São cerca de 30 horas de aula com certificado, planilhas prontas para baixar e acesso vitalício, com pagamento único.
Link de afiliado: se você comprar por ele, o Excel Smart pode receber uma comissão, sem custo extra para você.
Foto de William Oliveira

QUEM ESCREVEU

William Oliveira

Engenheiro mecânico, especialista em Excel e programador VBA avançado. Ensina VBA no YouTube para mais de 4,8 mil inscritos e testa cada fórmula antes de publicar.