Sommario
L'esercitazione mostra come combinare V Imparerete anche a utilizzare le formule IF ISNA VLOOKUP per sostituire gli errori #N/A con il vostro testo, lo zero o la cella vuota.
Sebbene le funzioni VLOOKUP e IF siano utili da sole, insieme offrono esperienze ancora più preziose. Questa esercitazione presuppone che si ricordi bene la sintassi delle due funzioni, altrimenti si consiglia di rispolverare le proprie conoscenze seguendo i link riportati sopra.
Vlookup con l'istruzione If: restituire Vero/Falso, Sì/No, ecc.
Uno degli scenari più comuni in cui si combinano If e Vlookup è quello di confrontare il valore restituito da Vlookup con un valore di esempio e restituire Sì / No o Vero / Falso come risultato.
Nella maggior parte dei casi, la seguente formula generica può andare bene:
IF(VLOOKUP(...) = valore , VERO, FALSO)Tradotta in parole povere, la formula indica a Excel di restituire Vero se Vlookup è vero (cioè uguale al valore specificato). Se Vlookup è falso (non uguale al valore specificato), la formula restituisce Falso .
Di seguito sono riportati alcuni usi reali della formula IF Vlookup.
Esempio 1. Cercare un valore specifico
Supponiamo di avere un elenco di articoli nella colonna A e una quantità nella colonna B. Stiamo creando una dashboard per i nostri utenti e abbiamo bisogno di una formula che controlli la quantità di un articolo in E1 e informi l'utente se l'articolo è disponibile o esaurito.
Si estrae la quantità con una normale Vlookup con formula di corrispondenza esatta come questa:
=VLOOKUP(E1,$A$2:$B$10,2,FALSE)
Quindi, scrivere un'istruzione IF che confronti il risultato di Vlookup con zero e restituisca "No" se è uguale a 0, "Sì" altrimenti:
=IF(VLOOKUP(E1,$A$2:$B$10,2,FALSE)=0, "No", "Sì")
Invece di Sì/No , è possibile restituire VERO/FALSO o In stock/esaurito o altre due scelte, ad esempio:
=IF(VLOOKUP(E1,$A$2:$B$10,2)=0, "Esaurito", "In magazzino")
È inoltre possibile confrontare il valore restituito da Vlookup con il campione testo In questo caso, assicurarsi di racchiudere una stringa di testo tra virgolette, come in questo caso:
=IF(VLOOKUP(E1,$A$2:$B$10,2)="testo di esempio",TRUE,FALSE)
Esempio 2. Confronto del risultato di Vlookup con un'altra cella
Un altro tipico esempio di Vlookup con condizione If in Excel consiste nel confrontare il risultato di Vlookup con un valore presente in un'altra cella. Ad esempio, possiamo verificare se è maggiore o uguale a un numero nella cella G2:
=IF(VLOOKUP(E1,$A$2:$B$10,2)>=G2, "Sì!", "No")
Ecco la nostra formula If con Vlookup in azione:
In modo analogo, è possibile utilizzare qualsiasi altro operatore logico insieme a un riferimento di cella nella formula di Excel Se Vlookup.
Esempio 3. Valori Vlookup in un elenco più breve
Per confrontare ogni cella della colonna di destinazione con un altro elenco e restituire Vero o Sì se viene trovata una corrispondenza, Falso o No altrimenti, utilizzare questa formula generica IF ISNA VLOOKUP:
IF(ISNA( VLOOKUP(...)), "No", "Sì")Se Vlookup produce l'errore #N/A, la formula restituisce "No", ovvero il valore di ricerca non è stato trovato nell'elenco di ricerca. Se la corrispondenza è stata trovata, viene restituito "Sì". Ad esempio:
=IF(ISNA(VLOOKUP(A2,$D$2:$D$4,1,FALSE)), "No", "Sì")
Se la logica aziendale richiede risultati opposti, è sufficiente scambiare "Sì" e "No" per invertire la logica della formula:
=IF(ISNA(VLOOKUP(A2,$D$2:$D$4,1,FALSE)), "Sì", "No")
Excel Se la formula Vlookup per eseguire diversi calcoli
Oltre a visualizzare i propri messaggi di testo, la funzione Se con Vlookup può eseguire diversi calcoli in base ai criteri specificati.
Proseguendo nel nostro esempio, calcoliamo la commissione di un venditore specifico (F1) in base alla sua efficacia: 20% di commissione per chi ha guadagnato 200 dollari e oltre, 10% per tutti gli altri.
A tale scopo, si controlla se il valore restituito da Vlookup è maggiore o uguale a 200 e, in caso affermativo, lo si moltiplica per il 20%, altrimenti per il 10%:
=IF(VLOOKUP(F1,$A$2:$C$10,3,FALSE )>=200, VLOOKUP(F1,$A$2:$C$10,3,FALSE)*20%, VLOOKUP(F1,$A$2:$C$10,3,FALSE)*10%)
Dove A2:A10 sono i nomi dei venditori e C2:C10 sono le vendite.
IF ISNA VLOOKUP per nascondere gli errori #N/A
Se la funzione VLOOKUP non riesce a trovare un valore specificato, lancia un errore #N/A. Per catturare l'errore e sostituirlo con il proprio testo, inserire una formula Vlookup nel test logico della funzione IF, in questo modo:
IF(ISNA(VLOOKUP(...)), "Non trovato", VLOOKUP(...))Naturalmente, è possibile digitare qualsiasi testo al posto di "Not found".
Supponiamo di avere un elenco di nomi di venditori in una colonna e di importi di vendita in un'altra colonna. Il vostro compito è quello di estrarre un numero corrispondente al nome inserito dall'utente in F1. Se il nome non viene trovato, visualizzate un messaggio che lo indichi.
Con i nomi in A2:A10 e gli importi C2:C10, il compito può essere svolto con la seguente formula If Vlookup:
=IF(ISNA(VLOOKUP(F1,$A$2:$C$10,3,FALSE)), "Non trovato", VLOOKUP(F1,$A$2:$C$10,3,FALSE))
Se il nome viene trovato, viene restituito l'importo di vendita corrispondente:
Se il valore di ricerca non viene trovato, l'opzione Non trovato al posto dell'errore #N/A:
Come funziona questa formula
La logica della formula è molto semplice: si utilizza la funzione ISNA per controllare che Vlookup non contenga errori #N/A. Se si verifica un errore, ISNA restituisce VERO, altrimenti FALSO. I valori sopra indicati passano al test logico della funzione IF, che esegue una delle seguenti operazioni:
- Se il test logico è VERO (errore #N/A), viene visualizzato il messaggio.
- Se il test logico è FALSO (il valore di ricerca viene trovato), Vlookup restituisce normalmente una corrispondenza.
IFNA VLOOKUP nelle nuove versioni di Excel
A partire da Excel 2013, è possibile utilizzare la funzione IFNA al posto di IF ISNA per catturare e gestire errori #N/A:
IFNA(VLOOKUP(...), " Non trovato ")Nel nostro esempio, la formula assumerebbe la forma seguente:
=IFNA(VLOOKUP(F1,$A$2:$C$10,3, FALSE), "Non trovato")
Suggerimento: se desiderate intrappolare tutti i tipi di errore, non solo #N/A, utilizzate VLOOKUP in combinazione con la funzione IFERROR. Maggiori dettagli sono disponibili qui: IFERROR VLOOKUP in Excel.
Vlookup di Excel: se non trovato restituisce 0
Quando si lavora con valori numerici, si potrebbe voler restituire uno zero quando il valore di ricerca non viene trovato. Per farlo, utilizzare la formula IF ISNA VLOOKUP discussa in precedenza con una piccola modifica: invece di un messaggio di testo, fornire 0 nell'opzione valore_se_vero della funzione IF:
IF(ISNA(VLOOKUP(...)), 0, VLOOKUP(...))Nella nostra tabella di esempio, la formula sarebbe la seguente:
=IF(ISNA(VLOOKUP(F2,$A$2:$C$10,3,FALSE)), 0, VLOOKUP(F2,$A$2:$C$10,3,FALSE))
Nelle versioni recenti di Excel 2016 e 2013, è possibile utilizzare nuovamente la combinazione IFNA Vlookup:
=IFNA(VLOOKUP(I2,$A$2:$C$10,3, FALSE), 0)
Vlookup di Excel: se non trovato restituisce una cella vuota
Si tratta di un'ulteriore variante dell'istruzione "Vlookup if then": non restituire nulla quando il valore di ricerca non viene trovato. A tal fine, istruire la formula affinché restituisca una stringa vuota ("") invece dell'errore #N/A:
IF(ISNA(VLOOKUP(...)), "", VLOOKUP(...))Di seguito sono riportati un paio di esempi di formule complete:
Per tutte le versioni di Excel:
=IF(ISNA(VLOOKUP(F2,$A$2:$C$10,3,FALSE)), "", VLOOKUP(F2,$A$2:$C$10,3,FALSE))
Per Excel 2016 e Excel 2013:
=IFNA(VLOOKUP(F2,$A$2:$C$10,3, FALSE), "")
If with Index Match - vlookup a sinistra con condizione If
Gli utenti esperti di Excel sanno che la funzione VLOOKUP non è l'unico modo per eseguire ricerche verticali in Excel. A questo scopo è possibile utilizzare anche la combinazione INDEX MATCH, ancora più potente e versatile. La buona notizia è che Index Match può lavorare insieme a IF esattamente come Vlookup.
Ad esempio, si hanno i numeri d'ordine nella colonna A e i nomi dei venditori nella colonna B. Si sta cercando una formula per estrarre il numero d'ordine di un venditore specifico.
Vlookup non può essere utilizzato in questo caso perché non può cercare da destra a sinistra. Index Match funziona senza problemi se il valore di ricerca viene trovato nella colonna di ricerca. In caso contrario, viene visualizzato un errore #N/A. Per sostituire la notazione di errore standard con il proprio testo, annidare Index Match all'interno di IF ISNA:
=IF(ISNA(INDEX(A2:A10, MATCH(F1, $B$2:$B$10, 0)), "Non trovato", INDEX(A2:A10, MATCH(F1, $B$2:$B$10, 0))
In Excel 2016 e 2016, è possibile utilizzare IFNA invece di IF ISNA per rendere la formula più compatta:
=IFNA(INDEX(A2:A10, MATCH(F1, $B$2:$B$10, 0)), "Non trovato")
In modo analogo, è possibile utilizzare la corrispondenza degli indici in altre formule If.
Questo è il modo in cui si utilizzano Vlookup e l'istruzione IF insieme in Excel. Per dare un'occhiata più da vicino alle formule discusse in questo tutorial, potete scaricare la nostra cartella di lavoro di esempio qui sotto. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!
Eserciziario da scaricare
Excel IF Vlookup - esempi di formule (file .xlsx)