Sommario
Quando avete bisogno di trovare nel vostro foglio i dati che corrispondono a un certo record chiave, di solito vi rivolgete a VLOOKUP di Google Sheets. Ma ecco che VLOOKUP vi schiaffeggia quasi subito con delle limitazioni. Ecco perché è meglio aumentare le risorse per il compito imparando INDEX MATCH.
INDEX MATCH in Google Sheets è una combinazione di due funzioni: INDEX e MATCH. Quando vengono utilizzate insieme, rappresentano un'alternativa migliore a VLOOKUP di Google Sheets. Scopriamo insieme le loro capacità in questo post del blog, ma prima vorrei farvi fare un rapido tour dei loro ruoli nei fogli di calcolo.
Funzione MATCH di Google Sheets
Vorrei iniziare con MATCH di Google Sheets perché è molto semplice: analizza i dati alla ricerca di un valore specifico e ne restituisce la posizione:
=MATCH(chiave_di_ricerca, intervallo, [tipo_di_ricerca])- chiave_di_ricerca è il disco che state cercando. Richiesto.
- gamma è una riga o una colonna in cui cercare. Richiesto.
Nota: MATCH accetta solo array monodimensionali: sia di righe che di colonne.
Guarda anche: SUMIF di Excel con più criteri OR - tipo_di_ricerca è opzionale e definisce se la corrispondenza deve essere esatta o approssimativa. Se omesso, è 1 per impostazione predefinita:
- 1 significa che l'intervallo è ordinato in modo crescente. La funzione ottiene il valore più grande inferiore o uguale al valore di chiave_di_ricerca .
- 0 farà sì che la funzione cerchi la corrispondenza esatta nel caso in cui l'intervallo non sia ordinato.
- -1 suggerisce che i record vengono classificati utilizzando un ordinamento decrescente. In questo caso, la funzione ottiene il valore più piccolo maggiore o uguale al valore di chiave_di_ricerca .
Ecco un esempio: per ottenere la posizione di una determinata bacca nell'elenco di tutte le bacche, ho bisogno della seguente formula MATCH nel mio foglio Google:
=MATCH("Mirtillo", A1:A10, 0)
Funzione INDICE di Google Sheets
Mentre MATCH indica dove cercare il valore (la sua posizione nell'intervallo), la funzione INDEX di Google Sheets recupera il valore stesso in base agli offset di riga e colonna:
=INDEX(riferimento, [riga], [colonna])- riferimento è l'intervallo in cui cercare. Richiesto.
- fila è il numero di righe da sfalsare rispetto alla prima cella dell'intervallo. Opzionale, 0 se omesso.
- colonna , proprio come fila , è il numero di colonne di offset. Anche questo è opzionale, anche 0 se omesso.
Se si specificano entrambi gli argomenti opzionali (riga e colonna), Google Sheets INDEX restituirà un record da una cella di destinazione:
=INDICE(A1:C10, 7, 1)
Saltando uno di questi argomenti, la funzione otterrà di conseguenza l'intera riga o colonna:
=INDICE(A1:C10, 7)
Come utilizzare la MATCH INDEX in Google Sheets - esempi di formule
Quando INDEX e MATCH vengono utilizzati insieme nei fogli di calcolo, sono al massimo della loro potenza: possono assolutamente sostituire il VLOOKUP di Google Sheets e recuperare il record richiesto da una tabella in base al valore chiave.
Creare la prima formula INDEX MATCH per Google Sheets
Supponiamo di voler ottenere le informazioni sulle scorte di mirtillo rosso dalla stessa tabella che ho usato sopra. Ho solo scambiato le colonne B e C (il motivo lo scoprirete più avanti).
- Ora tutti i frutti di bosco sono elencati nella colonna C. La funzione MATCH di Google Sheets vi aiuterà a individuare la riga esatta del mirtillo rosso: 8
=MATCH("Mirtillo rosso", C1:C10, 0)
- Mettete l'intera formula MATCH in un fila nella funzione INDEX:
=INDEX(A1:C10, MATCH("Mirtillo rosso", C1:C10, 0))
Questo restituirà l'intera fila con il mirtillo rosso.
- Ma dato che sono necessarie solo le informazioni sulle azioni, specificare anche il numero della colonna di ricerca: 3
=INDEX(A1:C10, MATCH("Mirtillo rosso", C1:C10,0), 2)
- Voilà!
- Si può andare oltre e rinunciare all'indicatore dell'ultima colonna ( 2 ). Non ne avrete bisogno se utilizzate solo la colonna di ricerca ( B1:B10 ) piuttosto che l'intera tabella ( A1:C10 ) come primo argomento:
=INDEX(B1:B10, MATCH("Mirtillo rosso", C1:C10, 0))
Suggerimento: un modo più comodo per verificare la disponibilità di varie bacche sarebbe quello di inserirle in un elenco a discesa ( E2 ) e fare riferimento alla funzione MATCH alla cella con l'elenco:
=INDICE(B1:B10, MATCH(E2, C1:C10, 0))
Una volta selezionata la bacca, il relativo valore cambierà di conseguenza:
Perché INDEX MATCH in Google Sheets è meglio di VLOOKUP
Sapete già che Google Sheets INDEX MATCH cerca il vostro valore in una tabella e restituisce un altro record correlato dalla stessa riga. E sapete anche che Google Sheets VLOOKUP fa esattamente lo stesso. Quindi perché preoccuparsi?
Il fatto è che, PARTITA INDICE ha alcuni vantaggi principali su VLOOKUP:
- La ricerca a sinistra è possibile Ho cambiato i posti delle colonne prima per illustrare questo: la funzione INDEX MATCH di Google Sheets può guardare, e lo fa, a sinistra della colonna di ricerca. VLOOKUP cerca sempre la prima colonna dell'intervallo e cerca le corrispondenze alla sua destra, altrimenti ottiene solo errori #N/A:
- Nessun riferimento incasinato quando si aggiungono nuove colonne e si spostano quelle esistenti. Se si aggiungono o si spostano colonne, INDEX MATCH rifletterà automaticamente le modifiche senza intervenire sul risultato. Poiché si utilizzano riferimenti alle colonne, questi vengono immediatamente adattati da Google Sheets:
Provate pure a farlo con VLOOKUP: richiede il numero d'ordine piuttosto che i riferimenti alle celle per una colonna di ricerca. In questo modo, finirete per ottenere il valore sbagliato perché un'altra colonna prende lo stesso posto - la colonna 2 nel mio esempio:
- Considera il caso del testo quando è necessario (per saperne di più, vedere più avanti).
- Può essere utilizzato per la ricerca verticale basata su più criteri.
Vi invito a esaminare in dettaglio gli ultimi due punti.
Ricerca v sensibile alle maiuscole con INDEX MATCH in Google Sheets
INDEX MATCH è una scelta obbligata per quanto riguarda la sensibilità alle maiuscole e alle minuscole.
Supponiamo che tutti i frutti di bosco siano venduti in due modi: sfusi (pesati al banco) e confezionati in scatole. Di conseguenza, ci sono due occorrenze di ciascun frutto di bosco scritto in casi diversi nell'elenco, ciascuno con il proprio ID che varia anch'esso nei casi:
Come si fa a cercare le informazioni sulle scorte di una bacca venduta in un certo modo? VLOOKUP restituisce il primo nome che trova, indipendentemente dal caso.
Fortunatamente, INDEX MATCH per Google Sheets è in grado di farlo correttamente. Dovrete solo utilizzare una funzione aggiuntiva: FIND o EXACT.
Esempio 1. FIND per Vlookup sensibile alle maiuscole e alle minuscole
FIND è una funzione sensibile alle maiuscole e alle minuscole in Google Sheets, il che la rende ideale per la ricerca verticale sensibile alle maiuscole e alle minuscole:
=ArrayFormula(INDEX(B2:B19, MATCH(1, FIND(E2, C2:C19)), 0))
Vediamo cosa succede in questa formula:
- FIND esegue la scansione della colonna C ( C2:C19 ) per il record da E2 ( ciliegia Una volta individuata, la formula "contrassegna" la cella con un numero - 1 .
- MATCH cerca questo marchio. 1 - nella stessa colonna ( C ) e consegna il numero della sua riga a INDEX.
- L'INDICE scende a quella riga nella colonna B ( B2:B19 ) e recupera il record richiesto.
- Quando si finisce di costruire la formula, premere Ctrl+Maiusc+Invio per aggiungere ArrayFormula all'inizio. È necessario perché senza di essa FIND non sarà in grado di cercare negli array (in più di una cella). Oppure si può digitare ' ArrayFormula ' dalla tastiera.
Esempio 2. EXACT per Vlookup sensibile alle maiuscole e minuscole
Se si sostituisce FIND con EXACT, quest'ultimo cercherà i record con gli stessi caratteri, compresi i casi di testo.
L'unica differenza è che EXACT "contrassegna" una corrispondenza con VERO piuttosto che il numero 1 Quindi, il primo argomento di MATCH dovrebbe essere VERO :
=ArrayFormula(INDEX(B2:B19, MATCH(TRUE, EXACT(E2, C2:C19), 0)))
MATCH INDICE di Google Sheets con criteri multipli
E se ci sono diverse condizioni in base alle quali si vuole recuperare il record?
Controlliamo il prezzo del ciliegia che viene venduto in Secchi in PP ed è già esaurimento :
Ho disposto tutti i criteri negli elenchi a discesa nella colonna F. È la MATCH INDEX di Google Sheets che supporta criteri multipli, non VLOOKUP. Ecco la formula da utilizzare:
=ArrayFormula(INDEX(B2:B24, MATCH(CONCATENATO(F2:F4)), A2:A24&C2:C24&D2:D24, 0)),)
Non fatevi prendere dal panico! :) La sua logica è in realtà piuttosto semplice:
- CONCATENARE(F2:F4) combina tutti e tre i record delle celle con i criteri in una stringa come questa:
Secchio CherryPP Esaurito
Questo è un chiave_di_ricerca per MATCH o, in altre parole, ciò che si sta cercando nella tabella.
- A2:A24&C2:C24&D2:D24 costituiscono un gamma per la funzione MATCH. Poiché tutti e tre i criteri si svolgono in tre colonne separate, in questo modo li si combina:
CiliegioVassoio in cartoneIn stock
CiliegiaConfezione in pellicolaEscluso dal magazzino
Secchio CherryPP Esaurito
ecc.
- L'ultimo argomento di MATCH - 0 - permette di trovare la corrispondenza esatta per Secchio CherryPP Esaurito tra tutte le righe di colonne combinate. Come si può vedere, si trova nella terza riga.
- E poi INDEX fa il suo dovere: recupera il record dalla terza riga della colonna B.
- ArrayFormula viene utilizzata per consentire ad altre funzioni di lavorare con gli array.
Suggerimento: se la formula non trova una corrispondenza, restituisce un errore. Per evitarlo, è possibile avvolgere l'intera formula in IFERROR (rendendolo il primo argomento) e inserire qualsiasi cosa si voglia vedere in una cella al posto degli errori come secondo argomento:
=IFERROR(ArrayFormula(INDEX(B2:B27, MATCH(CONCATENATO(F2:F4), A2:A27&C2:C27&D2:D27, 0),)), "Non trovato")
Un'alternativa migliore alla MATCH INDEX in Google Sheets - Partite multiple VLOOKUP
Qualunque sia la funzione di ricerca preferita, VLOOKUP o INDEX MATCH, esiste un'alternativa migliore a entrambe.
Multiple VLOOKUP Matches è un componente aggiuntivo speciale per Google Sheets progettato per:
- lookup senza formule
- ricerca in tutte le direzioni
- ricerca in base a più condizioni per diversi tipi di dati: testo, numeri, date, ora, ecc.
- recupera diverse partite, quante ne servono (a patto che ce ne siano altrettante nella tabella, ovviamente)
L'interfaccia è semplice, quindi non dovrete dubitare di fare tutto correttamente:
- Selezionare la gamma di sorgenti.
- Impostare il numero di corrispondenze e di colonne da restituire.
- Perfezionare le condizioni utilizzando gli operatori predefiniti ( contiene, =, non vuoto , tra , ecc.).
Sarete inoltre in grado di:
- anteprima del risultato
- decidere dove posizionarlo
- e come: come formula o solo come valori
Non perdete l'occasione di verificare il componente aggiuntivo e installatelo dal Marketplace di Google Workspace. La pagina del tutorial vi spiegherà ogni opzione in dettaglio.
Abbiamo anche preparato uno speciale video didattico:
Ci vediamo nei commenti qui sotto o nel prossimo articolo ;)