Sommario
L'esercitazione spiega le forme vettoriali e matriciali della funzione LOOKUP di Excel e dimostra gli usi tipici e non banali di LOOKUP in Excel con esempi di formule.
Una delle domande più frequenti che ogni utente di Excel si pone di tanto in tanto è questa: " Come si fa a cercare un valore in un foglio e a estrarre un valore corrispondente in un altro foglio? "Naturalmente, lo scenario di base può subire molte variazioni: si può cercare la corrispondenza più vicina piuttosto che quella esatta, si può cercare verticalmente in una colonna o orizzontalmente in una riga, si possono valutare uno o più criteri, ecc.
Microsoft Excel offre una serie di modi diversi per effettuare ricerche. Per cominciare, impariamo una funzione che è stata progettata per gestire i casi più semplici di ricerca verticale e orizzontale. Come è facile intuire, sto parlando della funzione LOOKUP.
Funzione LOOKUP di Excel: sintassi e usi
Al livello più elementare, la funzione LOOKUP di Excel cerca un valore in una colonna o in una riga e restituisce un valore corrispondente dalla stessa posizione in un'altra colonna o riga.
In Excel esistono due forme di LOOKUP: Vettore e Array Ogni modulo è spiegato singolarmente di seguito.
Funzione LOOKUP di Excel - forma vettoriale
In questo contesto, un vettore Si utilizza quindi la forma vettoriale di LOOKUP per cercare un valore specificato in una riga o in una colonna di dati ed estrarre un valore dalla stessa posizione in un'altra riga o colonna.
La sintassi del vettore Lookup è la seguente:
LOOKUP(lookup_value, lookup_vector, [result_vector])Dove:
- Valore_di_ricerca (obbligatorio) - un valore da cercare, che può essere un numero, un testo, un valore logico di VERO o FALSO o un riferimento a una cella contenente il valore di ricerca.
- Vettore_di_ricerca (obbligatorio) - intervallo di una riga o di una colonna da ricercare. Deve essere ordinato in ordine ascendente .
- Vettore_risultato (facoltativo) - intervallo di una riga o di una colonna da cui si desidera restituire il risultato - un valore nella stessa posizione del valore di ricerca. Vettore_risultato deve essere il stessa dimensione come intervallo_di_ricerca Se omesso, il risultato viene restituito da lookup_vector .
Gli esempi seguenti mostrano due semplici formule di Lookup in azione.
Formula di ricerca verticale - ricerca in un intervallo di una colonna
Supponiamo di avere un elenco di venditori nella colonna D (D2:D5) e i prodotti che hanno venduto nella colonna E (E2:E5). Si sta creando una dashboard in cui gli utenti inseriscono il nome del venditore in B2 e si ha bisogno di una formula che estragga il prodotto corrispondente in B3. Il compito può essere facilmente realizzato con questa formula:
=LOOKUP(B2,D2:D5,E2:E5)
Per capire meglio gli argomenti, date un'occhiata a questa schermata:
Formula di ricerca orizzontale: ricerca nell'intervallo di una riga
Se i dati di partenza hanno un layout orizzontale, cioè le voci risiedono in righe anziché in colonne, si deve fornire un intervallo di una riga nell'opzione lookup_vector e vettore_risultato argomenti, come questo:
=LOOKUP(B2,E1:H1,E2:H2)
Nella seconda parte di questo tutorial, troverete altri esempi di Excel Lookup che risolvono compiti più complessi. Nel frattempo, ricordate i seguenti semplici fatti che vi aiuteranno a evitare le possibili insidie e a prevenire gli errori più comuni.
5 cose da sapere sulla forma vettoriale di LOOKUP di Excel
- Valori in lookup_vector dovrebbero essere ordinati in ordine ascendente cioè dal più piccolo al più grande o dalla A alla Z, altrimenti la formula di Excel Lookup potrebbe restituire un errore o un risultato errato. Se è necessario eseguire una ricerca su dati non ordinati , quindi utilizzare INDEX MATCH o OFFSET MATCH.
- Vettore_di_ricerca e vettore_risultato deve essere un una fila o a una colonna della stessa dimensione.
- La funzione LOOKUP di Excel è senza distinzione tra maiuscole e minuscole non distingue il testo maiuscolo da quello minuscolo.
- Excel LOOKUP funziona in base a corrispondenza approssimativa Più precisamente, una formula di Lookup cerca prima di tutto una corrispondenza esatta. Se non riesce a trovare il valore di ricerca esatto, cerca il valore il prossimo valore più piccolo cioè il valore più grande in lookup_vector che è minore o uguale a valore_di_ricerca .
Ad esempio, se il valore di ricerca è "5", la formula lo cercherà per primo. Se "5" non viene trovato, cercherà "4". Se "4" non viene trovato, cercherà "3" e così via.
- Se valore_di_ricerca è più piccolo del valore più piccolo in lookup_vector , Excel LOOKUP restituisce l'errore #N/A.
Funzione LOOKUP di Excel - forma array
La forma array della funzione LOOKUP cerca il valore specificato nella prima colonna o riga dell'array e recupera un valore dalla stessa posizione nell'ultima colonna o riga dell'array.
L'array Lookup ha 2 argomenti, entrambi obbligatori:
LOOKUP(lookup_value, array)Dove:
- Valore_di_ricerca - un valore da cercare in un array.
- Array - un intervallo di celle in cui si desidera cercare il valore di ricerca. I valori della prima colonna o della prima riga della matrice (a seconda che si esegua il V-lookup o l'H-lookup) devono essere ordinati in ordine crescente. I caratteri maiuscoli e minuscoli sono considerati equivalenti.
Ad esempio, se i nomi dei venditori si trovano nella prima colonna dell'array (colonna A) e le date degli ordini nell'ultima colonna dell'array (colonna C), è possibile utilizzare la seguente formula per cercare il nome ed estrarre la data corrispondente:
=LOOKUP(B2,D2:F5)
Nota: la forma a matrice della funzione LOOKUP di Excel non deve essere confusa con le formule a matrice di Excel: sebbene operi su matrici, LOOKUP è ancora una formula normale, che viene completata nel modo consueto premendo il tasto Invio.
4 cose da sapere sulla forma array di LOOKUP di Excel
- Se array ha più righe che colonne o lo stesso numero di colonne e righe, una formula di ricerca cerca nella prima colonna (ricerca orizzontale).
- Se array ha più colonne che righe Excel LOOKUP cerca nella prima riga (ricerca verticale).
- Se una formula non riesce a trovare il valore di ricerca, utilizza il parametro valore più grande nell'array che è minore o uguale a valore_di_ricerca .
- Se il il valore di ricerca è più piccolo del valore più piccolo nella prima colonna o riga della matrice (a seconda delle dimensioni della matrice), una formula Lookup restituisce l'errore #N/A.
Nota importante! Le funzionalità del modulo array LOOKUP di Excel sono limitate e se ne sconsiglia l'uso. È invece possibile utilizzare le funzioni VLOOKUP o HLOOKUP, che sono le versioni migliorate per eseguire ricerche verticali e orizzontali, rispettivamente.
Come utilizzare la funzione LOOKUP in Excel - esempi di formule
Sebbene esistano funzioni più potenti per cercare e trovare corrispondenze in Excel (argomento della prossima esercitazione), LOOKUP è utile in molte situazioni e gli esempi seguenti ne dimostrano un paio di usi non banali. Si noti che tutte le formule seguenti utilizzano la forma vettoriale di LOOKUP di Excel.
Cercare un valore nell'ultima cella non vuota di una colonna
Se si dispone di una colonna di dati popolati dinamicamente, si potrebbe voler scegliere la voce aggiunta più di recente, ossia ottenere l'ultima cella non vuota di una colonna. A tale scopo, utilizzare questa formula generica:
LOOKUP(2, 1/( colonna ""), colonna )Nella formula precedente, tutti gli argomenti, tranne il riferimento alla colonna, sono costanti. Pertanto, per recuperare l'ultimo valore di una colonna specifica, è sufficiente fornire il riferimento alla colonna corrispondente. Ad esempio, per estrarre il valore dell'ultima cella non vuota della colonna A, utilizzate questa formula:
=LOOKUP(2, 1/(A:A""), A:A)
Per ottenere l'ultimo valore da altre colonne, modificare i riferimenti alle colonne come mostrato nella schermata seguente: il primo riferimento è la colonna da controllare per le celle vuote/non vuote e il secondo riferimento è la colonna da cui restituire il valore:
Come funziona questa formula
Nel valore_di_ricerca si fornisce 2 o qualsiasi altro numero maggiore di 1 (tra poco si capirà perché).
Nel lookup_vector si inserisce questa espressione: 1/(A:A"")
- Innanzitutto, si esegue l'operazione logica A:A"" che confronta ogni cella della colonna A con una stringa vuota e restituisce VERO per le celle vuote e FALSO per quelle non vuote. Nell'esempio precedente, la formula in F2 restituisce questa matrice: {VERO;VERO;VERO;VERO;FALSO...}.
- Quindi, si divide il numero 1 per ogni elemento dell'array precedente. Con VERO uguale a 1 e FALSO uguale a 0, si ottiene un nuovo array composto da 1 e da errori #DIV/0! (il risultato della divisione per 0), che viene utilizzato come lookup_vector In questo esempio, è {1;1;1;1;#DIV/0!...}.
Ora, come è possibile che la formula restituisca l'ultimo valore non vuoto di una colonna, dato che valore_di_ricerca non corrisponde a nessun elemento di lookup_vector La chiave per capire la logica è che Excel LOOKUP cerca con una corrispondenza approssimativa, cioè quando il valore esatto della ricerca non viene trovato, corrisponde al valore successivo più grande in lookup_vector che è più piccolo di valore_di_ricerca Nel nostro caso, valore_di_ricerca è 2 e il valore più grande in lookup_vector è 1, quindi LOOKUP corrisponde all'ultimo 1 dell'array, che è l'ultima cella non vuota!
Nel vettore_risultato si fa riferimento alla colonna da cui si vuole restituire un valore e la formula di Lookup recupererà il valore nella stessa posizione del valore di lookup.
Suggerimento: se si desidera ottenere il numero della riga tenendo l'ultimo valore, quindi utilizzare la funzione ROW per recuperarlo. Ad esempio: =LOOKUP(2,1/(A:A""),RIGA(A:A))
Cercare un valore nell'ultima cella non vuota di una riga
Se i dati di origine sono disposti in righe anziché in colonne, è possibile ottenere il valore dell'ultima cella non vuota utilizzando questa formula:
LOOKUP(2, 1/( fila ""), fila )In realtà, questa formula non è altro che una leggera modifica della formula precedente, con l'unica differenza che si utilizza il riferimento alla riga invece che alla colonna.
Ad esempio, per ottenere il valore dell'ultima cella non vuota della riga 1, utilizzare questa formula:
=LOOKUP(2, 1/(1:1""), 1:1)
La seguente schermata mostra il risultato:
Ottenere un valore associato all'ultima voce di una riga
Con un po' di creatività, la formula di cui sopra può essere facilmente personalizzata per risolvere altri compiti simili. Ad esempio, può essere utilizzata per ottenere un valore associato all'ultima istanza di un valore specifico in una riga. Questo può sembrare un po' oscuro, ma l'esempio seguente renderà le cose più facili da capire.
Supponiamo di avere una tabella di riepilogo in cui la colonna A contiene i nomi dei venditori e le colonne successive contengono dati di qualche tipo per ogni mese. In questo esempio, una cella contiene "sì" se un determinato venditore ha chiuso almeno un affare in un determinato mese. Il nostro obiettivo è ottenere un mese associato all'ultima voce "sì" in una riga.
Il compito può essere risolto utilizzando la seguente formula LOOKUP:
=LOOKUP(2, 1/(B2:H2="sì"), $B$1:$H$1)
La logica della formula è fondamentalmente la stessa descritta nel primo esempio, con la differenza che si utilizza l'operatore "uguale a" ("=") anziché "non uguale a" ("") e si opera sulle righe anziché sulle colonne.
La seguente schermata mostra un risultato:
Lookup come alternativa agli IF annidati
In tutte le formule di Lookup che abbiamo discusso finora, l'elemento lookup_vector e vettore_risultato Tuttavia, la sintassi della funzione LOOKUP di Excel consente di fornire i vettori sotto forma di costanti verticali, il che consente di replicare la funzionalità degli IF annidati con una formula più compatta e di facile lettura.
Supponiamo di avere un elenco di abbreviazioni nella colonna A e di volerle sostituire con i nomi completi, dove "C" sta per "Completato", "D" è "Sviluppo" e "T" è "Test". Il compito può essere svolto con la seguente funzione IF annidata:
=IF(A2="c", "Completato", IF(A2="d", "Sviluppo", IF(A2="t", "Collaudo", "")))
Oppure, utilizzando questa formula di ricerca:
=LOOKUP(A2, {"c"; "d"; "t"}, {"Completato"; "Sviluppo"; "Test"})
Come mostrato nella schermata seguente, entrambe le formule danno risultati identici:
Nota: affinché una formula di Excel Lookup funzioni correttamente, i valori in array_di_ricerca devono essere ordinati dalla A alla Z o dal più piccolo al più grande.
Se si prelevano i valori da una tabella di ricerca, è possibile incorporare una funzione Vlookup nel file valore_di_ricerca per recuperare una corrispondenza.
Supponendo che il valore di ricerca sia nella cella E2, che la tabella di ricerca sia A2:C7 e che la colonna di interesse ("Stato") sia la terza colonna della tabella di ricerca, la formula seguente svolge il compito:
=LOOKUP(VLOOKUP(E2, $A$2:$C$7, 3, FALSE), {"c"; "d"; "t"}, {"Completato"; "Sviluppo"; "Test"})
Come mostrato nella schermata seguente, la formula recupera lo stato del progetto dalla tabella di ricerca e sostituisce un'abbreviazione con la parola corrispondente:
Suggerimento: se si utilizza Excel 2016 nell'ambito di un abbonamento a Office 365, è possibile utilizzare la funzione SWITCH per scopi simili.
Spero che questi esempi abbiano fatto luce sul funzionamento della funzione LOOKUP. Per comprendere meglio le formule, potete scaricare questi esempi di Lookup di Excel. Nel prossimo tutorial parleremo di alcuni altri modi di fare lookup in Excel e spiegheremo quale formula di Lookup è meglio utilizzare in quale situazione. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!