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)
- Resposta rápida: confira estes 4 pontos primeiro
- Lembrete: como o PROCV funciona
- Tabela de exemplo
- 1. O valor realmente não existe na tabela
- 2. Número armazenado como texto
- 3. Espaços sobrando
- 4. Faltou o FALSO no final (correspondência aproximada)
- 5. O valor procurado não está na primeira coluna
- 6. Número da coluna errado (#REF!, #VALOR! ou valor trocado)
- 7. O intervalo “andou” quando você arrastou a fórmula
- 8. Valores repetidos: o PROCV só traz o primeiro
- 9. A fórmula aparece como texto ou não recalcula
- Tabela de diagnóstico rápido
- Perguntas frequentes
Resposta rápida: confira estes 4 pontos primeiro
- O último argumento é FALSO (ou 0)? Sem ele, o PROCV pode trazer valor errado.
- O valor procurado está na primeira coluna do intervalo?
- O intervalo está travado com $ (por exemplo,
$A$2:$C$9)? - 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:
FALSOpara 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:
| Linha | A – Código | B – Produto | C – Preço |
|---|---|---|---|
| 2 | 101 | Caneta azul | R$ 2,50 |
| 3 | 102 | Lápis preto | R$ 1,20 |
| 4 | 103 | Caderno 96 folhas (com um espaço no fim) | R$ 18,90 |
| 5 | 104 (digitado como texto) | Borracha | R$ 1,80 |
| 6 | 105 | Marca-texto | R$ 6,50 |
| 7 | 106 | Grampeador | R$ 24,90 |
| 8 | 107 | Caneta vermelha | R$ 2,50 |
| 9 | 107 | Caneta 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 aparece | Causa mais provável | O que fazer |
|---|---|---|
| #N/D | Valor não existe, número como texto ou espaço sobrando | Causas 1, 2 e 3 |
| #N/D só em algumas linhas depois de arrastar | Intervalo sem $ | Causa 7 |
| #REF! | Número da coluna maior que o intervalo | Causa 6 |
| #VALOR! | Número da coluna menor que 1 | Causa 6 |
| Valor errado, sem erro | Faltou o FALSO, coluna errada ou código repetido | Causas 4, 6 e 8 |
| Fórmula aparece como texto | Célula formatada como Texto | Causa 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.
