VLOOKUP di Excel non funziona - correzione degli errori #N/A e #VALUE

  • Condividi Questo
Michael Brown

Il vostro VLOOKUP sta estraendo dati sbagliati o non riesce a funzionare affatto? Questa esercitazione mostra come potete risolvere rapidamente gli errori più comuni di VLOOKUP e superare le sue principali limitazioni.

In alcuni articoli precedenti abbiamo esplorato diversi aspetti della funzione VLOOKUP di Excel. Se ci avete seguito da vicino, ormai dovreste essere esperti in questo campo :)

Tuttavia, non a caso molti specialisti di Excel considerano VLOOKUP una delle funzioni di Excel più complicate: ha un sacco di limitazioni, che sono all'origine di vari problemi ed errori.

In questo articolo troverete spiegazioni semplici sulle cause principali degli errori VLOOKUP come #N/A, #NAME e #VALUE, nonché le relative soluzioni. Inizieremo con le ragioni più ovvie per cui VLOOKUP non funziona, quindi potrebbe essere una buona idea controllare i seguenti passaggi di risoluzione dei problemi in ordine.

    Correzione dell'errore #N/A in VLOOKUP

    Nelle formule VLOOKUP, il messaggio di errore #N/A (che significa "non disponibile") viene visualizzato quando Excel non riesce a trovare un valore di ricerca. I motivi possono essere diversi.

    1. Il valore di ricerca è scritto in modo errato

    È sempre una buona idea controllare prima la cosa più ovvia : ) Gli errori di stampa si verificano spesso quando si lavora con insiemi di dati molto grandi, composti da migliaia di righe, o quando un valore di ricerca viene digitato direttamente nella formula.

    2. #N/A in corrispondenza approssimativa VLOOKUP

    Se la formula cerca la corrispondenza più vicina, ( ricerca_intervallo impostato su TRUE o omesso), l'errore #N/A può comparire in due casi:

    • Il valore di ricerca è più piccolo del valore più piccolo dell'array di ricerca.
    • La colonna di ricerca non è ordinata in modo crescente.

    3. #N/A in VLOOKUP a corrispondenza esatta

    Se si cerca una corrispondenza esatta ( ricerca_intervallo impostato su FALSE), l'errore #N/A si verifica quando non viene trovato un valore esattamente uguale al valore di ricerca. Per ulteriori informazioni, vedere VLOOKUP exact match vs. approximate match.

    4. La colonna di ricerca non è la colonna più a sinistra dell'array di tabelle.

    Una delle limitazioni più significative di Excel VLOOKUP è che non può guardare alla sua sinistra. Di conseguenza, una colonna di ricerca dovrebbe sempre essere la colonna colonna più a sinistra nell'array di tabelle. In pratica, spesso ci si dimentica di questo e si finisce per avere errori #N/A.

    Soluzione Se non è possibile ristrutturare i dati in modo che la colonna di ricerca sia quella più a sinistra, è possibile utilizzare le funzioni INDEX e MATCH insieme come alternativa a VLOOKUP. Ecco un esempio di formula: formula INDEX MATCH per cercare i valori a sinistra.

    5. I numeri sono formattati come testo

    Un'altra fonte comune di errori #N/A nelle formule VLOOKUP sono i numeri formattati come testo, sia nella tabella principale che in quella di ricerca.

    Questo accade di solito quando si importano dati da un database esterno o se si è digitato un apostrofo prima di un numero per mostrare gli zeri iniziali.

    Ecco gli indicatori più evidenti dei numeri formattati come testo:

    Soluzione: Selezionare tutti i numeri problematici, fare clic sull'icona dell'errore e scegliere Convertire in numero Per ulteriori informazioni, vedere Come convertire il testo in numero in Excel.

    6. Spazi a capo o a coda

    Questa è la causa meno ovvia dell'errore VLOOKUP #N/A perché l'occhio umano difficilmente riesce a individuare gli spazi extra, soprattutto quando si lavora con grandi insiemi di dati in cui la maggior parte delle voci si trova al di sotto dello scorrimento.

    Soluzione 1: Spazi extra nel valore di ricerca

    Per garantire il corretto funzionamento della formula VLOOKUP, avvolgere il valore di ricerca nella funzione TRIM:

    =VLOOKUP(TRIM(E1), A2:C10, 2, FALSE)

    Soluzione 2: Spazi extra nella colonna di ricerca

    Se nella colonna di ricerca sono presenti spazi extra, non esiste un modo semplice per evitare errori #N/A in VLOOKUP. È invece possibile utilizzare una combinazione di funzioni INDEX, MATCH e TRIM come formula di array:

    =INDICE(B2:B10, MATCH(TRUE, TRIM(A$2:A$10)=TRIM(E1), 0))

    Poiché si tratta di una formula di matrice, non dimenticate di premere Ctrl + Maiusc + Invio per completarla correttamente (in Excel 365 ed Excel 2021, dove le matrici sono native, questa formula funziona anche come formula normale).

    Un'alternativa rapida è l'utilizzo dello strumento Ritaglia spazi, che elimina in pochi secondi gli spazi in eccesso sia nella tabella di ricerca che in quella principale, rendendo le formule VLOOKUP prive di errori.

    Errore #VALORE! nelle formule VLOOKUP

    In generale, Microsoft Excel visualizza l'errore #VALORE! se un valore utilizzato nella formula è di tipo errato. Per quanto riguarda VLOOKUP, esistono due fonti comuni dell'errore VALORE!

    1. Il valore di ricerca supera i 255 caratteri

    Si noti che VLOOKUP non può cercare valori contenenti più di 255 caratteri. Se i valori di ricerca superano questo limite, viene visualizzato un errore #VALORE!

    Soluzione Utilizzare invece una formula INDEX MATCH. Nel nostro caso, questa formula funziona perfettamente:

    =INDICE(B2:B7, MATCH(TRUE, INDEX(A2:A7= E1, 0), 0))

    2. Non viene fornito il percorso completo della cartella di lavoro di ricerca.

    Se si prelevano i dati da un'altra cartella di lavoro, è necessario includere il percorso completo di quest'ultima. Più precisamente, è necessario racchiudere il nome della cartella di lavoro, compresa l'estensione, tra [parentesi quadre] e specificare il nome del foglio seguito dal punto esclamativo. Se il nome della cartella di lavoro o del foglio, o entrambi, contengono spazi o caratteri non alfabetici, il percorso deve essere racchiuso tra virgolette singole.

    Ecco la struttura del file tabella_array argomento di Vlookup da un'altra cartella di lavoro:

    '[nome cartella di lavoro]nome foglio'!intervallo

    Una formula reale potrebbe essere simile a questa:

    =VLOOKUP($A$2,'[Nuovi prezzi.xls]Foglio1'!$B:$D, 3, FALSE)

    La formula di cui sopra cercherà il valore di A2 nella colonna B del Foglio1 nel file Nuovi prezzi e restituire un valore corrispondente dalla colonna D.

    Se manca un elemento del percorso, la formula VLOOKUP non funzionerà e restituirà l'errore #VALORE (a meno che la cartella di lavoro di ricerca non sia attualmente aperta).

    Per ulteriori informazioni, consultare il sito:

    • Come fare riferimento a un altro foglio o cartella di lavoro in Excel
    • Come eseguire Vlookup da un'altra cartella di lavoro

    3. L'argomento col_index_num è inferiore a 1

    È difficile immaginare una situazione in cui qualcuno inserisca intenzionalmente un numero inferiore a 1 per specificare la colonna da cui restituire i valori, ma può succedere se questo argomento viene restituito da qualche altra funzione annidata nella formula VLOOKUP.

    Quindi, se il col_index_num è superiore a 1, anche la formula restituirà l'errore #VALORE!

    Se col_index_num è maggiore del numero di colonne dell'array di tabelle, VLOOKUP produce l'errore #REF!

    Risoluzione dell'errore VLOOKUP #NAME

    Questo è il caso più semplice: l'errore #NAME? appare se si è accidentalmente sbagliato il nome della funzione.

    La soluzione è ovvia: controllare l'ortografia :)

    Le principali cause di errore in Excel VLOOKUP

    Oltre ad avere una sintassi piuttosto complicata, VLOOKUP ha probabilmente più limitazioni di qualsiasi altra funzione di Excel. A causa di queste limitazioni, una formula apparentemente corretta può spesso dare risultati diversi da quelli attesi. Di seguito troverete le soluzioni per alcuni scenari tipici in cui VLOOKUP fallisce.

    Il VLOOKUP non fa distinzione tra maiuscole e minuscole.

    La funzione VLOOKUP non distingue le lettere e considera i caratteri minuscoli e maiuscoli come identici.

    Soluzione Utilizzate VLOOKUP, XLOOKUP o INDEX MATCH in combinazione con la funzione EXACT, che è in grado di controllare le maiuscole e le minuscole del testo. Potete trovare spiegazioni dettagliate ed esempi di formule in questo tutorial: 5 modi per eseguire un Vlookup sensibile alle maiuscole e alle minuscole in Excel.

    Una nuova colonna è stata inserita o rimossa dalla tabella

    Purtroppo, le formule VLOOKUP smettono di funzionare ogni volta che una nuova colonna viene eliminata o aggiunta alla tabella di ricerca. Questo accade perché la sintassi della funzione VLOOKUP richiede la definizione del numero di indice della colonna di ritorno. Quando una nuova colonna viene aggiunta o rimossa dall'array della tabella, ovviamente il numero di indice cambia.

    Soluzione Con INDEX MATCH si specificano separatamente gli intervalli di ricerca e di ritorno, in modo da poter eliminare o inserire tutte le colonne desiderate senza preoccuparsi di aggiornare tutte le formule associate.

    I riferimenti di cella cambiano quando si copia la formula in altre celle

    L'intestazione fornisce una spiegazione esaustiva del problema, giusto?

    Soluzione Utilizzate sempre riferimenti assoluti (con il segno $) per i file tabella_array ad esempio $A$2:$C$100 o $A:$C. È possibile passare rapidamente da un tipo di riferimento all'altro premendo il tasto F4.

    VLOOKUP restituisce il primo valore trovato

    Come già si sa, Excel VLOOKUP restituisce il primo valore trovato, ma è possibile forzarlo a riportare il secondo, il terzo, il quarto o qualsiasi altra occorrenza desiderata. Esiste anche un modo per ottenere l'ultima corrispondenza o tutte le corrispondenze trovate.

    Soluzioni Esempi di formule sono disponibili qui:

    • VLOOKUP e restituire l'ennesima occorrenza
    • VLOOKUP valori multipli
    • Formula XLOOKUP per ottenere l'ultima corrispondenza

    Perché il mio VLOOKUP funziona per alcune celle ma non per altre?

    Quando la formula VLOOKUP restituisce i dati corretti in alcune celle e gli errori #N/A in altre, i motivi possono essere diversi.

    1. L'array di tabelle non è bloccato

    Supponiamo di avere questa formula nella riga 2 (ad esempio in E2), che funziona bene:

    =VLOOKUP(D2, A2:B10, 2, FALSE)

    Quando viene copiata nella riga 3, la formula diventa:

    =VLOOKUP(D3, A3:B11, 2, FALSE)

    Poiché si utilizza un riferimento relativo per tabella_array cambia in base alla posizione relativa della riga in cui viene copiata la formula, nel nostro caso da A2:B10 a A3:B11. Quindi, se la corrispondenza si trova nella riga 2, non verrà trovata!

    Soluzione Quando si utilizza una formula VLOOKUP per più di una cella, bisogna sempre bloccare l'array di tabelle riferimento con il segno $, come $A$2:$B$10.

    2. I valori del testo o i tipi di dati non coincidono.

    Un altro motivo comune di fallimento di VLOOKUP è la differenza tra il valore di ricerca e un valore simile nella colonna di ricerca. In alcuni casi, la differenza è così sottile che è difficile da individuare visivamente.

    Soluzione Quando VLOOKUP restituisce un errore #N/A mentre è possibile vedere chiaramente il valore di ricerca nella colonna di ricerca e apparentemente entrambi sono scritti esattamente allo stesso modo, la prima cosa da fare è determinare la causa del problema: la formula o i dati di origine.

    Per vedere se i due valori sono uguali o diversi, fate un confronto diretto in questo modo:

    =E1=A4

    Dove E1 è il valore di ricerca e A4 è un valore identico nella colonna di ricerca.

    Se la formula restituisce FALSO, significa che i valori differiscono in qualche modo, anche se sembrano assolutamente uguali.

    In caso di valori numerici La ragione più probabile sono i numeri formattati come testo.

    In caso di valori del testo Per verificarlo, trovate la lunghezza totale delle due stringhe utilizzando la funzione LEN:

    =LEN(E1)

    =LEN(A4)

    Se i numeri risultanti sono diversi (come nella schermata seguente), il colpevole è stato individuato: gli spazi extra:

    Per risolvere il problema, rimuovere gli spazi extra o utilizzare la formula INDEX MATCH TRIM come soluzione alternativa.

    Perché il mio VLOOKUP estrae dati sbagliati?

    I motivi per cui il VLOOKUP restituisce un valore sbagliato potrebbero essere ancora più numerosi:

    1. Modalità di ricerca errata Se si desidera una corrispondenza esatta, assicurarsi di impostare il parametro ricerca_intervallo L'impostazione predefinita è TRUE; se si omette questo argomento, VLOOKUP presuppone che si stia cercando una corrispondenza approssimativa e cerca il valore più vicino che sia più piccolo del valore di ricerca.
    2. La colonna di ricerca non è ordinata Per una corrispondenza approssimativa VLOOKUP ( ricerca_intervallo impostato su TRUE) per funzionare correttamente, la prima colonna dell'array di tabelle deve essere ordinata in ordine crescente, dalla più piccola alla più grande.
    3. Duplicati nella colonna di ricerca Se la colonna di ricerca contiene due o più valori duplicati, VLOOKUP restituirà la prima corrispondenza trovata, che potrebbe non essere quella prevista.
    4. Colonna di ritorno non corretta Ricontrollare il numero di indice nel terzo argomento :)

    VLOOKUP non funziona tra due fogli

    Innanzitutto, va notato che i motivi comuni degli errori #N/A, #VALUE e #REF discussi sopra possono causare gli stessi problemi quando si consulta un altro foglio. Se non è questo il caso, controllate i seguenti punti:

    1. Assicuratevi che il riferimento esterno a un altro foglio o a un'altra cartella di lavoro sia corretto.
    2. Quando si esegue una Vlookup da un'altra cartella di lavoro che è chiuso al momento, verificare che la formula contenga il percorso completo della cartella di lavoro chiusa.
    3. Se VLOOKUP non è possibile selezionare una matrice di tabelle in un altro foglio di lavoro (ad esempio, quando si evidenzia un intervallo nel foglio di ricerca, non appare nulla nella finestra di dialogo tabella_array nella formula o nella casella corrispondente della procedura guidata della formula), molto probabilmente i due fogli sono aperti in istanze separate di Excel e non possono comunicare tra loro. Per ulteriori informazioni, consultate Come determinare quali file di Excel si trovano in quale istanza. Per risolvere il problema, è sufficiente chiudere tutte le finestre di Excel e riaprire i fogli/libri nella stessa istanza (comportamento predefinito).

    Come fare Vlookup senza errori in Excel

    Se non si vuole intimidire gli utenti con le notazioni di errore standard di Excel, è possibile visualizzare un testo di facile comprensione o restituire una cella vuota se non viene trovato nulla. Questo può essere fatto utilizzando VLOOKUP con la funzione IFERROR o IFNA.

    Cattura tutti gli errori

    In Excel 2007 e versioni successive, è possibile utilizzare la funzione IFERROR per verificare la presenza di errori in una formula VLOOKUP e restituire il proprio testo (o una stringa vuota) se qualsiasi errore viene rilevato.

    Ad esempio:

    =IFERROR(VLOOKUP(E1, A2:B10, 2, FALSE), "Oops, qualcosa è andato storto")

    In Excel 2003 e precedenti, è possibile utilizzare la formula IF ISERROR per lo stesso scopo:

    =IF(ISERROR(VLOOKUP(E1, A2:B10, 2, FALSE)), "Oops, qualcosa è andato storto", VLOOKUP(E1, A2:B10, 2, FALSE))

    Per maggiori dettagli, vedere Utilizzo di IFERROR con VLOOKUP in Excel.

    Gestire gli errori #N/A

    Per intrappolare solo gli errori #N/A ignorando tutti gli altri tipi di errore, utilizzare la funzione IFNA (in Excel 2013 e versioni successive) o la formula IF ISNA (in tutte le versioni).

    Ad esempio:

    =IFNA(VLOOKUP(E1, A2:B10, 2, FALSE), "Ops, non è stata trovata alcuna corrispondenza. Riprovare!")

    =IF(ISNA(VLOOKUP(E1, A2:B10, 2, FALSE)), "Ops, non è stata trovata alcuna corrispondenza. Riprovare!", VLOOKUP(E1, A2:B10, 2, FALSE))

    Questo è tutto per oggi. Speriamo che questa esercitazione vi aiuti a eliminare gli errori di VLOOKUP e a far funzionare le vostre formule nel modo desiderato.

    Come fare VLOOKUP in Excel - video tutorial

    Michael Brown è un appassionato di tecnologia dedicato con una passione per la semplificazione di processi complessi utilizzando strumenti software. Con oltre un decennio di esperienza nel settore tecnologico, ha affinato le sue competenze in Microsoft Excel e Outlook, nonché in Fogli Google e Documenti. Il blog di Michael è dedicato alla condivisione delle sue conoscenze e competenze con gli altri, fornendo suggerimenti e tutorial facili da seguire per migliorare la produttività e l'efficienza. Che tu sia un professionista esperto o un principiante, il blog di Michael offre spunti preziosi e consigli pratici per ottenere il massimo da questi strumenti software essenziali.