edutecnica

Funzione logica SE()

     

La funzione logica SE() è una funzione tra le più usate nel foglio elettronico Excel, tramite questa istruzione il programma esegue la valutazione di una condizione logica posta ed in base al risultato di questa operazione viene intrapresa una determinata azione piuttosto che un'altra. E' paragonabile al costrutto "if" presente in tutti i linguaggi di programmazione e riveste una notevole importanza in quanto mette in condizione il calcolatore di prendere decisioni.

Tramite la funzione SE() viene eseguito un test condizionale su valori o formule. Confrontando i dati di una o più celle, la funzione, può fornire un risultato oppure un altro a seconda che la condizione posta inizialmente sia vera o falsa.

Nei problemi affrontati con Excel, capita spesso di dover eseguire azioni scegliendo tra due alternative in base al verificarsi o meno di una determinata condizione. Per fare un esempio, nel calcolare il prezzo di un bene a volte si deve applicare un'aliquota IVA piuttosto che un'altra a seconda della categoria merceologica; oppure nel calcolo dell'anzianità contributiva occorre distinguere se un lavoratore è maschio o femmina e così via. Il problema può essere riassunto nel seguente schema concettuale:

SE si verifica la condizione C,
ALLORA viene eseguita l'azione A,
ALTRIMENTI viene eseguita l'azione B.

La condizione può essere una sola come nei casi più semplici, oppure essere il risultato logico di più condizioni tra loro legate; in ogni caso il valore finale della condizione può essere soltanto VERO oppure FALSO.

La sintassi della funzione SE() è la seguente:

SE(test;se_vero;se_falso)

test : è la condizione iniziale da verificare; può fornire un risultato VERO se la condizione è rispettata o FALSO al contrario.
se_vero : è il numero, la stringa o la formula da calcolare se la condizione iniziale è vera.
se_falso : è il numero, la stringa o la formula da calcolare se la condizione iniziale è falsa.

esempi inclusi nel file se.xls.

=SE(B7>20;"OK";"INCREMENTARE")

che può essere interpretata come: se il valore contenuto la cella B7 è maggiore di20 nella cella attuale inserisci la stringa "OK", altrimenti nella cella attuale inserisci "INCREMENTARE".

N.B. in Excel le stringhe contenute nelle formule vanno sempre messe tra virgolette, al contrario dei numeri.

Bisogna dire che la digitazione della formula non è necessaria per tutte le celle della colonna (evidenziata in verde); un'operazione di copia/incolla ( o di trascinamento automatico) della prima formula inserita su tutte le altre celle, realizzerà il prospetto che si vede.

=SE(E6>30;B6*12%;"-")

che significa: se nella cella E6 c'è un valore maggiore di 30 nella cella attuale inserisci il 12% del valore contenuto in B6, altrimenti inserisci la stringa costituita da un unico carattere "-".

=SE(B7<200000;5%;10%)

che significa: se nella cella B7 c'è un valore minore di 200.000 nella cella attuale inserisci il valore 5%, altrimenti inserisci 10% .

Condizioni SE() nidificate

     

Non tutti i problemi si possono affrontare con delle condizioni così semplici. Per esempio, non è detto che la scelta possa avvenire solo su una condizione da verificare vera o falsa: può essere necessario scegliere tra più condizioni con nel successivo caso. Il foglio4 del file allegato si nota una serie di prodotti con a fianco il loro quantitativo a magazzino. Nella colonna indicata con "Azione" intendiamo scrivere la stringa "ORDINA" se il quantitativo del prodotto corrispondente è inferiore a 20, vogliamo scrivere "SVENDI" se il quantitativo è maggiore di 40; se la quantità è compresa tra 20 e 40 inclusi nella cella dovrà essere inserito il singolo carattere "-". In cella B2 si nota la formula:

=SE(B2<20;"ORDINA";SE(B2>40;"SVENDI";"-"))

Si tratta di due funzioni SE() inserite una nell'altra.
Dato che le alternative sono tre sono necessarie due condizioni soltanto (una in meno delle alternative), perché l'ultima condizione è implicita nella risposta precedente.
Può essere utile mostrare il diagramma di flusso seguente che mostra il ragionamento seguito per costruire la formula.

Nei casi pratici si possono presentare anche più di tre alternative e il problema si risolve sempre inserendo funzioni SE() come terzo argomento di una precedente funzione SE().
In questi casi si usa il termine di funzioni nidificate.

Certo le formule in casi come questi possono diventare molto lunghe e complicate da scrivere ma soprattutto possono facilmente generare errori. Il consiglio è di provare a scrivere la formula sulla carta, verificando che tutte le parentesi aperte abbiano la corrispondente parentesi chiuse.

La condizione di test presente nella funzione SE() restituisce sempre un valore booleano di VERO o FALSO, quindi all'interno del test sono ammessi oltre che gli operatori relazionali.

=      uguale
<>   diverso
>     maggiore
<     minore
>=   maggiore o uguale
<=    minore o uguale

anche operatori logici che nel caso di Excel sono rappresentati dalle funzioni booleane:

E()        (And, &&)
O()        (Or, ||)
NON()   (Not, !=)

Un esempio di questa applicazione è riportata nel Foglio5 dove si simula il lancio di due dadi; nella cella dell'esito bisogna scrivere "PARI" se entrambi i dadi sono pari, scrivere "DISPARI" se entrambi i dadi sono dispari, mentre si scrive DP se un dado è dispari e l'altro è pari.

La prima cella ad implementare la formula sarà la C2 in cui scriveremo

=SE(E(RESTO(A2;2)=0;RESTO(B2;2)=0);"PARI"; SE(E(RESTO(A2;2)<>0;RESTO(B2;2)<>0);"DISPARI";"DP"))

La prima parte della formula verifica se entrambi i dati estratti siano pari; se ciò si verifica verra scritto "PARI" nella cella in cui è inserita la formula. Se ciò non si verifica si passa alla seconda parte della formula che verifica se entrambi i dadi siano dispari; se ciò si verifica verra scritto "DISPARI" altrimenti verrà scritto "DP".