O PROCV retorna #N/D mesmo quando o valor parece existir porque, na maioria das vezes, o valor buscado e o valor da tabela não são exatamente iguais para o Excel — por causa de um espaço invisível, um número guardado como texto, ou porque falta o quarto argumento FALSO na fórmula, que define a correspondência exata.
Você olha a tabela, vê o valor lá, com seus próprios olhos, mas o PROCV insiste em devolver #N/D como se ele não existisse — e quanto mais você confere visualmente, mais convencido fica de que a fórmula está “quebrada” sem motivo aparente.
Esse é um dos erros mais frustrantes do Excel justamente porque a explicação nunca está na tela: o Excel compara os valores caractere por caractere e tipo por tipo, então uma diferença mínima e invisível (um espaço, um formato de texto vs. número) já é suficiente para o PROCV considerar os dois valores diferentes.
Neste artigo iremos mostrar as causas mais comuns do PROCV retornar #N/D mesmo com o valor “existindo” na tabela, como diagnosticar qual delas é a sua, e como corrigir cada uma com um exemplo prático.
Como funciona a comparação do PROCV por trás dos panos
O PROCV (=PROCV(valor_procurado; matriz_tabela; núm_índice_coluna; [procurar_intervalo])) compara o valor procurado com a primeira coluna da tabela buscando uma correspondência exata (quando o quarto argumento é FALSO) ou aproximada (quando é VERDADEIRO ou omitido). O problema é que “igual” para o Excel significa igual em tipo de dado e em cada caractere — não apenas visualmente parecido na tela.
Causas mais comuns e como corrigir
Veja as situações que mais geram #N/D mesmo com o valor “existindo” na planilha:
| Causa comum | Como identificar | Como corrigir |
|---|---|---|
| Faltou o 4º argumento FALSO (correspondência exata) | A fórmula termina só com o intervalo, sem VERDADEIRO/FALSO no final | Adicionar ;FALSO no final da fórmula para exigir valor exato |
| Espaço invisível no valor buscado ou na tabela | Os valores parecem idênticos, mas ÉNÚM/comparação direta não bate | Envolver a busca com ARRUMAR(): =PROCV(ARRUMAR(A2);…) |
| Um valor é número e o outro é texto | Alinhamento diferente entre a célula buscada e a coluna da tabela | Converter ambos para o mesmo tipo com VALOR() ou TEXTO() |
| Coluna de busca não é a primeira da tabela | O valor que você quer buscar está à direita da primeira coluna | Reorganizar as colunas, ou trocar por PROCX/ÍNDICE+CORRESP |
| Intervalo da tabela não cobre a linha do valor | O valor existe, mas está fora do intervalo usado na fórmula | Ajustar o intervalo, ou usar uma coluna inteira/Tabela do Excel |
A causa número um: esquecer o quarto argumento
Uma fórmula como =PROCV(A2;Tabela;3), sem o quarto argumento, assume busca aproximada por padrão. Isso não costuma gerar #N/D diretamente (a menos que o valor buscado seja menor que o primeiro item da tabela), mas o comportamento correto e mais seguro na maioria dos casos é forçar a correspondência exata: =PROCV(A2;Tabela;3;FALSO). Com FALSO, se o valor realmente não existir de forma idêntica na tabela, você recebe o #N/D — que nesse caso é a informação certa, não um bug.
O vilão escondido: espaço invisível
Dados importados de sistemas externos, colados de sites ou de relatórios em PDF costumam trazer um espaço extra antes ou depois do texto, invisível a olho nu. Para testar, use =A2=C5 comparando diretamente o valor buscado com o que deveria ser a correspondência na tabela — se o resultado for FALSO mesmo os dois “parecendo” iguais, envolva a busca com ARRUMAR(): =PROCV(ARRUMAR(A2);Tabela;3;FALSO), que remove espaços extras antes de comparar.
Número guardado como texto (ou vice-versa)
Um código de produto como “0123” pode estar como texto na planilha de origem e como número (123, sem o zero à esquerda) na tabela de busca — para o PROCV, esses dois valores são completamente diferentes. Padronize os dois lados para o mesmo tipo: use =VALOR(A2) para transformar texto em número, ou =TEXTO(A2;”0″) para transformar número em texto, dependendo de qual lado precisa mudar.
Quando o problema é estrutural: a coluna certa não é a primeira
O PROCV só busca na primeira coluna do intervalo selecionado. Se o valor que você quer localizar está em uma coluna à direita da coluna de busca (por exemplo, buscar pelo nome do produto mas o nome está na coluna D, não na A), o PROCV simplesmente não encontra, mesmo com tudo mais certo. Nesse caso, a solução mais moderna é trocar por PROCX — veja o artigo PROCX com múltiplos critérios no Excel — ou combinar ÍNDICE com CORRESP, que buscam em qualquer coluna, em qualquer direção.
Disponibilidade
PROCV, ARRUMAR, VALOR e TEXTO funcionam em todas as versões do Excel, incluindo Microsoft 365, Excel Online, Excel para Mac e Google Sheets (com a mesma função PROCV/VLOOKUP). O PROCX, citado como alternativa, está disponível apenas no Excel 365 e no Google Sheets.
Perguntas frequentes
Por que colocar FALSO no final do PROCV resolve tanta coisa?
Sem o FALSO (ou 0), o PROCV assume VERDADEIRO por padrão, que é a busca aproximada — ela exige que a tabela esteja ordenada e devolve o valor mais próximo, não o exato. Isso pode até não gerar #N/D, mas devolver um resultado errado sem avisar. Com FALSO, o PROCV exige encontrar o valor exatamente igual, e se não encontrar, aí sim mostra #N/D — o que é mais seguro para a maioria dos usos.
Como confirmo rapidamente se o problema é espaço invisível?
Em uma célula vazia, digite =A2=A2 comparando com o valor que deveria bater na tabela, por exemplo =A2=C5. Se os dois parecem iguais na tela mas a fórmula devolve FALSO, há alguma diferença invisível entre eles — normalmente espaço extra. Envolver ambos os lados com ARRUMAR() antes de comparar confirma a suspeita.
PROCX resolve esses mesmos problemas de #N/D do PROCV?
PROCX resolve o problema da coluna de busca não ser a primeira (ele busca em qualquer coluna, para qualquer direção), mas não resolve sozinho os problemas de espaço invisível ou texto vs número — essas causas precisam ser corrigidas independentemente da função de busca escolhida.
Compartilhe ou Comente
Se você curtiu esse artigo aonde mostramos por que o PROCV retorna #N/D mesmo com o valor existindo e como corrigir cada causa, compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo caso você tenha ficado com alguma dúvida.
Qual dessas causas era a sua da última vez que isso aconteceu? Você já tinha o hábito de testar com ARRUMAR() antes de ler esse artigo? Conta para nós nos comentários!