Come utilizzare le istruzioni If e Nested If in Excel

Una funzione di Excel che uso un po' nelle mie formule è la funzione SE(IF) . La funzione SE(IF) viene utilizzata per verificare una condizione logica e produrre due risultati diversi a seconda che la condizione logica restituisca VERO(TRUE) o FALSO(FALSE) .

Usiamo la tabella delle vendite di telefoni cellulari qui sotto come esempio. È possibile scaricare il file di esempio qui .

Funzione SE con condizione singola(IF Function with Single Condition)

Si consideri uno scenario in cui è necessario calcolare la commissione(Commission Fee) per ciascuna riga di vendita, a seconda di dove sono state effettuate le vendite ( colonna D(Column D) ). Se le vendite sono state effettuate negli Stati Uniti(USA) , la Commissione(Commission Fee) è del 10%, altrimenti le restanti località avranno una Commissione(Commission Fee) del 5%.

La prima formula che devi inserire nella cella F2(Cell F2) è la seguente:

=IF(D2="USA", E2*10%, E2*5%)

Ripartizione della formula:

  1. =IF( – Il “=” indica l'inizio di una formula nella cella e SE(IF) è la funzione excel che stiamo usando.
  2. D2=”USA” – Test logico(Logical) che eseguiamo (cioè se i dati nella colonna D2 sono USA ).
  3.  E2*10%Risultato(Result) che verrà restituito dalla formula se il test logico iniziale risulta TRUE (cioè il valore nella colonna D2 è USA ).
  4. E2*5%Risultato(Result) che verrà restituito dalla formula se il test logico iniziale risulta FALSO(FALSE) (cioè il valore nella colonna D2 NON(NOT) è USA ).
  5. )Parentesi(Closing) chiusa che indica la fine della formula.

Quindi puoi copiare la formula dalla cella F2(Cell F2) al resto delle righe nella colonna F(Column F) e calcolerà la commissione(Commission Fee) per ciascuna riga, del 10% o del 5% a seconda che il test logico IF restituisca (IF)VERO(TRUE) o FALSO(FALSE) su ciascuna riga.

SE Funzione con condizioni multiple(IF Function with Multiple Conditions)

E se le regole fossero un po' più complicate in cui è necessario testare più di una condizione logica con risultati diversi restituiti per ciascuna condizione?

Excel ha una risposta a questo! Possiamo combinare più funzioni IF all'interno della stessa cella, che a volte è nota come Nested IF .

Considera uno scenario simile in cui le commissioni(Commissions) sono diverse per ciascuna sede di vendita(Sales Location) come di seguito:

  • USA 10%
  • Australia 5%
  • Singapore 2%

Nella cella F2(Cell F2) (che in seguito verrà copiata nel resto delle righe nella stessa colonna F), inserisci la formula come segue:

=IF(D2="USA",E2*10%,IF(D2="Australia",E2*5%,E2*2%))

Ripartizione della formula:

  1. =IF(Inizio(Beginning) della formula utilizzando un'istruzione SE
  2. D2=”USA”Primo(First) test logico che eseguiamo (cioè se i dati nella colonna D2 sono USA ).
  3.  E2*10%Risultato(Result) che verrà restituito dalla formula se il test logico iniziale risulta TRUE (cioè il valore nella colonna D2 è USA ).
  4. IF(D2=”Australia”,E2*5%,E2*2%) – seconda istruzione IF di Excel(Excel IF) che verrà valutata se il test logico iniziale risulta FALSO(FALSE) (ovvero il valore nella colonna D2 NON è (NOT) USA ). Questa è una sintassi simile di " Funzione IF con condizione singola"(IF Function with Single Condition”) discussa in precedenza in questo articolo in cui se il valore nella cella (Cell) D2 è Australia , verrà restituito il risultato di E2*5%Altrimenti, se il valore non è Australia , la funzione restituirà il risultato di E2*2%.
  5. )Parentesi(Closing) chiusa che indica la fine della formula per la prima funzione SE(IF) .

Poiché Excel valuterà la formula da sinistra a destra, quando viene soddisfatto un test logico (es. D2=“USA”, la funzione si fermerà e restituirà il risultato, ignorando ogni ulteriore test logico successivo (es. D2=“Australia” . )

Quindi se il primo test logico restituisce FALSE (cioè la posizione non è USA ), continuerà a valutare il secondo test logico. Se anche il secondo test logico restituisce FALSE (ovvero la posizione non è l'Australia(Australia) ), non è necessario eseguire ulteriori test poiché sappiamo che l'unico valore possibile sulla cella D2(Cell D2) è Singapore , quindi dovrebbe restituire un risultato di E2*2% .

 Se preferisci per chiarezza, puoi aggiungere il terzo test logico IF(D2=”Singapore”, “value if TRUE” , “value if FALSE”) . Pertanto, la formula estesa completa è la seguente:

=IF(D2="USA",E2*10%,IF(D2="Australia",E2*5%,IF(D2="Singapore",E2*2%)))

Come accennato in precedenza, quanto sopra restituirà lo stesso risultato della formula iniziale che avevamo.

=IF(D2="USA",E2*10%,IF(D2="Australia",E2*5%,E2*2%))

Consigli veloci(Quick Tips)

  • Per ogni singola funzione IF( , è necessario che ci sia una parentesi tonda di apertura e chiusura. Quando ci sono tre funzioni IF come in uno degli esempi precedenti, la formula avrà bisogno di tre parentesi di chiusura ")))" , ciascuna contrassegnando la fine di una corrispondente istruzione IF( di apertura .
  • Se non specifichiamo il secondo esito del test logico (quando il test logico è risultato FALSE ), il valore di default assegnato da Excel sarà il testo “FALSE”. Quindi la formula =IF(D2=”USA”,E2*10%) restituirà il testo “FALSE” se D2 non è “USA” .
  • Se hai diversi test logici, ciascuno con il proprio risultato diverso, puoi combinare/nidificare la funzione SE(IF) più volte, una dopo l'altra, in modo simile all'esempio sopra.



About the author

Sono uno sviluppatore di software freeware e sostenitore di Windows Vista/7. Ho scritto diverse centinaia di articoli su vari argomenti relativi al sistema operativo, inclusi suggerimenti e trucchi, guide di riparazione e best practice. Offro anche servizi di consulenza in ufficio attraverso la mia azienda, Help Desk Services. Ho una profonda conoscenza del funzionamento di Office 365, delle sue funzionalità e di come utilizzarle nel modo più efficace.



Related posts