Corso
VLOOKUP() è una funzione di Google Sheets che cerca un valore in una colonna e restituisce il valore corrispondente da un'altra colonna nella stessa riga. Le dai qualcosa da trovare, le dici dove cercare e lei ti riporta i dati di cui hai bisogno.
È particolarmente utile quando lavori con set di dati di grandi dimensioni, dove cercare e abbinare i dati manualmente richiederebbe troppo tempo. Ma ogni volta che devi collegare due tabelle di dati usando un valore condiviso, VLOOKUP() è la funzione di riferimento.
In questa guida vedrai la sua sintassi, come usarla passo dopo passo, cosa può causare risultati errati e quando scegliere alternative come INDEX MATCH() o XLOOKUP().
Qual è la sintassi di VLOOKUP() in Google Sheets?
La sintassi di VLOOKUP() è:
=VLOOKUP(search_key, range, index, [is_sorted])
Qui:
-
search_keyè il valore che vuoi trovare -
rangeè la tabella in cui avviene la ricerca -
indexè il numero di colonna da cui restituire il risultato -
[is_sorted]definisce se vuoi una corrispondenza esatta o no
Come si fa un VLOOKUP() in Google Sheets?
Per fare un VLOOKUP() in Google Sheets:
-
Decidi quale valore vuoi cercare: può essere un ID, un nome o qualsiasi valore univoco.
-
Identifica l'intervallo della tua tabella: assicurati che la colonna contenente il valore di ricerca sia la prima colonna di quell'intervallo.
-
Scegli quali dati vuoi ottenere: è la colonna con il risultato (ad es. nome, prezzo, stato).
-
Inserisci la formula
VLOOKUP()in una nuova cella: fai riferimento al valore da cercare, all'intervallo della tabella e alla colonna da restituire. -
Usa corrispondenza esatta o approssimata (
FALSEoTRUE): nella maggior parte dei casi, per evitare risultati errati ti serve una corrispondenza esatta (ne parliamo tra poco).
Se hai questa tabella:
|
A (ID) |
B (Nome) |
|
101 |
George |
|
102 |
Sarah |
|
103 |
Lily |
E vuoi trovare il nome per l'ID 102, usa:
=VLOOKUP(102, A2:B4, 2, FALSE)
Questo dice a Google Sheets di:
- Cercare 102 nella colonna A
- Restituire il valore dalla colonna B
- Dare una corrispondenza esatta
Di conseguenza, otterrai Sarah.

Esempio di VLOOKUP(). Immagine dell'autore.
Come funziona VLOOKUP() (logica passo per passo)
VLOOKUP() segue un semplice processo di ricerca verticale. Parte sempre dalla prima colonna dell'intervallo selezionato, poi scorre verso il basso, una riga alla volta, finché non trova la prima corrispondenza.
Una volta trovata, resta sulla stessa riga. Poi si sposta sulla colonna che hai specificato e restituisce quel valore.
Ecco come funziona passo per passo:
- Parte dalla prima colonna dell'intervallo
- Cerca verso il basso nella colonna
- Trova il primo valore corrispondente
- Si sposta lungo la stessa riga
- Restituisce i dati dalla colonna specificata
Diciamo che vuoi trovare il job title per l'ID dipendente E1007. Per questo, usa la seguente formula:
=VLOOKUP("E1007", A:G, 5, FALSE)

VLOOKUP() in Google Sheets. Immagine dell'autore.
Questa formula:
-
Trova
E1007nella colonna A -
Si sposta lungo la stessa riga
-
Restituisce la colonna 5 (Job Title)
-
Fornisce come risultato Software Engineer.
Nota: VLOOKUP() può cercare solo da sinistra verso destra. Se la tua colonna di ricerca non è la prima colonna dell'intervallo, la funzione non funzionerà. In tal caso, devi riordinare i dati o usare un'altra funzione. Ci arriviamo tra poco.
Corrispondenza esatta vs approssimata in VLOOKUP()
La corrispondenza esatta restituisce un risultato solo quando il valore è identico. La corrispondenza approssimata restituisce il valore più vicino disponibile quando non si trova una corrispondenza esatta, di solito basandosi su dati ordinati.
In VLOOKUP() questo è controllato dall'ultimo argomento. L'ultimo argomento, FALSE o TRUE, è quello che molti sbagliano perché TRUE sembra innocuo e non lo è.
- FALSE significa solo corrispondenza esatta. Se il valore non c'è, ottieni #N/A, che in realtà è utile.
- TRUE restituisce il valore immediatamente inferiore più vicino quando non esiste una corrispondenza esatta, il che sembra un ripiego ma è più correttamente descritto come una risposta sbagliata silenziosa. Inoltre, presuppone che i dati siano ordinati. Se non lo sono, il risultato è indefinito.
Direi di usare TRUE solo per ricerche a scaglioni, come scaglioni fiscali o fasce di voto, dove l'approssimazione è il comportamento corretto per progettazione. Per tutto il resto, usa FALSE.
Corrispondenza esatta (FALSE)
Questo dice a VLOOKUP(): “Restituisci un risultato solo se trovi esattamente questo valore”. Per esempio, questa formula =VLOOKUP("E1005", A:G, 7, FALSE) cerca E1005, restituisce lo stipendio dalla colonna 7 e dà come risultato 90000.
Se il valore non esiste, ottieni un errore #N/A.

Corrispondenza esatta in VLOOKUP(). Immagine dell'autore.
Corrispondenza approssimata (TRUE)
Questo dice a VLOOKUP(): “Se non trovi una corrispondenza esatta, restituisci il valore più vicino inferiore”. Può sembrare utile — a volte lo è, ma a volte ti dà silenziosamente la risposta sbagliata.
Per esempio, E1011 non esiste nel nostro dataset. L'ultimo ID dipendente è E1010. Quindi, se usi questa formula =VLOOKUP("E1011", A:G, 7, TRUE), VLOOKUP() non restituirà un errore. Invece, restituirà il valore della corrispondenza inferiore più vicina, cioè E1010. La cella mostrerà 88000.
Quindi, anche se E1011 manca, VLOOKUP() ti dà comunque un risultato perché TRUE consente una corrispondenza approssimata.

Corrispondenza approssimata in VLOOKUP(). Immagine dell'autore.
Ora immagina che gli stessi dati siano fuori ordine, e inserisco l'ID dipendente disponibile nella formula, così: =VLOOKUP("E1011", A:G, 7, TRUE).
Questa volta, la formula restituisce uno stipendio errato perché la colonna di ricerca non è ordinata e la corrispondenza approssimata dipende da dati ordinati.

La corrispondenza approssimata di VLOOKUP() genera un errore a causa di un elenco non ordinato. Immagine dell'autore.
Errori comuni in VLOOKUP() e come risolverli
Vediamo alcuni dei problemi più comuni che potresti incontrare con VLOOKUP() e come risolverli:
Errore #N/A
Un errore #N/A significa che VLOOKUP() non ha trovato il valore richiesto.
Supponiamo tu abbia questa formula: =VLOOKUP("E9999", A:G, 7, FALSE)
Se E9999 non è nella prima colonna dell'intervallo, la formula restituisce #N/A.
Può succedere anche se il valore è digitato in modo diverso nel foglio, ad esempio con spazi extra o problemi di formattazione del testo.
Per risolvere:
-
Assicurati che il valore esista nella prima colonna dell'intervallo
-
Quando possibile, usa il riferimento di cella corretto invece di digitare il valore manualmente
-
Aggiungi le virgolette se inserisci manualmente un valore di testo
-
Rimuovi spazi iniziali o finali dai dati
-
Usa
FALSEsolo quando ti serve una corrispondenza esatta
Indice di colonna sbagliato
L'indice di colonna dice a VLOOKUP() da quale colonna restituire il valore all'interno dell'intervallo selezionato. Se il numero di indice è troppo grande, la formula restituisce #REF!.
Questa =VLOOKUP("E1005", A:G, 8, FALSE) restituisce #REF! perché l'intervallo A:G ha solo 7 colonne.

L'indice di colonna errato genera un errore. Immagine dell'autore.
Puoi anche ottenere il risultato sbagliato se il numero di colonna è valido ma punta alla colonna sbagliata.
Per esempio:
=VLOOKUP("E1005", A:G, 5, FALSE)
Questo restituisce il job title, non lo stipendio.
Per risolvere:
- Conta le colonne a partire dalla prima colonna dell'intervallo selezionato
- Verifica che il numero di colonna corrisponda al valore che vuoi restituire
- Assicurati che la colonna esista nell'intervallo
Problemi con la corrispondenza approssimata
Se usi TRUE, VLOOKUP() cerca la corrispondenza inferiore più vicina invece di richiedere una corrispondenza esatta.
Se digiti =VLOOKUP("E1011", A:G, 7, TRUE) e non c'è E1011 nel dataset, invece di restituire un errore, la formula restituisce 88000, che appartiene a E1010.
Quel risultato può sembrare corretto, ma non è una corrispondenza esatta.
Per risolvere:
-
Usa
FALSEquando ti serve un risultato esatto -
Usa
TRUEsolo quando i dati sono ordinati e un risultato approssimato è accettabile
Problemi di intervallo
VLOOKUP() può anche smettere di funzionare quando l'intervallo selezionato non corrisponde a ciò che la formula sta cercando di fare.
Per esempio, =VLOOKUP("E1005", A:C, 7, FALSE) restituisce #REF! perché l'intervallo A:C ha solo 3 colonne, ma la formula chiede la colonna 7.
Un altro problema comune si verifica quando la colonna di ricerca non è la prima colonna dell'intervallo.
Guarda questa formula:
=VLOOKUP("E1005", B:G, 7, FALSE)
Qui, la prima colonna dell'intervallo è la colonna B, non la colonna A. Poiché VLOOKUP() cerca solo nella prima colonna dell'intervallo selezionato, non può trovare E1005.
Per risolvere:
- Assicurati che la colonna di ricerca sia la prima colonna dell'intervallo
- Assicurati che l'intervallo includa la colonna da restituire
- Ricontrolla l'intervallo selezionato prima di finalizzare la formula

Intervallo sbagliato genera un errore. Immagine dell'autore.
VLOOKUP() tra fogli in Google Sheets
Puoi usare VLOOKUP() per prelevare dati da un altro foglio aggiungendo il nome del foglio prima dell'intervallo.
Il formato è questo:
=VLOOKUP(search_key, SheetName!range, index, FALSE)
La parte SheetName! dice alla formula in quale foglio cercare.
Supponiamo che i tuoi dati siano archiviati in un foglio chiamato Employees e che tu stia lavorando in un altro foglio. Per trovare il reparto per l'ID dipendente E1005, usa:
=VLOOKUP("E1005", Employees!A:G, 4, FALSE)
Qui:
-
Employees!A:Gcerca nel foglio Employees -
4restituisce la colonna Department
La formula restituisce il reparto per E1005.

Riferimento a un altro foglio in VLOOKUP(). Immagine dell'autore.
Quando i nomi dei fogli hanno spazi
Se il nome del foglio contiene spazi, racchiudilo tra apici singoli così:
=VLOOKUP("E1005", 'Employee Data'!A:G, 7, FALSE)
Senza le virgolette, la formula non funzionerà.
VLOOKUP() vs. INDEX MATCH in Google Sheets
VLOOKUP() cerca in una colonna fissa e restituisce i dati in base alla posizione, mentre INDEX MATCH trova i valori usando direttamente i riferimenti di riga e colonna, quindi funziona anche se la struttura della tabella cambia.
VLOOKUP: veloce da scrivere, facile da rompere
Hai già visto che =VLOOKUP("E1005", A:G, 7, FALSE) trova lo stipendio per E1005.
Funziona bene quando:
- La colonna di ricerca è a sinistra
- La struttura della tabella non cambia
I problemi iniziano quando la struttura cambia.
Per esempio:
- Inserisci una nuova colonna
- La colonna dello stipendio si sposta da 7 a 8
- La formula usa ancora 7
Ora restituisce il valore sbagliato senza mostrare un errore.
INDEX MATCH: più lunga, ma stabile
Ora guarda la stessa ricerca usando INDEX MATCH:
=INDEX(G:G, MATCH("E1005", A:A, 0))
Qui:
-
MATCH()trova la posizione diE1005nella colonna A -
INDEX()restituisce il valore dalla colonna G in quella posizione
Questo metodo non dipende dai numeri di colonna, quindi continua a funzionare anche se la tabella cambia.

INDEX MATCH gestisce i dati meglio di VLOOKUP(). Immagine dell'autore.
Dove aiuta davvero
Usa INDEX MATCH quando i dati non sono disposti da sinistra a destra. Supponi che Colonna A contenga ID dipendente e la Colonna C contenga il Cognome. Se vuoi cercare per Cognome e restituire l'ID dipendente, questa sarebbe una ricerca da destra a sinistra.
VLOOKUP() non può farlo senza cambiare la tabella, ma INDEX MATCH lo gestisce direttamente:
=INDEX(A:A, MATCH("Wilson", C:C, 0))
Non serve riordinare i dati.
VLOOKUP() vs XLOOKUP in Google Sheets
VLOOKUP() cerca all'interno di una struttura fissa e ha dei limiti, mentre XLOOKUP() consente ricerche in qualsiasi direzione. È stata aggiunta a Google Sheets nel 2022 ed è ora l'opzione migliore in molti casi.
Diciamo che vuoi trovare l'ID dipendente usando il Cognome Wilson. Questa è una ricerca da destra a sinistra. VLOOKUP() non può gestirla senza riordinare la tabella, ma XLOOKUP() sì:
=XLOOKUP("Wilson", C:C, A:A)
Questa formula:
- Cerca Cognome (colonna C)
- Restituisce ID dipendente (colonna A)

XLOOKUP() in Google Sheets. Immagine dell'autore.
XLOOKUP() è migliore perché:
- Funziona in qualsiasi direzione (sinistra o destra)
- Non usa numeri di colonna
- Restituisce per impostazione predefinita corrispondenze esatte
- Consente un output personalizzato quando non trova corrispondenze
Considerazioni finali
Se dovessi dare un solo consiglio: usa VLOOKUP() in un foglio di calcolo reale a cui tieni davvero, invece che in un foglio di prova. Gli errori si sentono diversamente quando i dati sono importanti. Ti ricorderai perché esiste FALSE la prima volta che TRUE ti restituisce silenziosamente lo stipendio sbagliato di qualcuno.
Quando ti senti a tuo agio, prova tipi di corrispondenza diversi, regola gli intervalli e nota quando i risultati smettono di avere senso. Di solito è il momento in cui un'opzione più flessibile come INDEX MATCH() o XLOOKUP() ha più senso.
Sono una content strategist: mi piace semplificare argomenti complessi. Ho aiutato aziende come Splunk, Hackernoon e Tiiny Host a creare contenuti coinvolgenti e informativi per il loro pubblico.
FAQs
Posso usare `VLOOKUP()` con caratteri jolly?
Sì. Puoi usare * (qualsiasi numero di caratteri) e ? (singolo carattere) nella chiave di ricerca quando usi la corrispondenza esatta.
Per esempio, =VLOOKUP("E10*", A:G, 2, FALSE)
`VLOOKUP()` può gestire ricerche con distinzione tra maiuscole e minuscole in Google Sheets?
No. VLOOKUP() non fa distinzione tra maiuscole e minuscole. Considera “apple” e “Apple” come lo stesso valore. Per effettuare ricerche sensitive al maiuscolo/minuscolo, devi usare funzioni come FILTER() o EXACT().
Perché `VLOOKUP()` a volte restituisce risultati vuoti?
Succede quando la cella corrispondente è vuota, perché indica che la formula ha funzionato correttamente ma non c'è alcun dato da mostrare.
`VLOOKUP()` può fare riferimento a intervalli con nome?
Sì. Invece di usare A:G, puoi dare un nome al tuo intervallo (ad es., EmployeeData) e usarlo nella formula.
Ecco un esempio di come fare:
=VLOOKUP("E1005", EmployeeData, 7, FALSE)


