In due post precedenti, Funzione logica SE e Altro esempio con la funzione SE, ho parlato di questa funzione logica dove, nella sezione test, si poteva mettere a confronto un dato con un valore di soglia, o controllo che si voglia, e specificare degli output di risposta per i risultati vero o falso, come calcoli o testo.

La situazione è piuttosto semplice poiché il nostro dato potrà  essere soltanto maggiore o minore (o maggiore o uguale o minore o uguale) al valore di controllo.

Può accadere che si abbiano più soglie, quindi il nostro dato dovrà  essere verificato per ognuna di queste e, per ogni risultato ottenuto dal controllo, delle risposte da far generare alla funzione.

Vediamo un esempio pratico.
Ipotizziamo una piccola applicazione che permette di assegnare delle valutazioni in base al punteggio conseguito da una classe di allievi. Il file in figura mostra l’applicazione.

se-nid11

Nel foglio sono riportati i nomi degli allievi (inventati sul momento) e un punteggio. Nella parte inferiore del foglio ci sono i valori di soglia che verranno utilizzati per ottenere il risultato desiderato: una valutazione testuale.

Iniziamo a comporre la funzione.

Nella cella D4 inseriremo la funzione =SE(C4<=$A$11;$C$11;…

In questa porzione di funzione ho messo a confronto il valore in C4 con A11 (attenzione ai riferimenti assoluti). Se il confronto risulta vero, la funzione dovrà  scrivere ciò che trova nella cella C11, cioè insufficiente.

Nel caso il test risulti falso si ha bisogno di ripetere un test per verificare il successivo valore di soglia 60. Quindi:

SE(C4<=$A$12;$C$12;

In questa porzione, successiva alla precedente, si è inserita una nuova funzione SE. Notare bene come sia assente il segno di uguale per la funzione nidificata poiché in una funzione se ne può inserire uno soltanto. Fanno eccezione gli operatori logici >= e <=, ma sono operatori specifici, quindi non interferiscono con il simbolo di inizio funzione.

Il controllo effettuato pone il dato a confronto con il valore di soglia 80 e se il test risulta vero, verrà  riportato ciò che è scritto in cella C12, cioè buono.

A questo punto, se il dato non è minore o uguale a 60 e non è minore o uguale a 80, dovrà  per forza essere un valore maggiore a 80, quindi farà  parte dell’ultimo range. In questo caso non c’è bisogno di una nuova funzione SE, ma verrà  specificato il risultato che si vuole: …$C$13)).

Mettiamo insieme la formula:

=SE(C4<=$A$11;$C$11;SE(C4<=$A$12;$C$12;$C$13))

In questo esempio potete vedere come una funzione SE sia stata nidificata all’interno di un’altra funzione SE. Nelle versioni precedenti di Excel era possibile nidificare un massimo di 7 funzioni totali. Nella versione 2007 è possibile, invece, nidificare fino a 64 funzioni. In questo modo gli scenari di controllo possono diventare molto sofisticati e dettagliati.

Tornando all’esempio, bisogna fare attenzione ad alcuni particolari:

  • ogni parentesi tonda aperta, deve essere chiusa alla fine della funzione
  • l’ultima funzione è quella che chiude il ciclo di test (nel caso della funzione SE nello specifico)
  • La scelta nell’uso di <= o >= dipende dall’utente, ma la funzione andrà  impostata secondo la logica suggerita dall’operatore scelto

Su quest’ultimo punto preferisco fare un esempio pratico, onde evitare confusione.
La scelta arbitraria di utilizzare minore o uguale (<=) nella funzione, costringe a verificare i valori partendo dal più basso, cioè 60. Il primo test verifica se il punteggio corrisponde ad un numero compreso tra zero e sessanta. Il secondo controllo verifica se il valore è compreso tra 61 e 80. Se questi due test sono risultati falsi, è logico che il valore sia superiore ad 81.

Lo stesso risultato si può ottenere utilizzando l’operatore >=, ma la logica della funzione andrà  invertita, cominciando la verifica dalla soglia più alta. Ecco la funzione:

=SE(C4>=$A$12;$C$13;SE(C4>=$A$11;$C$12;$C$11))

Il risultato non cambia! E’ soltanto un’impostazione diversa. Ho mostrato questo non per confondere le idee di quanti leggono questo post, ma solo perchè ognuno ha un proprio modo di ragionare, quindi potrà  adottare la soluzione che per lui è più semplice da seguire. Inoltre sperimentare è il modo migliore per prendere confidenza con concetti nuovi.

Posta elettronica certificata
Per concludere, aggiungo che questo post era specifico per la funzione SE. E’ possibile, naturalmente, nidificare funzioni diverse tra loro. Per esempio la funzione Media dentra una funzione SE, Somma dentro SE o entrambi, come la funzione SE dentro una Somma o una Media. Insomma, ogni funzione disponibile e a seconda delle esigenze di calcolo.

Se avete domande o volete chiarimenti, o lasciare soltanto un commento, mi trovate qui.