Sommario
L'esercitazione spiega come utilizzare IF multipli in Excel e fornisce un paio di esempi di formule If annidate per le attività più comuni.
Se vi chiedessero quale funzione di Excel usate più spesso, quale sarebbe la vostra risposta? Nella maggior parte dei casi è la funzione IF di Excel. Una normale formula If che verifica una singola condizione è molto semplice e facile da scrivere. Ma se i vostri dati richiedono test logici più elaborati con condizioni multiple? In questo caso, potete includere diverse funzioni IF in un'unica formula, e queste If multipleLe dichiarazioni sono chiamate IF annidato di Excel Il vantaggio principale dell'istruzione If annidata è che consente di controllare più di una condizione e di restituire valori diversi a seconda dei risultati di tali controlli, il tutto in un'unica formula.
Microsoft Excel ha dei limiti alla livelli di IF annidati In Excel 2003 e versioni successive erano consentiti fino a 7 livelli, mentre in Excel 2007 e versioni successive è possibile annidare fino a 64 funzioni IF in una formula.
Più avanti in questo tutorial, troverete un paio di esempi di If annidati in Excel e una spiegazione dettagliata della loro sintassi e logica.
Esempio 1. Formula IF classica annidata
Ecco un tipico esempio di Excel If con condizioni multiple. Supponiamo di avere un elenco di studenti nella colonna A e i loro punteggi d'esame nella colonna B e di voler classificare i punteggi con le seguenti condizioni:
- Eccellente: oltre 249
- Buono: tra 249 e 200, incluso
- Soddisfacente: tra 199 e 150, incluso
- Poveri: meno di 150
Ora scriviamo una funzione IF annidata basata sui criteri di cui sopra. È considerata una buona pratica iniziare con la condizione più importante e mantenere le funzioni il più semplici possibile. La nostra formula IF annidata di Excel è la seguente:
=IF(B2>249, "Eccellente", IF(B2>=200, "Buono", IF(B2>150, "Soddisfacente", "Scarso"))
E funziona esattamente come dovrebbe:
Comprendere la logica IF annidata di Excel
Ho sentito alcune persone dire che Excel multiple If le fa impazzire :) Provate a guardarlo da un'altra angolazione:
La formula indica a Excel di valutare il parametro test_logico della prima funzione IF e, se la condizione è soddisfatta, restituisce il valore fornito nella funzione valore_se_vero Se la condizione della prima funzione If non è soddisfatta, si verifica la seconda istruzione If e così via.
SE( controllare se B2>=249, se vero - restituire "Eccellente", oppureSE( controllare se B2>=200, se vero - restituire "Buono", oppure
SE( controllare se B2>150, se vero - restituire "Soddisfacente", se falso -
restituire "povero"))
Esempio 2. If multipli con calcoli aritmetici
Ecco un'altra attività tipica: il prezzo unitario varia a seconda della quantità specificata e l'obiettivo è scrivere una formula che calcoli il prezzo totale per qualsiasi quantità di elementi inseriti in una cella specifica. In altre parole, la formula deve verificare più condizioni ed eseguire calcoli diversi a seconda dell'intervallo di quantità in cui rientra la quantità specificata:
Unità Quantità | Prezzo per unità |
Da 1 a 10 | $20 |
Da 11 a 19 | $18 |
Da 20 a 49 | $16 |
Da 50 a 100 | $13 |
Oltre 101 | $12 |
La logica è la stessa dell'esempio precedente, con l'unica differenza che si moltiplica la quantità specificata per il valore restituito dagli IF annidati (cioè il prezzo unitario corrispondente).
Supponendo che l'utente inserisca la quantità nella cella B8, la formula è la seguente:
=B8*IF(B8>=101, 12, IF(B8>=50, 13, IF(B8>=20, 16, IF( B8>=11, 18, IF(B8>=1, 20, "")))))
Il risultato sarà simile a questo:
Come si capisce, questo esempio dimostra solo l'approccio generale e si può facilmente personalizzare questa funzione If annidata in base alle proprie esigenze.
Ad esempio, invece di inserire i prezzi nella formula, è possibile fare riferimento alle celle che contengono tali valori (celle da B2 a B6), consentendo agli utenti di modificare i dati di origine senza dover aggiornare la formula:
=B8*IF(B8>=101,B6, IF(B8>=50, B5, IF(B8>=20, B4, IF( B8>=11, B3, IF(B8>=1, B2, "")))))
Oppure, è possibile includere una o più funzioni IF aggiuntive che fissano un limite superiore, inferiore o entrambi i limiti dell'intervallo di quantità. Quando la quantità è al di fuori dell'intervallo, la formula visualizzerà un messaggio di "fuori intervallo". Ad esempio:
=IF(OR(B8>200,B8=101,12, IF(B8>=50, 13, IF(B8>=20, 16, IF( B8>=11, 18, IF(B8>=1, 20, ""))))))
Le formule IF annidate descritte sopra funzionano in tutte le versioni di Excel. In Excel 365 e Excel 2021, è possibile utilizzare anche la funzione IFS per lo stesso scopo.
Gli utenti avanzati di Excel che hanno familiarità con le formule di matrice possono utilizzare questa formula che, in pratica, fa la stessa cosa della funzione IF annidata discussa in precedenza. Sebbene la formula di matrice sia molto più difficile da comprendere, per non parlare della scrittura, ha un vantaggio indiscutibile: si specifica l'intervallo di celle che contiene le condizioni, invece di fare riferimento a ciascuna condizione individualmente. Questo rendeLa formula è più flessibile e se gli utenti modificano una delle condizioni esistenti o ne aggiungono una nuova, sarà sufficiente aggiornare un singolo riferimento all'intervallo nella formula.
IF annidati in Excel - suggerimenti e trucchi
Come avete appena visto, l'uso di IF multipli in Excel non è una scienza missilistica. I seguenti suggerimenti vi aiuteranno a migliorare le formule IF annidate e a prevenire gli errori più comuni.
Limiti IF annidati
In Excel 2007 - Excel 365 è possibile annidare fino a 64 funzioni IF. Nelle versioni precedenti di Excel 2003 e inferiori, è possibile utilizzare fino a 7 funzioni IF annidate. Tuttavia, il fatto che sia possibile annidare molti IF in una formula non significa che si debba farlo. Tenete presente che ogni livello aggiuntivo rende la formula più difficile da comprendere e da risolvere. Se la formula ha troppi livelli annidati, si puòottimizzarlo utilizzando una di queste alternative.
L'ordine delle funzioni IF annidate è importante
La funzione IF annidata di Excel valuta i test logici nell'ordine in cui appaiono nella formula e, non appena una delle condizioni viene valutata VERO, le condizioni successive non vengono verificate. In altre parole, la formula si ferma dopo il primo risultato VERO.
Con B2 uguale a 274, la formula IF annidata qui sotto valuta il primo test logico (B2>249) e restituisce "Eccellente" perché il test logico è VERO:
=IF(B2>249, "Eccellente", IF(B2>=200, "Buono", IF(B2>150, "Soddisfacente", "Scarso"))
Ora invertiamo l'ordine delle funzioni IF:
=IF(B2>150, "Soddisfacente", IF(B2>200, "Buono", IF(B2>249, "Eccellente", "Scarso"))
La formula verifica la prima condizione e, poiché 274 è maggiore di 150, anche il risultato di questo test logico è VERO. Di conseguenza, la formula restituisce "Soddisfacente" senza verificare altre condizioni.
Cambiando l'ordine delle funzioni IF, il risultato cambia:
Valutare la logica della formula
Per osservare passo dopo passo il flusso logico della formula IF annidata, si può utilizzare la funzione Valutare la formula, situata nella finestra di dialogo Formula nella scheda Formula di revisione L'espressione sottolineata è la parte attualmente in fase di valutazione e facendo clic sul pulsante Valutare Il pulsante mostra tutte le fasi del processo di valutazione.
Ad esempio, la valutazione del primo test logico della formula IF nidificata mostrata nella schermata seguente avverrà come segue: B2>249; 274>249; TRUE; Excellent.
Bilanciare le parentesi delle funzioni IF annidate
Uno dei problemi principali degli IF annidati in Excel è la corrispondenza delle coppie di parentesi. Se le parentesi non corrispondono, la formula non funziona. Fortunatamente, Microsoft Excel offre un paio di funzioni che possono aiutare a bilanciare le parentesi quando si modifica una formula:
- Se si dispone di più di una serie di parentesi, le coppie di parentesi sono ombreggiate con colori diversi, in modo che la parentesi di apertura corrisponda a quella di chiusura.
- Quando si chiude una parentesi, Excel evidenzia brevemente la coppia corrispondente. Lo stesso effetto di grassetto, o "sfarfallio", viene prodotto quando ci si sposta all'interno della formula utilizzando i tasti freccia.
Per ulteriori informazioni, vedere Abbinare le coppie di parentesi nelle formule di Excel.
Trattare testo e numeri in modo diverso
Quando si costruiscono i test logici delle formule IF annidate, ricordate che il testo e i numeri devono essere trattati in modo diverso: racchiudete sempre i valori di testo tra doppi apici, ma non mettete mai gli apici intorno ai numeri:
Giusto: =IF(B2>249, "Eccellente",...)
Sbagliato: =IF(B2>"249", "Excellent",…)
Il test logico della seconda formula restituirà FALSO anche se il valore in B2 è maggiore di 249. Perché? Perché 249 è un numero e "249" è una stringa numerica, che sono due cose diverse.
Aggiungete spazi o interruzioni di riga per facilitare la lettura degli IF annidati.
Quando si costruisce una formula con più livelli IF annidati, si può rendere più chiara la logica della formula separando le diverse funzioni IF con spazi o interruzioni di riga. Excel non si preoccupa della spaziatura extra in una formula, quindi non ci si può preoccupare di rovinarla.
Per spostare una determinata parte della formula alla riga successiva, è sufficiente fare clic nel punto in cui si desidera inserire un'interruzione di riga e premere Alt + Invio. Quindi, espandete la barra della formula quanto necessario e vedrete che la formula IF annidata è diventata molto più facile da capire.
Alternative all'IF annidato in Excel
Per aggirare il limite di sette funzioni IF annidate in Excel 2003 e versioni precedenti e per rendere le formule più compatte e veloci, considerate le seguenti alternative alle funzioni IF annidate di Excel.
- Per verificare più condizioni e restituire valori diversi in base ai risultati dei test, è possibile utilizzare la funzione SCELTA anziché gli IF annidati.
- Creare una tabella di riferimento e utilizzare VLOOKUP con corrispondenza approssimativa come mostrato in questo esempio: VLOOKUP invece di IF annidato in Excel.
- Utilizzate IF con le funzioni logiche OR / AND, come dimostrato in questi esempi.
- Utilizzate una formula di array come mostrato in questo esempio.
- Combinare più istruzioni IF utilizzando la funzione CONCATENA o l'operatore di concatenazione (&). Un esempio di formula è disponibile qui.
- Per gli utenti esperti di Excel, la migliore alternativa all'uso di più funzioni IF annidate potrebbe essere la creazione di una funzione personalizzata del foglio di lavoro utilizzando VBA.
Ecco come si usa una formula If in Excel con condizioni multiple. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana.
Eserciziario da scaricare
Dichiarazioni If annidate di Excel (file .xlsx)