Oh, questo è un argomento che mi piace davvero e, fra l’altro, ammetto di usare queste funzioni logiche davvero ogni giorno.
Direi che è un argomento chiave, nella mia mente un utente base di Excel ha due momenti cardine che ne certificano il passaggio all’età adulta: la funzione CERCA.VERT (ne parleremo nel capitolo 12) e la funzione SE.
FUNZIONE SE
In questo capitolo iniziamo dalla funzione SE, il cui concetto è semplicissimo: vogliamo che Excel faccia succedere una determinata cosa se si verifica una determinata condizione, altrimenti deve far succedere un’altra cosa.
Facciamo un esempio davvero facile che dissiperà ogni dubbio.
Inseriamo nella cella A1 il numero 7 e nella cella B1 il numero 5. Vogliamo sapere se il primo numero è maggiore o minore del secondo. La funzione logica SE è perfetta per questo compito; accetta tre argomenti e la sua sintassi è:
=SE(test;[vero];[falso])
- 1. “test” è la domanda che vogliamo fare a Excel, la condizione che vogliamo verificare. Nell’esempio, se il valore contenuto nella cella A1 è maggiore di quello contenuto nella cella B1
- 17. “vero” è ciò che Excel deve fare in quella cella se la condizione verificata è vera. Nell’esempio deve mostrare il testo “maggiore”
- 18. “falso” è ciò che Excel deve fare in quella cella se la condizione verificata è falsa. Nell’esempio deve mostrare il testo “minore”
Generalmente il secondo e il terzo argomento vengono indicati dall’help in linea fra parentesi quadre ovvero come argomenti facoltativi. Il mio consiglio è di considerare tutti gli argomenti della SE come obbligatori: ti costringe a lavorare in modo più ordinato e si evitano risultati indesiderati.
Rappresentiamo adesso con due semplici schemi la situazione: a sinistra la sintassi della funzione SE e a destra ciò che vogliamo fare nell’esempio. Ogni rombo è ovviamente una domanda, ogni rettangolo è una risposta ovvero un risultato.
Vediamo quindi in Excel che la funzione inserita nella cella A2 sarà =SE(A1>B1;”maggiore”;”minore”) ovviamente rispettando in modo rigoroso l’ordine degli argomenti test;se_vero;se_falso.
Le virgolette sono necessarie in quanto stiamo dicendo a Excel di visualizzare nella cella un testo. Qualora volessimo invece fargli effettuare un’operazione come una somma, dovremmo omettere le virgolette. Se per esempio scriviamo =SE(A1>B1;”maggiore”;A1+B1), stiamo dicendo a Excel che se il valore contenuto in A1 è maggiore di quello contenuto in B1 dovrà scrivere “maggiore” altrimenti dovrà visualizzare il risultato della somma di A1 e B1.
Il “limite” della funzione SE è che può rispondere a una sola domanda e talvolta questo è un problema. Tornando al nostro esempio, non abbiamo infatti alcun modo di controllare se i due numeri sono uguali perché si tratta di una terza risposta che non può essere in alcun modo presa in considerazione nella dicotomia vero/falso. Come procedere, allora?
Una soluzione può essere quella di nidificare una funzione SE dentro a una funzione SE. Esatto, è possibile nidificare una funzione in un’altra, in pratica la seconda funzione diventa uno degli argomenti della prima.
La cosa interessante è che potete farlo a più livelli, modello Inception… E i livelli ormai sono tanti, davvero tanti, non credo che esista un essere umano in grado di sfruttarli: ben sessantaquattro.
Come si nota dallo schema sopra, questo sistema permette di ottenere tre risposte poiché la seconda domanda (Test2) viene fatta quando risposta alla prima domanda (Test1) ha dato esito negativo e quindi la seconda funzione SE diventa l’argomento “se_falso” della prima funzione SE. Nello schema seguente ho ipotizzato due domande in successione che permettano di capire quale sia il rapporto tra A1 e B1.
Lo schema potrebbe essere letto così: il contenuto della cella A1 è maggiore del contenuto della cella B1? Se questa cosa è vera mi devi scrivere la parola “MAGGIORE” ma se questa cosa non è vera devi chiederti se il contenuto della cella A1 è minore del contenuto della cella B1; se questa cosa è vera mi devi scrivere la parola “MINORE” ma se questa cosa non è vera (visto che maggiore non è e minore nemmeno) mi devi scrivere la parola “UGUALI”.
Traducendolo “in sintassi Excel” il risultato sarebbe questo:
=SE(test1;[vero1];SE(test2;[vero2];[falso2]))
Applicandolo al nostro esempio precedente otteniamo il risultato desiderato: le due funzioni nidificate possono mostrare tre diversi risultati.
=SE(A1>B1;”maggiore”;SE(A1<B1;”minore”;”uguali”))
Attenzione: ricordarsi di chiudere bene entrambe le parentesi aperte sennò c’è riscontro.
FUNZIONE E
Senza appesantire troppo la situazione, voglio fare un ultimo esempio relativo alle funzioni logiche accennando alla funzione E per nidificarla nel test di una funzione SE.
Il caso è questo: nella cella A4 vogliamo visualizzare il testo “Tutti ok!” solo ed esclusivamente se il contenuto delle due celle A2 e B2 è “ok”. In ogni altro caso (solo una delle due celle o nessuna delle due celle contiene il testo “ok”) la cella A4 deve rimanere vuota.
La sintassi di queste due funzioni nidificate dovrebbe essere la seguente:
=SE(E(test1;test2);[vero];[falso])
dove “test1” e “test2” sono le due condizioni che devono essere entrambe vere per ottenere il risultato “vero” mentre “falso” sarà ciò che avverrà in tutti gli altri casi. Ecco in Excel come metterla in pratica:
=SE(E(A2=“ok”;B2=“ok”);”Tutti ok!”;“”)
Quelle virgolette che non contengono niente nell’argomento “falso” sono il modo di dire a Excel di non fare nulla.
Mi pare che abbiamo detto tutto, magari nel prossimo manabile inserirò un altro capitolo in cui parleremo delle funzioni logiche in modo più approfondito. Ma pensiamo al prossimo capitolo, un’altra delle mie fissazioni: le funzioni di testo.
Tratto da “Manabile Semiserio di Excel – Parte Prima per principianti“