Sommario
L'esercitazione mostra come creare istruzioni IF multiple in Excel con logica AND e OR. Inoltre, imparerete come utilizzare IF insieme ad altre funzioni di Excel.
Nella prima parte del nostro tutorial sugli IF di Excel, abbiamo visto come costruire una semplice istruzione IF con una sola condizione per testo, numeri, date, spazi vuoti e non vuoti. Per un'analisi potente dei dati, tuttavia, spesso è necessario valutare più condizioni alla volta. Gli esempi di formula riportati di seguito vi mostreranno i modi più efficaci per farlo.
Come utilizzare la funzione IF con condizioni multiple
In sostanza, esistono due tipi di Formula IF con criteri multipli basati sulla logica AND / OR Di conseguenza, nel test logico della formula IF, si deve utilizzare una di queste funzioni:
- Funzione AND - restituisce VERO se tutte le condizioni sono soddisfatte; altrimenti FALSO.
- Funzione OR - restituisce VERO se qualsiasi condizione singola è soddisfatta; altrimenti FALSO.
Per illustrare meglio il punto, analizziamo alcuni esempi di formule reali.
Dichiarazione IF di Excel con condizioni multiple (logica AND)
La formula generica di Excel IF con due o più condizioni è la seguente:
SE(AND( condizione1 , condizione2 , ...), value_if_true, value_if_false)Tradotta in linguaggio umano, la formula dice: Se la condizione 1 è vera E la condizione 2 è vera, restituire valore_se_vero ; altrimenti restituire valore_se_falso .
Si supponga di avere una tabella che elenca i punteggi di due test nelle colonne B e C. Per superare l'esame finale, uno studente deve avere entrambi i punteggi superiori a 50.
Per il test logico, si utilizza la seguente istruzione AND: AND(B2>50, C2>50)
Se entrambe le condizioni sono vere, la formula restituisce "Pass"; se una delle condizioni è falsa, "Fail".
=IF(AND(B2>50, B2>50), "Pass", "Fail")
La schermata sottostante dimostra che la formula IF /AND di Excel funziona correttamente:
In modo analogo, è possibile utilizzare la funzione IF di Excel con più condizioni del testo .
Ad esempio, per ottenere un risultato "Buono" se entrambi i valori B2 e C2 sono superiori a 50, "Cattivo" altrimenti, la formula è la seguente:
=IF(AND(B2="pass", C2="pass"), "Bene!", "Male")
Nota importante: la funzione AND controlla tutte le condizioni anche se quella o quelle già testate hanno dato esito FALSO. Questo comportamento è un po' insolito, poiché nella maggior parte dei linguaggi di programmazione le condizioni successive non vengono testate se uno dei test precedenti ha dato esito FALSO.
In pratica, un'istruzione IF apparentemente corretta può dare luogo a un errore a causa di questa specificità. Ad esempio, la formula seguente restituirebbe #DIV/0! (errore "dividi per zero") se la cella A2 è uguale a 0:
=IF(AND(A20, (1/A2)>0,5), "Buono", "Cattivo")
Per evitarlo, è necessario utilizzare una funzione IF annidata:
=IF(A20, IF((1/A2)>0,5, "Buono", "Cattivo"), "Cattivo")
Per ulteriori informazioni, consultare la formula IF AND in Excel.
Funzione IF di Excel con condizioni multiple (logica OR)
Per fare una cosa se qualsiasi condizione altrimenti fare qualcosa di diverso, utilizzare questa combinazione di funzioni IF e OR:
SE(OR( condizione1 , condizione2 , ...), value_if_true, value_if_false)La differenza rispetto alla formula IF / AND discussa in precedenza è che Excel restituisce VERO se una qualsiasi delle condizioni specificate è vera.
Quindi, se nella formula precedente si usa OR invece di AND:
=IF(OR(B2>50, B2>50), "Pass", "Fail")
Chiunque abbia più di 50 punti in uno dei due esami otterrà la dicitura "Pass" nella colonna D. Con queste condizioni, i nostri studenti hanno maggiori possibilità di superare l'esame finale (Yvette è stata particolarmente sfortunata, non riuscendo a superare l'esame per un solo punto).
Suggerimento: se si sta creando un file dichiarazione IF multipla con testo e testando un valore in una cella con la logica OR (cioè una cella può essere "questo" o "quello"), è possibile costruire una formula più compatta utilizzando una costante di array.
Ad esempio, per contrassegnare una vendita come "chiusa" se la cella B2 è "consegnata" o "pagata", la formula è:
=IF(OR(B2={"consegnato", "pagato"}), "Chiuso", "")
Altri esempi di formule si trovano in Excel nella funzione IF OR.
IF con più dichiarazioni AND & OR
Se il compito richiede la valutazione di diverse serie di condizioni multiple, è necessario utilizzare entrambe le funzioni AND & OR alla volta.
Nella nostra tabella di esempio, supponiamo di avere i seguenti criteri per la verifica dei risultati degli esami:
- Condizione 1: esame1>50 ed esame2>50
- Condizione 2: esame1>40 ed esame2>60
Se una delle due condizioni è soddisfatta, l'esame finale si considera superato.
A prima vista, la formula sembra un po' complicata, ma in realtà non lo è: basta esprimere ciascuna delle condizioni di cui sopra come un'istruzione AND e annidarle nella funzione OR (poiché non è necessario soddisfare entrambe le condizioni, è sufficiente una delle due):
OR(AND(B2>50, C2>50), AND(B2>40, C2>60)
Quindi, utilizzare la funzione OR per il test logico di IF e fornire l'opzione desiderata valore_se_vero e valore_se_falso Come risultato, si ottiene la seguente formula IF con condizioni multiple AND / OR:
=IF(OR(AND(B2>50, C2>50), AND(B2>40, C2>60), "Pass", "Fail")
La schermata seguente indica che la formula è stata eseguita correttamente:
Naturalmente, non si è limitati a utilizzare solo due funzioni AND/OR nelle formule IF, ma se ne possono usare tante quante ne richiede la logica aziendale, purché:
- In Excel 2007 e versioni successive, gli argomenti non possono essere più di 255 e la lunghezza totale della formula IF non deve superare gli 8.192 caratteri.
- In Excel 2003 e versioni successive, gli argomenti non possono essere più di 30 e la lunghezza totale della formula IF non deve superare i 1.024 caratteri.
Dichiarazione IF annidata per controllare più test logici
Se si desidera valutare più test logici all'interno di una singola formula, è possibile annidare più funzioni una dentro l'altra. Tali funzioni sono chiamate funzioni IF annidate Si rivelano particolarmente utili quando si desidera restituire valori diversi a seconda dei risultati dei test logici.
Ecco un esempio tipico: supponiamo di voler qualificare i risultati degli studenti come " Buono ", " Soddisfacente " e " Povero " in base ai seguenti punteggi:
- Buono: 60 o più (>=60)
- Soddisfacente: tra 40 e 60 (>40 e <60)
- Povero: 40 o meno (<=40)
Prima di scrivere una formula, considerate l'ordine delle funzioni che andrete ad annidare. Excel valuterà i test logici nell'ordine in cui appaiono nella formula. Una volta che una condizione viene valutata VERO, le condizioni successive non vengono testate, il che significa che la formula si ferma dopo il primo risultato VERO.
Nel nostro caso, le funzioni sono disposte dalla più grande alla più piccola:
=IF(B2>=60, "Buono", IF(B2>40, "Soddisfacente", "Scarso"))
Naturalmente, se necessario, è possibile annidare più funzioni (fino a 64 nelle versioni moderne).
Per ulteriori informazioni, vedere Come utilizzare più istruzioni IF annidate in Excel.
Formula della matrice IF di Excel con più condizioni
Un altro modo per far sì che un IF di Excel verifichi più condizioni è quello di utilizzare una formula array.
Per valutare le condizioni con la logica AND, utilizzare l'asterisco:
SE( condizione1 ) * ( condizione2 ) * ..., value_if_true, value_if_false)Per verificare le condizioni con la logica OR, utilizzare il segno più:
SE( condizione1 ) + ( condizione2 ) + ..., value_if_true, value_if_false)Per completare correttamente una formula di matrice, premete insieme i tasti Ctrl + Maiusc + Invio. In Excel 365 e Excel 2021, questa formula funziona anche come formula normale grazie al supporto delle matrici dinamiche.
Ad esempio, per ottenere "Pass" se sia B2 che C2 sono maggiori di 50, la formula è:
=IF((B2>50) * (C2>50), "Pass", "Fail")
Nel mio Excel 365, una formula normale funziona perfettamente (come si può vedere nelle schermate precedenti). In Excel 2019 e successivi, ricordate di rendere la formula una matrice utilizzando la scorciatoia Ctrl + Maiusc + Invio.
Per valutare più condizioni con la logica OR, la formula è:
=IF((B2>50) + (C2>50), "Pass", "Fail")
Utilizzo di IF insieme ad altre funzioni
Questa sezione spiega come utilizzare l'IF in combinazione con altre funzioni di Excel e quali vantaggi ne derivano.
Esempio 1. Se errore #N/A in VLOOKUP
Quando VLOOKUP o un'altra funzione di ricerca non riesce a trovare qualcosa, restituisce un errore #N/A. Per rendere più gradevole l'aspetto delle tabelle, è possibile restituire zero, vuoto o un testo specifico se #N/A. A tale scopo, utilizzare questa formula generica:
IF(ISNA(VLOOKUP(...)), valore_se_na , VLOOKUP(...))Ad esempio:
Se #N/A restituisce 0:
Se il valore di ricerca in E1 non viene trovato, la formula restituisce zero.
=IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), 0, VLOOKUP(E1, A2:B10, 2, FALSE))
Se #N/A restituire il vuoto:
Se il valore di ricerca non viene trovato, la formula non restituisce nulla (una stringa vuota).
=IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), "", VLOOKUP(E1, A2:B10, 2, FALSE))
Se #N/A restituisce un certo testo:
Se il valore di ricerca non viene trovato, la formula restituisce un testo specifico.
=IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), "Non trovato", VLOOKUP(E1, A2:B10, 2, FALSE))
Per ulteriori esempi di formule, vedere VLOOKUP con istruzione IF in Excel.
Esempio 2. IF con le funzioni SOMMA, MEDIA, MIN e MAX
Per sommare i valori delle celle in base a determinati criteri, Excel mette a disposizione le funzioni SUMIF e SUMIFS.
In alcune situazioni, la logica aziendale può richiedere l'inclusione della funzione SOMMA nel test logico di IF. Ad esempio, per restituire etichette di testo diverse a seconda della somma dei valori in B2 e C2, la formula è:
=IF(SOMMA(B2:C2)>130, "Buono", SE(SOMMA(B2:C2)>110, "Soddisfacente", "Scarso"))
Se la somma è superiore a 130, il risultato è "buono"; se superiore a 110 - "soddisfacente", se 110 o inferiore - "scarso".
In modo simile, è possibile incorporare la funzione MEDIA nel test logico di IF e restituire etichette diverse in base al punteggio medio:
=IF(MEDIA(B2:C2)>65, "Buono", IF(MEDIA(B2:C2)>55, "Soddisfacente", "Scarso"))
Supponendo che il punteggio totale sia nella colonna D, è possibile identificare i valori più alti e più bassi con l'aiuto delle funzioni MAX e MIN:
=IF(D2=MAX($D$2:$D$10), "Risultato migliore", "")
=IF(D2=MAX($D$2:$D$10), "Risultato migliore", "")
Per avere entrambe le etichette in una colonna, annidare le funzioni precedenti una nell'altra:
=IF(D2=MAX($D$2:$D$10), "Miglior risultato", IF(D2=MIN($D$2:$D$10), "Peggior risultato", ""))
Allo stesso modo, è possibile utilizzare IF con le funzioni personalizzate, ad esempio combinandolo con GetCellColor o GetCellFontColor per ottenere risultati diversi in base al colore della cella.
Inoltre, Excel offre una serie di funzioni per calcolare i dati in base alle condizioni. Per esempi dettagliati di formule, consultate le seguenti esercitazioni:
- COUNTIF - conta le cellule che soddisfano una condizione
- COUNTIFS - conta le cellule con criteri multipli
- SUMIF - somma condizionale delle celle
- SUMIFS - somma celle con criteri multipli
Esempio 3. IF con ISNUMBER, ISTEXT e ISBLANK
Per identificare testo, numeri e celle vuote, Microsoft Excel mette a disposizione funzioni speciali come ISTEXT, ISNUMBER e ISBLANK. Inserendole nei test logici di tre istruzioni IF annidate, è possibile identificare tutti i diversi tipi di dati in una sola volta:
=IF(ISTEXT(A2), "Testo", IF(ISNUMBER(A2), "Numero", IF(ISBLANK(A2), "Vuoto", "")))
Esempio 4. IF e CONCATENA
Per inserire il risultato di IF e del testo in una cella, utilizzare le funzioni CONCATENA o CONCAT (in Excel 2016 - 365) e IF insieme. Ad esempio:
=CONCATENATE("Hai eseguito ", IF(B1>100, "fantastico!", IF(B1>50, "bene", "scarso"))
=CONCAT("Hai fatto ", IF(B1>100, "fantastico!", IF(B1>50, "bene", "scarso")))
Guardando la schermata qui sotto, non c'è bisogno di spiegazioni per capire cosa fa la formula:
Formula IF ISERROR / ISNA in Excel
Le versioni moderne di Excel dispongono di funzioni speciali per intrappolare gli errori e sostituirli con un altro calcolo o un valore predefinito: IFERROR (in Excel 2007 e versioni successive) e IFNA (in Excel 2013 e versioni successive). Nelle versioni precedenti di Excel è possibile utilizzare invece le combinazioni IF ISERROR e IF ISNA.
La differenza è che IFERROR e ISERROR gestiscono tutti i possibili errori di Excel, compresi #VALUE!, #N/A, #NAME?, #REF!, #NUM!, #DIV/0! e #NULL! Mentre IFNA e ISNA sono specializzati solo negli errori #N/A.
Ad esempio, per sostituire l'errore "dividi per zero" (#DIV/0!) con un testo personalizzato, si può usare la seguente formula:
=IF(ISERROR(A2/B2), "N/A", A2/B2)
E questo è tutto ciò che ho da dire sull'uso della funzione IF in Excel. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!
Eserciziario da scaricare
Excel IF criteri multipli - esempi (file .xlsx)