Menu

Erro #N/D no Excel (#N/A): corrigir PROCV e PROCX

#N/D significa que uma busca não encontrou o valor que procurava. Confira erros de digitação, espaços a mais e um intervalo de tabela que se moveu quando a fórmula foi arrastada, e use a SENÃODISP para mostrar uma mensagem quando o valor falta de verdade.

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

#N/D significa "não disponível": uma busca como PROCV, PROCX ou CORRESP não encontrou o valor que procurava. Abaixo, =VLOOKUP(E2,A2:B6,2,FALSE) retorna #N/A porque Kiwi não está na lista. Mude E2 para Pear e ela retorna 1.5. Você também pode digitar as fórmulas em português na tabela, com ponto e vírgula: =PROCV(E2;A2:B6;2;FALSO).

Buscar um produto que não está lá
F2
ABCDEF
1ProductPriceLook forPrice
2Apple1.2Kiwi#N/A
3Pear1.5
4Plum0.8
5Bread2.4
6Milk1.1
#N/A O valor procurado não está no intervalo de pesquisa.No Excel em português: =PROCV(E2;A2:B6;2;FALSO)

Quando o valor falta de verdade, #N/D é a resposta certa, e a SENÃODISP (mais abaixo) transforma o erro em uma mensagem. Os casos que valem correção são aqueles em que o valor está lá e a busca falha mesmo assim. O Excel em português mostra esse erro como #N/D; a tabela mostra o nome em inglês, #N/A, e é o mesmo erro.

#N/D depois de arrastar uma busca para baixo

A causa mais comum em planilhas reais: a fórmula funciona na primeira linha, e algumas linhas abaixo mostram #N/D embora os produtos estejam na lista.

Intervalo da tabela sem $
F4
ABCDEF
1ProductPriceOrderPrice
2Apple1.2Apple1.2
3Pear1.5Plum0.8
4Plum0.8Pear#N/A
5Bread2.4Milk1.1
6Milk1.1Apple#N/A
#N/A O valor procurado não está no intervalo de pesquisa.No Excel em português: =PROCV(E4;A4:B8;2;FALSO)

Clique em F4: o intervalo da tabela dela é A4:B8, duas linhas abaixo do de F2. Arrastar a fórmula para baixo levou o intervalo junto, então Pear (linha 3) e Apple (linha 2) ficaram de fora. F3 e F5 só funcionam porque Plum e Milk ainda estão dentro dos intervalos delas. Clique em F2 e mude o intervalo para $A$2:$B$6: a coluna inteira acompanha e todos os preços aparecem. Os $ travam o intervalo, veja referências absolutas.

#N/D por causa de espaços a mais

"Pear " com um espaço no fim e "Pear" são valores diferentes para o Excel. Os espaços vêm de dados digitados à mão, copiados de páginas da web ou exportados de outros sistemas, e são invisíveis na célula.

Um espaço no fim na tabela
E2
ABCDEF
1ProductPriceLook forPriceLength of A2
2Pear 1.5Pear#N/A5
3Apple1.2
4Plum0.8
#N/A O valor procurado não está no intervalo de pesquisa.No Excel em português: =PROCV(D2;A2:B4;2;FALSO)

E2 retorna #N/A. F2 mostra a causa: Pear tem 4 letras, mas A2 tem 5 caracteres. Apague o espaço de A2 e a busca funciona. Três jeitos de resolver de vez:

  • Limpe a coluna: coloque =ARRUMAR(A2) em uma coluna auxiliar, arraste para baixo, depois copie e use Página Inicial > Colar > Valores por cima do original.
  • Arrume o valor procurado quando os espaços estão no que você digita: =PROCV(ARRUMAR(D2);A2:B4;2;FALSO).
  • Arrume a coluna de busca inteira dentro da fórmula (Excel 2021 ou Microsoft 365): =PROCX(D2;ARRUMAR(A2:A4);B2:B4).

Texto colado de páginas da web pode ter um espaço não separável, que a ARRUMAR não remove. A página da ARRUMAR mostra como trocar esse espaço com SUBSTITUIR(A2;CARACT(160);" ").

#N/D quando o valor não está na primeira coluna

O PROCV procura só na primeira coluna do intervalo e retorna uma coluna à direita dela. Buscar um valor de qualquer outra coluna retorna #N/D, mesmo com o valor na tabela.

Buscar pelo código
F2
ABCDEFG
1ProductCodePriceCodeVLOOKUPXLOOKUP
2AppleA-171.2P-22#N/APear
3PearP-221.5
4PlumP-310.8
5BreadB-052.4
6MilkM-401.1
#N/A O valor procurado não está no intervalo de pesquisa.No Excel em português: =PROCV(E2;A2:C6;1;FALSO)

Os códigos estão na coluna B, então o PROCV em A2:C6 procura P-22 entre os nomes dos produtos e falha. Ele também não consegue retornar o nome do produto, que fica antes do código. A PROCX recebe a coluna de busca e a coluna de retorno separadas e encontra Pear. No Excel 2019 e anteriores, =ÍNDICE(A2:A6;CORRESP(E2;B2:B6;0)) faz o mesmo.

#N/D por números armazenados como texto

Um número de pedido digitado como texto ('1001, ou importado de um CSV) nunca bate com o número 1001, e vice-versa. As duas células mostram 1001, então esse caso é difícil de ver. No Excel:

A2:B6 holds order numbers stored as text, E2 holds the number 1001
=VLOOKUP(E2,A2:B6,2,FALSE)          #N/A
=VLOOKUP(E2&"",A2:B6,2,FALSE)       found: E2&"" turns the number into text

A2:B6 holds real numbers, E2 holds "1001" as text
=VLOOKUP(E2,A2:B6,2,FALSE)          #N/A
=VLOOKUP(--E2,A2:B6,2,FALSE)        found: -- turns the text into a number

No Excel em português, as duas correções são =PROCV(E2&"";A2:B6;2;FALSO) e =PROCV(--E2;A2:B6;2;FALSO). =ÉTEXTO(A2) diz qual lado é texto, e um triangulozinho verde no canto de uma célula marca um número armazenado como texto. Para converter uma coluna inteira, veja texto em número.

SENÃODISP ou SEERRO: mostrar uma mensagem quando nada é encontrado

Quando um valor pode faltar de forma legítima, mostre algo mais útil que #N/D. Use a SENÃODISP (IFNA em inglês), não a SEERRO (IFERROR):

SENÃODISP ou SEERRO em volta de uma busca quebrada
F2
ABCDEFG
1ProductPriceLook forIFNAIFERROR
2Apple1.2Pear#REF!Not found
3Pear1.5
4Plum0.8
5Bread2.4
6Milk1.1
#REF! A fórmula aponta para uma célula que não existe.No Excel em português: =SENÃODISP(PROCV(E2;A2:B6;3;FALSO);"Not found")

As duas fórmulas pedem a coluna 3 de um intervalo de duas colunas, um erro. A SENÃODISP deixa o #REF! passar, então você vê o problema. A SEERRO esconde o problema e diz "Not found" para Pear, que está na lista. Mude os dois 3 para 2: agora cada uma mostra 1.5, e com E2 em Kiwi cada uma mostra "Not found". A PROCX tem a mensagem embutida: =PROCX(E2;A2:A6;B2:B6;"Not found"). Mais sobre a diferença em SEERRO.

Corrigir uma busca quebrada por espaços

Achar o preço apesar dos espaços
F2
ABCDEF
1ProductPriceLook forPrice
2Apple 1.2Plum
3Pear 1.5
4Plum 0.8
5Bread 2.4
6Milk 1.1
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.

Sua vez: Todos os produtos da lista foram importados com um espaço no fim, então =VLOOKUP(E2,A2:B6,2,FALSE) retorna #N/A. Escreva em F2 uma fórmula que ainda retorne o preço do produto de E2.

=PROCX(E2;ARRUMAR(A2:A6);B2:B6) arruma a lista dentro da fórmula. =PROCV(E2&" ";A2:B6;2;FALSO) também funciona aqui, mas só enquanto todo produto tiver exatamente um espaço no fim; limpar a coluna com a ARRUMAR é a correção que dura.

Perguntas frequentes

O que significa #N/D no Excel?

N/D quer dizer "não disponível". Significa que uma função de busca (PROCV, PROCH, PROCX, CORRESP, CORRESPX) não encontrou o valor que recebeu. =NÃO.DISP() também retorna o erro de propósito, por exemplo para um gráfico pular um ponto em vez de desenhar esse ponto como 0.

Por que o PROCV retorna #N/D se o valor existe?

Os dois valores não são exatamente iguais. Motivos comuns: um espaço no fim de um deles, um número armazenado como texto de um lado e como número do outro, ou um intervalo de tabela sem $ que desceu quando a fórmula foi arrastada, e a linha com o valor ficou de fora.

Por que o PROCV retorna #N/D em algumas linhas e em outras não?

O intervalo da tabela não foi travado antes de a fórmula ser arrastada para baixo, então em cada linha ele começa uma linha mais abaixo: A2:B6 na primeira linha vira A4:B8 duas linhas depois, e valores acima do intervalo deixam de ser encontrados. Trave com $: =PROCV(E2;$A$2:$B$6;2;FALSO).

Por que a PROCX retorna #N/D?

O valor não está na matriz de busca, ou difere dela por um espaço ou por ser texto em vez de número. A PROCX usa correspondência exata por padrão, então nada parecido é aceito. O quarto argumento dela substitui o erro: =PROCX(E2;A2:A6;B2:B6;"Not found").

Por que a CORRESP retorna #N/D?

Com tipo de correspondência 0, o valor não está no intervalo, exatamente como no PROCV. Com tipo 1 ou omitido, o intervalo precisa estar em ordem crescente e o valor não pode ser menor que o primeiro item; use =CORRESP(E2;A2:A6;0) para uma correspondência exata.

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

Aprenda a programar com o Coddy

COMEÇAR