FormulaCamp
Tutte le guide a Excel
Guide pratiche a Excel

Perché CERCA.VERT restituisce #N/D?

Risolvi gli errori #N/D di CERCA.VERT controllando corrispondenza esatta, chiavi mancanti, testo e numeri, spazi, intervalli e gestione degli errori.

Causa 1: la chiave differisce per un carattere nascosto

La causa più comune è una chiave che sembra giusta ma non lo è: uno spazio finale, uno spazio non separabile proveniente da un'esportazione web o un carattere non stampabile. Se E2 contiene "S-20 " con uno spazio alla fine, =VLOOKUP(E2,$A$2:$C$100,2,FALSE) non trova nulla anche se S-20 è nella tabella. Per confermarlo confronta =LEN(E2) con la lunghezza che ti aspetti.

Ripulisci la chiave dentro la ricerca: =VLOOKUP(TRIM(E2),$A$2:$C$100,2,FALSE). TRIM elimina gli spazi normali; per uno spazio non separabile aggiungi SUBSTITUTE(E2,CHAR(160)," ") e CLEAN per i caratteri non stampabili. Ripulire una sola volta la colonna di origine è meglio che inserire correzioni in ogni ricerca.

Causa 2: numeri e testo non coincidono

Il testo "123" e il numero 123 possono sembrare identici ma fallire una ricerca esatta. Fai la diagnosi con ISNUMBER e ISTEXT, poi converti il lato con il tipo di memorizzazione sbagliato: VALUE trasforma il testo numerico in numero, mentre unire &"" trasforma un numero in testo. Non convertire i codici che richiedono zeri iniziali. La colonna della tabella e il valore cercato devono avere lo stesso tipo.

Causa 3: corrispondenza approssimata e intervallo che scivola

Se il quarto argomento è TRUE oppure manca, VLOOKUP presume che la prima colonna sia ordinata in modo crescente e restituisce l'ultimo valore minore o uguale alla chiave. Su dati ordinati correttamente restituisce #N/D solo quando la chiave è più piccola del primo elemento; altrimenti può restituire in silenzio una riga sbagliata per una chiave che non esiste affatto nella tabella. Per identificativi, nomi e codici usa FALSE.

Un #N/D correlato dipende dall'intervallo. Senza simboli del dollaro, A2:C100 diventa A3:C101 alla riga successiva e scarta a poco a poco record validi. Inoltre VLOOKUP cerca soltanto nella prima colonna di table_array, quindi una chiave nella colonna B richiede un'altra partenza della tabella, XLOOKUP oppure INDEX con MATCH.

Non ogni errore è #N/D

Un indice di colonna maggiore della larghezza della tabella restituisce #RIF!, non #N/D: con una tabella di tre colonne l'indice 4 non funziona. Un indice inferiore a 1 restituisce #VALORE!. Distinguere questi errori fa risparmiare tempo, perché #N/D rimanda alla chiave o al tipo di corrispondenza, mentre #RIF! rimanda all'indice di colonna.

Una volta nota la causa, =IFNA(VLOOKUP(TRIM(E2),$A$2:$C$100,2,FALSE),"Not found") sostituisce soltanto #N/D, adatta a una chiave mancante prevista. IFERROR nasconde anche riferimenti non validi e indici sbagliati. =XLOOKUP(E2,A2:A100,B2:B100,"Not found") ha un argomento esplicito per «non trovato», ma le chiavi assenti o incoerenti vanno comunque corrette.

Tocca a te

E2 contiene uno SKU copiato da un'esportazione, con uno spazio finale di troppo, perciò una VLOOKUP semplice restituisce #N/A. In F2 restituisci l'articolo con una VLOOKUP esatta, usando TRIM sulla chiave.

Tabella di esempio: ricerca SKU
ABCDEF
1SKUItemPriceFind SKUItem
2S-10Notebook6S-20
3S-20Marker3
4S-30Folder5
5S-40Tape4
Non ancora risolto.

Esempio verificato

E2 contiene «S-20 » con uno spazio alla fine. La prima formula fallisce; le righe successive mostrano la correzione e tre errori affini.

ABCDE
1SKUItemPriceFind SKU
2S-10Notebook6S-20
3S-20Marker3
4S-30Folder5
5S-40Tape4
FormulaRisultato
=VLOOKUP(E2,A2:C5,2,FALSE)#N/A
=LEN(E2)-LEN(TRIM(E2))1
=VLOOKUP(TRIM(E2),A2:C5,2,FALSE)"Marker"
=IFNA(VLOOKUP(E2,A2:C5,2,FALSE),"Not found")"Not found"
=VLOOKUP("S-25",A2:C5,2,TRUE)"Marker"
=VLOOKUP("S-05",A2:C5,2,TRUE)#N/A
=VLOOKUP("S-20",A2:C5,4,FALSE)#REF!

Errori frequenti

  • Omettere FALSE in una ricerca esatta di identificativi.
  • Cercare in una colonna che non è la prima di table_array.
  • Avvolgere la formula in IFERROR prima di aver trovato la causa.

Domande frequenti

#N/D significa che la formula è rotta?

Non sempre. Spesso indica che la chiave esatta richiesta non esiste, e può essere una condizione legittima dei dati.

Perché 123 non corrisponde a 123?

Uno dei due può essere numerico e l'altro testo, oppure uno può contenere caratteri nascosti.

Devo usare IFERROR?

Per una corrispondenza mancante prevista preferisci IFNA. Usa IFERROR solo quando intercettare ogni errore è voluto.

CERCA.X risolverebbe #N/D?

Migliora la sintassi e l'etichetta degli errori, ma le chiavi assenti o incoerenti vanno comunque corrette.

Metti in pratica

Continua con una lezione verificata di FormulaCamp in inglese: The VLOOKUP Function (in inglese) Gratis

Apri la lezione gratuita (in inglese)