
Se hai sempre usato VLOOKUP per ogni operazione di ricerca in Excel, non sei il solo — è una delle funzioni più conosciute nel mondo dei fogli di calcolo. Ma gli utenti Excel più esperti passano quasi universalmente a INDEX MATCH, una combinazione di due funzioni più flessibile, più affidabile e in grado di risolvere problemi che VLOOKUP semplicemente non può affrontare. Questo articolo spiega esattamente perché, con la sintassi reale, esempi pratici e una guida operativa che puoi seguire immediatamente.
Prima di combinarle, è utile capire ciascuna funzione singolarmente.
INDEX restituisce il valore di una cella in una posizione specificata all'interno di un intervallo o di una matrice.
=INDEX(array, row_num, [col_num])
Ad esempio, =INDEX(A1:A10, 3) restituisce il valore presente nella terza riga della colonna A, dalla riga 1 alla riga 10.
MATCH cerca un valore all'interno di un intervallo e restituisce il suo numero di posizione — non il valore stesso, ma il numero che indica dove si trova.
=MATCH(lookup_value, lookup_array, [match_type])
0 per una corrispondenza esatta (la più comune), 1 per minore di, -1 per maggiore diAd esempio, se A1:A5 contiene {Mela, Banana, Ciliegia, Dattero, Fico}, allora =MATCH("Ciliegia", A1:A5, 0) restituisce 3 perché Ciliegia è il terzo elemento.
La vera potenza emerge quando si annida MATCH all'interno di INDEX. Invece di specificare manualmente un numero di riga, si lascia che MATCH lo calcoli dinamicamente:
=INDEX(return_range, MATCH(lookup_value, lookup_range, 0))
Questo dice a Excel: "Trova la posizione del mio valore di ricerca nell'intervallo di ricerca, quindi restituisci il valore corrispondente dall'intervallo di restituzione." I due intervalli devono avere la stessa dimensione ed essere allineati nella stessa direzione.
Immagina una tabella di inventario prodotti con la seguente struttura:
| ID Prodotto | Nome Prodotto | Categoria | Prezzo Unitario | Giacenza |
|---|---|---|---|---|
| P-101 | Mouse Wireless | Elettronica | €29,99 | 142 |
| P-102 | Hub USB-C | Elettronica | €49,99 | 87 |
| P-103 | Lampada da Scrivania | Ufficio | €34,99 | 55 |
| P-104 | Taccuino A5 | Cancelleria | €8,99 | 310 |
| P-105 | Sedia Ergonomica | Arredamento | €299,00 | 12 |
I dati si trovano in A2:E6, con le intestazioni nella riga 1. Vuoi cercare il Prezzo Unitario di un prodotto il cui ID è inserito nella cella H2.
Con INDEX MATCH, la formula in H3 sarebbe:
=INDEX($D$2:$D$6, MATCH(H2, $A$2:$A$6, 0))
Passo dopo passo:
Nota l'utilizzo dei riferimenti assoluti di cella con il simbolo del dollaro. Il blocco degli intervalli garantisce che la formula funzioni correttamente se viene copiata in altre celle.
Se conosci già VLOOKUP dalla nostra guida completa a VLOOKUP, ne conosci i punti di forza. Ma presenta limitazioni ben note che INDEX MATCH risolve in modo efficace.
VLOOKUP cerca solo nella colonna più a sinistra di una tabella e restituisce un valore a destra. Se la colonna di ricerca si trova a destra della colonna di restituzione, VLOOKUP non funziona. INDEX MATCH non ha questa limitazione — l'intervallo di restituzione e l'intervallo di ricerca sono completamente indipendenti, quindi è possibile restituire valori da qualsiasi colonna, incluse quelle a sinistra della colonna di ricerca.
VLOOKUP utilizza un numero di indice di colonna specificato manualmente (ad esempio, la terza colonna). Se si inserisce o si elimina una colonna, quel numero diventa errato e restituisce dati sbagliati senza alcun avviso. Poiché INDEX MATCH fa riferimento a intervalli reali, l'inserimento di colonne non rompe mai la formula.
VLOOKUP analizza l'intera matrice della tabella a ogni calcolo. INDEX MATCH valuta solo la colonna di ricerca specifica e la colonna di restituzione specifica, risultando misurabilmente più veloce nelle cartelle di lavoro con decine di migliaia di righe.
È possibile annidare due funzioni MATCH — una per la riga e una per la colonna — per creare una ricerca bidimensionale che VLOOKUP non può replicare senza formule di supporto:
=INDEX(B2:E6, MATCH(H2, A2:A6, 0), MATCH(H3, B1:E1, 0))
Qui, MATCH(H2, A2:A6, 0) trova la riga corretta e MATCH(H3, B1:E1, 0) trova la colonna corretta. Modifica una delle celle di input e la formula si adatta immediatamente. Questo è particolarmente utile per i dashboard di vendita dove è necessario estrarre metriche su più dimensioni.
Quando non viene trovata alcuna corrispondenza, MATCH restituisce un errore #N/D. Racchiudi l'intera formula INDEX MATCH in IFERROR per visualizzare un messaggio comprensibile all'utente:
=IFERROR(INDEX($D$2:$D$6, MATCH(H2, $A$2:$A$6, 0)), "Prodotto non trovato")
Questo è particolarmente importante nelle cartelle di lavoro condivise o nei modelli in cui gli utenti finali digitano i valori di ricerca — una gestione degli errori pulita previene confusione e frustrazione. Abbina questa tecnica alla convalida dei dati sulla cella di input per limitare le voci a un elenco valido, e otterrai uno strumento di ricerca robusto e a prova di errore.
Uno degli scenari di ricerca più richiesti è la corrispondenza su più di una condizione. Supponi di voler trovare il Prezzo Unitario in cui la Categoria è "Elettronica" E la Giacenza è inferiore a 100. Puoi ottenere questo risultato con una versione matriciale di INDEX MATCH.
=INDEX($D$2:$D$6, MATCH(1, ($C$2:$C$6="Electronics")*($E$2:$E$6<100), 0))
Nelle versioni di Excel precedenti alla 365, premi Ctrl + Maiusc + Invio per inserirla come formula matriciale — Excel la racchiude tra parentesi graffe {}. In Excel 365 e Excel 2021, le matrici dinamiche gestiscono questo automaticamente, quindi è sufficiente premere Invio normalmente.
Come funziona: ogni condizione produce una matrice di valori VERO/FALSO (1 e 0). Moltiplicandoli insieme si crea una nuova matrice che vale 1 solo dove entrambe le condizioni sono VERE. MATCH trova quindi il primo 1 e INDEX restituisce il prezzo corrispondente.
Excel 365 ha introdotto XLOOKUP, che semplifica molte operazioni di ricerca con una singola funzione. XLOOKUP è eccellente per le ricerche semplici e gestisce nativamente le ricerche a sinistra. Tuttavia, INDEX MATCH rimane rilevante per diversi motivi:
Comprendere INDEX MATCH è anche fondamentale quando si lavora su attività più avanzate come la creazione di dashboard dinamici in Excel, dove le formule di ricerca alimentano grafici e tabelle di riepilogo che si aggiornano automaticamente.
=INDEX(PrezziUnitari, MATCH(H2, IDProdotti, 0)) è molto più facile da verificare rispetto ai riferimenti di cella.Se ti trovi a fissare un requisito di ricerca complesso — criteri multipli, strutture di tabella non standard o riferimenti tra fogli diversi — puoi descrivere ciò di cui hai bisogno in italiano semplice a GPTExcel e ricevere in pochi secondi una formula INDEX MATCH pronta all'uso, completa di riferimenti assoluti corretti e gestione degli errori. Elimina le congetture e ti porta a una formula funzionante senza tentativi ed errori manuali.
Per tecniche più ampie di scrittura di formule basate sull'intelligenza artificiale, l'articolo sull'utilizzo di ChatGPT per scrivere formule Excel illustra il flusso di lavoro in dettaglio.
Per la grande maggioranza dei casi d'uso professionali, sì. INDEX MATCH gestisce le ricerche a sinistra, non viene compromessa dall'inserimento di colonne e supporta la corrispondenza bidimensionale e con criteri multipli. VLOOKUP è più semplice da scrivere per ricerche di base verso destra, ma le sue limitazioni diventano problematiche man mano che i dati crescono in complessità .
Solo quando si utilizza una versione matriciale con criteri multipli della formula in Excel 2019 o versioni precedenti. Le formule INDEX MATCH standard con un singolo criterio vengono inserite con il normale tasto Invio in tutte le versioni di Excel. In Excel 365 e Excel 2021 con matrici dinamiche, anche le versioni con criteri multipli non richiedono la scorciatoia matriciale.
MATCH restituisce sempre la posizione della prima corrispondenza trovata. Se la colonna di ricerca ha duplicati e devi recuperare i dati per ogni occorrenza, considera l'utilizzo di una colonna di supporto con chiavi concatenate, oppure usa Power Query — trattato nella nostra guida a Power Query — per riorganizzare i dati prima di applicare la ricerca.
Sì. È sufficiente includere il nome del foglio nei riferimenti di intervallo. Ad esempio: =INDEX(Sheet2!$D$2:$D$100, MATCH(H2, Sheet2!$A$2:$A$100, 0)). La formula funziona in modo identico sia che gli intervalli si trovino nello stesso foglio sia in un foglio diverso all'interno della stessa cartella di lavoro.
Scopri come la funzione TESTO di Excel converte numeri, date e ore in stringhe di testo formattate tramite codici di formato — con esempi reali e casi d'uso pratici.
Scopri come funziona la funzione SE di Excel, come annidare più SE e quando usare le alternative moderne come SE.PIÙ.SE e SWITCH per una logica più chiara e leggibile.
Padroneggia SUMIF e SUMIFS in Excel per sommare dati in base a una o più condizioni, con sintassi reale, esempi pratici e una guida passo dopo passo.