La funzione SE di Excel a supporto di modelli di calcolo interattivi

Le funzioni logiche di Microsoft Excel sono indispensabili quando si inseriscono nel foglio di calcolo formule che dovranno essere calcolate soltanto al verificarsi di certi eventi, o che devono prendere in considerazione solo valori che soddisfano determinati presupposti, ma sono altrettanto utili per creare dei modelli “interattivi”, ovvero modelli che modificano certi dati (valori o etichette) al verificarsi o meno di certe condizioni. Analizziamo, con opportuni esempi, come si utilizza la funzione SE nella sua veste semplice o nidificata o con l’aggiunta degli operatori logici forniti dall’applicativo.

La funzione SE

La funzione SE, che appartiene alla categoria LOGICHE, si usa per eseguire dei test condizionali su valori e formule; la sua sintassi è:

=SE(test;se_vero;se_falso)

Il primo argomento della funzione pone una condizione (test); se la condizione si verifica, nella cella verrà restituito il secondo argomento (se_vero), altrimenti verrà restituito il terzo (se_falso). Il test, che può utilizzare qualsiasi operatore di confronto (minore di, maggiore o uguale a, diverso da, …), generalmente è una formula logica o un riferimento ad una cella o a un intervallo contenente una formula logica.

Ciò che la cella deve restituire può essere un dato, un riferimento di cella, il risultato di una formula o di una funzione, una stringa di testo, o anche una cella vuota: una stringa di testo si digita racchiudendola tra virgolette, mentre una cella vuota viene restituita se si digitano le doppie virgolette (“”). Da notare che tutti gli argomenti della funzione vengono scritti senza essere preceduti dal segno uguale (=).

Due semplici esempi chiariranno l’utilizzo della funzione.

Esempio 1

La cella A4 contiene il risultato di un quiz; supponiamo di voler inserire nella cella A5 l’etichetta “superato” se il valore della cella A4 è maggiore o uguale a 6, mentre l’etichetta “da rifare” se il valore della cella A4 è minore di 6.

Se utilizziamo come “test” A4>=6, allora “se_vero” corrisponde all’etichetta “superato”, mentre “se_falso” corrisponde all’etichetta “da rifare”: la funzione in A5 sarà, pertanto,

=SE(A4>=6;”superato”;”da rifare”)

Esempio 2

Supponiamo di voler inserire nella cella A3 il valore della cella A1 se questo è maggiore di 100, altrimenti, in caso contrario, inserire il valore della cella A2 moltiplicato per la cella B2.

Il “test” è A1>100, “se_vero” corrisponde ad un riferimento alla cella A1, mentre “se_falso” corrisponde alla formula A2*B2: la funzione da inserire in A3 sarà, pertanto,

=SE(A1>100;A1;A2*B2)

Da notare che si poteva utilizzare come “test” anche A1<=100, ma la funzione doveva essere modificata in:

=SE(A1<=100;A2*B2;A1)

La funzione SE nidificata

Per permettere all’utente di creare test più elaborati, è prevista la possibilità di nidificare fino a sette funzioni SE. La procedura, a prima vista complicata, non è proibitiva: bisogna fare solo attenzione a ordinare (secondo un ordine crescente o decrescente) le condizioni ricordandosi che queste ultime verranno testate a partire da sinistra verso destra, e ad utilizzare correttamente gli operatori di confronto, la punteggiatura e le parentesi.

Se si incontrano difficoltà può essere utile agire per gradi, ovvero creare de funzioni più interne e poi inserirle in quelle più esterne.

Proviamo ora a risolvere il seguente problema.

Esempio 3

Supponiamo che un alunno abbia prodotto un prospetto che consenta di inserire i voti nelle celle A1:A8 e calcolarne la media nella cella A9; supponiamo, inoltre, che voglia quantificare in un giudizio la media ottenuta, inserendo nella cella A10 l’etichetta “insufficiente” se la media dei voti riportati è minore di 6, “discreto” se la media è compresa tra 6 e 8, e “buono” se la media è superiore a 8. Quale dovrà essere la formula da inserire in A10?

Potremmo pensare di impartire ad Excel le seguenti direttive: verifica se il valore della cella A9 è minore di 6; nel caso affermativo trascrivi l’etichetta “insufficiente”, altrimenti, se ciò non si avvera, verifica se il valore della cella A9 è minore o uguale a 8; nel caso affermativo trascrivi l’etichetta “discreto”, altrimenti, se ciò non si avvera (e quindi il valore sarà sicuramente superiore a 8), trascrivi l’etichetta “buono”.

Per farlo dobbiamo utilizzare la seguente funzione nidificata:

=SE(A9<6;”insufficiente”;SE(A9<=8;”discreto”;”buono”))

In alternativa, si poteva utilizzare una funzione SE che verificasse le condizioni in ordine decrescente:

=SE(A9>8;”buono”;SE(A9>=6;”discreto”;”insufficiente”))

Fino ad ora abbiamo nidificato la funzione SE due volte. Ma continuiamo nell’esempio.

Esempio 3 bis

L’alunno si accorge che, se non ci sono voti nelle celle A1:A8, la media è pari a zero e pertanto, poiché tale valore è inferiore a 6, nella cella A10 compare la scritta “insufficiente”; poiché è scaramantico, vuole far comparire il giudizio solamente se il prospetto presenta qualche voto, quindi abbia almeno un valore (nella cella A1). Come potrà integrare la formula contenuta in A10?

Una possibile soluzione è quella di impartire all’applicazione la seguente direttiva: verifica se la cella A1 è vuota e, in caso affermativo, lascia la cella A10 vuota, mentre, in caso negativo, eseguire la funzione precedente. La formula da inserire in A10 sarà pertanto:

=SE(A1=””;””;SE(A9<6;”insufficiente”;SE(A9<=8;”discreto”;”buono”)))

Una soluzione alternativa poteva essere la seguente: verifica se la cella A1 è piena e, in caso affermativo, trascrivi la funzione precedente, altrimenti inserisci una etichetta vuota:

=SE(A1<>””;SE(A9<6;”insufficiente”;SE(A9<=8;”discreto”;”buono”));””)

Come si può osservare, scindendo il problema per gradi, abbiamo utilizzato senza difficoltà ben tre funzioni SE!

Le funzioni E e O

La funzione E e la funzione O, anch’esse appartenenti alla categoria LOGICHE, consentono di testare simultaneamente più condizioni, e quindi forniscono alla funzione SE un valido aiuto nell’esprimere tutte le sue potenzialità.

La funzione E considera verificato un evento se TUTTE le condizioni sono soddisfatte, mentre la funzione O considera verificato un evento se ALMENO UNA condizione è soddisfatta; le sintassi sono:

=E(condizione1;condizione2;…)
=O(condizione1;condizione2;…)

Vediamo qualche semplice esempio per chiarire l’utilizzo di queste funzioni abbinate alla funzione SE.

Esempio 4

Nella cella A5 vogliamo inserire la scritta “test superato” se almeno uno dei risultati delle celle A3 e A4 è maggiore o uguale a 6, o nel caso contrario, la stringa “rifare test”.

Nella cella A5 potremmo utilizzare la seguente funzione:

=SE(O(A3>=6;A4>=6);”test superato”;”rifare test”)

Esempio 5

Se il valore della cella F1 è compreso tra 1 e 10, nella cella F3 inseriamo la moltiplicazione tra questo valore e quello contenuto nella cella F2, altrimenti inseriamo il valore 0.

Nella cella F3 potremmo utilizzare la seguente funzione:

=SE(E(F1>1;F1<10);F1*F2;0)

Esempio 6

Nella cella B4 vogliamo inserire l’etichetta “calcolo esatto” se i valori delle celle B1 B2 e B3 sono uguali, altrimenti l’etichetta “calcolo errato”.

Nella cella B4 potremmo utilizzare la seguente funzione:

=SE(E(B1=B2;B2=B3);”calcolo esatto”;”calcolo errato”)

Esempio 7

Nella cella B10 vogliamo inserire la moltiplicazione tra le celle B1 e la cella B2 se la cella A1 o la cella A2 contengono dei valori compresi tra 50 e 100, altrimenti solo il valore della cella B1.

Nella cella B10 potremmo utilizzare la seguente funzione:

=SE(O(E(A1>50;A1<100);E(A2>50;A2<100));B1*B2);B1)