In questa guida daremo un occhiata alle funzioni Se basilari e avanzate, nidificate, e alla nuovissima funzione Più Se, disponibile solo per 365 e 2019, mi spiace.
Una delle funzioni più utilizzate in Excel è la Funzione Se, con le sue varianti si intende. La sua utilità e la sua applicazione sono piuttosto vaste, ed è anche merito della sua semplicità. All’inizio impostare una Se (o una IF, come si dice in inglese) è difficile. Dopo che hai compreso il meccanismo non avrai problemi.
La Funzione Se è una funzione logica che essenzialmente permette all’utente di specificare cosa eseguire in base alla conformità o non-conformità di un determinato criterio (o di una serie e criteri).
Il risultato dipende dall’esito positivo o negativo di un test logico. Dobbiamo immaginarlo seguendo questa “formula”: se è vero, allora fai questo, in caso contrario (o meglio, se è falso) fai quest’altro. Tutto è così semplice e chiaro dopo aver fatto pratica. Chi ha già fatto programmazione non ha difficoltà, ma chi si approccia per la prima volta può sicuramente nutrire qualche dubbio.
Ciò che rende davvero eccezionale la funzione SE è il fatto che possa essere nidificata (o annidata) e combinata con altre funzioni per creare una flessibilità tale da andare incontro a molte esigenze. Ciò non vuol dire che la funzione SE sia esclusivamente limitata ai sui limiti tecnici, ma che essa è limitata dalla capacità di ragionare e dalle abilità creative dell’utente stesso. Quindi aguzza le tue capacità analitiche, logiche e soprattutto creative perché questa funzione può darti la libertà che stavi cercando.
In questo esempio utilizzeremo la versione di Excel 2019 (365 quindi gli aggiornamenti vanno in automatico) per Windows.
Indice:
- Vero o falso
- Vero o falso Booleano
- Testare e controllare dati numerici
- Funzioni Se Nidificate
- Quanto non conviene usare la funzione Se
- Funzione PIÙ SE
- Combinare SE con E
- Conclusioni
Vero o Falso
La funzione SE è una funzione logica; ciò significa che i suoi risultati possibili sono due: vero o falso. In effetti può anche restituire errore, come terzo possibile risultato, ma questo non dovrebbe accadere.
Puoi impostare il criterio (un controllo) in base al quale la funzione determinerà se è vero o è falso. Detto così sembra incomprensibile, tra poco passeremo alla pratica e sono sicuro che riuscirò a chiarire tutti i tuoi dubbi. La funzione Se ci permetterà di specificare che cosa restituire (o eseguire) in entrambi i casi.
Come qualsiasi altra funzione, la funzione SE necessita di alcuni input per poter agire in modo appropriato. E come tutte le funzioni di Excel, è anche necessario rispettare una certa sintassi. La funzione SE è anche presente in altri programmi e in tutti i linguaggi di programmazione, ma in Excel conserva una sintassi differente da questi ultimi.
La sintassi della funzione SE Excel è semplice, per ora cerca solo di capirne il concetto:
=SE(il_test_logico,[è_vero_esegui_questo],[è_falso_esegui_quest’altro])
- Il “test logico” è il controllo (o il criterio) mediante il quale vogliamo che la funzione ci dia un risultato o vero o falso. Per esempio, il nostro ‘test_logico’ può essere un criterio puramente matematico, come x maggiore di 1 (x>1), o x minore di 1 (x<1). Oppure potrebbe essere un controllo per verificare la presenza di un determinato testo, del tipo in Colonna A c’è scritto ok (A:A=”ok”). Fai attenzione quando imposti i controlli, dopo approfondiremo questo concetto.
- Gli argomenti se_vero e se_falso necessitano di una piccola spiegazione. Questi possono essere dei semplici valori che la formula ci restituisce in base al risultato del test logico. Oppure possono essere delle istruzioni più complesse, come dei calcoli o altri controlli, che vogliamo vengano eseguito solo in certe determinate condizioni. È bene notare che solo l’argomento se_falso è facoltativo. O meglio, è facoltativo secondo Excel. Se se_falso non è specificato, Excel eventualmente restituirà il valore FALSO. Se se_vero non è specificato (basta lasciare solo il punto e virgola per passare all’altro argomento) Excel eventualmente restituirà il valore zero.
Vero o Falso Booleano
Diamo un’occhiata ad un esempio più astratto prima di addentrarci nella pratica. Abbiamo una tabella, composta da 3 righe e 2 colonne, nella quale ogni cella contiene un valore numerico. Vogliamo semplicemente controllare se il Valore 1 sia più grande del Valore 2 (maggiore – e non maggiore uguale).
Per farlo non dobbiamo veramente scrivere una funzione Se, basta semplicemente scrivere una formula del tipo:
=D2>E2 oppure =D:D>E:E
Excel restituirà o VERO o FALSO come da immagine:
Benché questa non sia una vera e propria funzione Se, restituisce un valore Booleano esattamente come una funzione Se. So che il nome può spaventare, ma non è nulla di complicato, un valore Booleano non è nient’altro che un valore che può assumere solo due valori: Vero / Falso, acceso / spendo, 0 / 1. Il test logico di una funzione Se agisce esattamente in questo modo restituendo soltanto o Vero o Falso.
Testare e controllare dei dati numerici
Ciò che rende eccellente la funzione SE è il fatto che ci permette di testare molto velocemente un ampio insieme di dati. Per esempio: abbiamo una lunga lista di valori che potrebbero essere una somma del venduto espresso in euro, e vogliamo analizzare i dati per controllare velocemente quali valori sono al di spora di una data soglia, 500€ per esempio.
Possiamo scegliere e impostare la cella contenente il venduto e utilizzare quel riferimento di cella all’interno del nostro test logico. Questo è proprio ciò che abbiamo fatto nell’esempio sottostante. Abbiamo impostato la formula in modo tale che nessun valore venga restituito se il valore del test risulta essere falso:
Possiamo anche fare il contrario, quindi controllare se è inferiore. Per ora l’importante è notare che i testi vanno tra virgolette. In qualsiasi funzione Excel, i testi che Excel deve restituire o analizzare devono essere espressi tra le virgolette. Oppure possono anche essere inseriti in celle, in questo caso occorre inserire i riferimenti a tali celle all’interno della formula. Inoltre, qui vediamo il riferimento del tipo D:D, che prende il valore in colonna D relativo alla riga nella quale si trova la funzione, quindi capisce in automatico quale riga prendere. Vediamo anche il riferimento assoluto alla cella H2, espresso con la dicitura: $H$2. I simboli del dollaro $$, servono per specificare ad Excel di prendere esclusivamente la cella H2 senza mai cambiare né riga né colonna, come altrimenti farebbe.
Tuttavia, ciò che rende questa funzione così incredibilmente efficace è l’abilità di annidarle una dentro l’altra. La possibilità di nidificare le funzioni si può applicare sia tra funzioni Se, sia tra funzioni Se e altre funzioni diverse dalle funzioni Se. Nel prossimo paragrafo vedremo le funzioni Se nidificate con altre funzioni Se.
Funzioni Se Nidificate
Annidare le funzioni SE è utile in particolar modo quando un altro controllo logico SE ha bisogno di essere considerato come il risultato dell’esito di almeno uno degli argomenti se_vero o se_falso. Detta così la faccenda sembra anche più complicata di quella che in effetti è.
Diamo un’occhiata al nostro precedente esempio con la soglia di 500€. Come test logico, potremmo portare avanti la formula e testare i valori anche per una seconda soglia di 1000€. In questo caso potremmo scrivere la nostra formula in questo modo:
=SE(D:D>$B$2;SE(D:D>$C$2;”più di mille”;”più di 500″);””)
Tradotto in italiano comune suonerebbe più o meno così: se il valore in colonna D (venduto) è maggiore del valore 500 (cella B2), allora (se è vero) controlla se è (anche) maggiore di 1000 (valore in cella C2), se è maggiore di mille scrivilo, se non è maggiore di mille ma è più di 500, scrivilo. Se non è maggiore di 500, lascia la cella in bianco.
In questo caso esistono tre possibili risultati della nostra formula invece di due: cella in bianco, più di 500, e più di mille. La funzione Se potrebbe anche essere ulteriormente ampliata, impostando maggiori controlli. Così facendo la nostra formula avrebbe molti più risultati possibili .
Ma per quanto possa essere così estremamente potente, la formula diventerebbe sempre più difficile da gestire man mano che cresce. Ci sono dei modi per gestire le funzioni Se articolate. Uno sarebbe quello di avvalersi di più colonne, e non far eseguire tutti quanti i controlli in un’unica lunghissima funzione Se. Oppure, in certi casi, puoi avvalerti di altre funzioni, come gli operatori logici O e E, le funzioni Più Se, oppure (in certi contesti) funzioni come il Cerca Verticale. Faremo altri esempi nel corso di questa guida e in altre guide.
Quanto non conviene usare la funzione Se
Vediamo alcune peculiarità dinamiche delle formule che Excel ci offre. Diamo un’occhiata ad un esempio concreto che ci mostra come l’utilizzare le funzioni SE annidate, o nidificate, che dir si voglia, possa essere impossibile perché eccessivamente complicato! Questo è uno dei rari casi nei quali puoi utilizzare una funzione come la Cerca Verticale per fare quello che farebbe una Se. Nel VBA abbiamo un caso analogo, e si chiama case select, ma questo è argomento per un corso più che avanzato.
In questo esempio, abbiamo una lista di impiegati all’interno di una serie di dati che stiamo analizzando. Di tutti gli impiegati elencati vogliamo conoscere il loro dipartimento. Se i valori nella nostra serie di dati non vengono trovati all’interno della lista di dipartimenti e impiegati, assegneremo allora il valore “esterno”.
Scrivere una Se risulta incredibilmente complicato, perché dovremmo mettere troppi controlli logici! Questo problema possiamo risolverlo con estrema facilità utilizzando il Cerca Verticale o l’Indice e Confronta. Per come sono strutturati i dati ho preferito utilizzare l’Indice e Confronta. So che sono funzioni che forse non hai ancora visto, ma ne discuteremo eccome nella guida apposita.
In poche parole, non è la Se a scrivere il dipartimento, ma è l’Indice e Confronta che cerca e restituisce il dipartimento in cui ciascun lavoratore è stato assegnato. La Funzione Se Errore fa il resto. L’Indice e Confronta restituisce errore se non trova il nome in lista, in questo caso sarà la Se Errore a restituire “esterno” esattamente come volevamo.
Funzione Più Se
Tenendo a mente tutto ciò, ora ci focalizzeremo su una nuova funzione di Excel che ci permette di ridurre molti problemi. Questa funzione è chiamata Più Se. Forse hai già visto funzioni come la Somma Più Se, la Conta Più Se e la Media Più Se (altrimenti clicca qui). La Funzione Più Se (semplicemente Più Se) è in grado di farti evitare complessissime funzioni Se annidate. Quindi dovresti prestare particolare attenzione.
Tuttavia, questa funzione è presente solo nella versione 2019 (e 365). Se non hai una delle ultime versioni, niente paura! Puoi utilizzare la versione di Excel Online (disponibile qui). Oppure, valuta tu se aggiornare Office o meno (clicca qui). La funzione ci permette di semplificarci notevolmente le cose permettendoci di inserire un determinato numero di test logici e il susseguente valore se il test logico si rivela vero senza l’aiuto aggiuntivo di fornire un valore se il test è falso. Troppo complicata? diamo un occhiata nella pratica.
Diamo un’occhiata alla sintassi:
=PIÙ.SE(Test 1; se Vero1; Test 2; se Vero2; Test 3; se Vero3)
Notare come non vi sia più necessità di annidare una nuova funzione SE nell’argomento se_vero come invece abbiamo fatto per la funzione Se in precedenza. Nella Più Se possiamo aggiungere facilmente nuovi test logici.
Con la funzione PIÙ.SE possiamo aggiungere tutti i test e valori che vogliamo, fino ad un massimo di 127. Ciò aggiunge una formidabile efficienza ed elimina gran parte delle difficoltà che si hanno quando si annidano le funzioni SE.
Comunque, riprendiamo l’esempio precedente. Utilizzare la Se abbiamo visto che è troppo complicato. Utilizzare la funzione Più Se è sicuramente meglio. Ma la soluzione attualmente migliore rimane il non usare un controllo logico di questo tipo, bensì stilare una lista ed utilizzare un Cerca Vert o un Indice e Confronta. In effetti, e questa è un’anteprima, in futuro si potrà utilizzare la Funzione Cerca X, che attualmente non è disponibile per il pubblico. Io ho la fortuna d’averla provata (in anteprima) e devo dire che mi ha più che soddisfatto. Sono certo che farò un aggiornamento quindi ti invito ad iscriverti al mio canale YouTube: clicca qui.
Ora vediamo una nuova funzione, o meglio la soluzione migliore futuribile per questo problema. Con la Cerca X la formula risulterebbe semplicissima:
=CERCA.X(D2;$B$2:$B$8;$A$2:$A$8;”esterno”;0)
Nell’immagine vediamo il risultato:
Mentre con la Funzione Più Se, la formula sarebbe più o meno:
=SE.ERRORE(PIÙ.SE(D2=”Marco”;”Vendite”;D2=”Sofia”;”Vendite”;D2=”Luisa”;”Vendite”;D2=”Matteo”;”Marketing”;D2=”Luca”;”Marketing”;D2=”Debora”;”Marketing”;D2=”Maria”;”Marketing”);”esterno”)
È chiaro che la funzione Cerca X sia molto più snella e facile da scrivere. Un altro modo, sempre utilizzando la Più Se, sarebbe nidificare con delle funzioni logiche come la O. La Funzione O clicca qui, ma preferisco fare una piccola anticipazione:
=SE.ERRORE(PIÙ.SE(O(D2=”Matteo”;D2=”Luca”;D2=”Debora”;D2=”Maria”);”Marketing”;O(D2=”Marco”;D2=”Sofia”;D2=”Luisa”);”Vendite”);”esterno”)
Molto meglio! Ma la soluzione migliore rimane il Cerca X. Presta attenzione al numero di parentesi poste alla fine per chiudere la funzione. Chiaramente, man mano che aggiungiamo sempre più controlli logici alla formula esistente, le cose diventano sempre più complicate e difficili da gestire. Per questo consiglio una bella tabella con soglie e bonus, e il successivo utilizzo di funzioni come il Cerca X, Cerca Verticale o Indice e Confronta.
Diamo un’occhiata ad un altro esempio che utilizza la PIÙ SE. In questo caso, prendiamo un esempio analogo al precedente. Abbiamo delle vendite e vogliamo “testare” e successivamente applicare un importo bonus. Abbiamo una scheda di bonus progressivi basati sull’importo delle quote di vendita.
Così la nostra formula finale analizzerà i nostri importi di vendita in relazione con gli importi di due differenti soglie, in modo da restituire il bonus associato alla soglia.
Potremmo certamente annidare le funzioni SE così da raggiungere il nostro obiettivo, ma per questo esempio utilizzeremo solo la funzione Più Se. Ecco i risultati:
Devo fare alcune precisazioni importanti. La prima è che sto utilizzando la funzione Se Errore per far prima e rendere la formula più snella. Inoltre, e questo è molto importante, le due formule:
[giusta] =SE.ERRORE(PIÙ.SE(D2>1000;125;D2>500;60);””)
[sbagliata] =SE.ERRORE(PIÙ.SE(D2>500;60;D2>1000;125);””)
NON si equivalgono!
La Più Se corretta è la prima. Ed è anche facile intuire perché sia quella corretta. La funzione esegue il primo controllo, e se è vero restituisce un valore, altrimenti prosegue! Quindi nel caso della seconda controlla prima se il valore è superiore a 500, ed assegna 60 di bonus. Il che vuol dire che se avessimo come vale il numero 1200, che è maggiore di 500, la funzione assegnerebbe il valore 60 e non proseguirebbe con il prossimo test.
Quindi stai molto attento all’ordine dei controlli!
Questo non vale solo per le Più Se, ma si applica anche alle Se nidificate. Se sbagli l’ordine sbagli tutto. E se ti dimentichi che l’opposto di maggiore non è minore ma minore o uguale, puoi sbagliare tutto lo stesso.
Nella formula Più Se, quella giusta intendo, ho specificato solo due casi. Tutti gli altri sono gestiti dalla Se Errore. Potevo fare altrimenti ed inserire più controlli, ma in questo caso avrei dovuto fare molta attenzione al fatto che se il valore non è maggiore di 500 non significa per forza che sia inferiore! Può potenzialmente essere uguale.
Ho notato spesso questo errore, principalmente da persone che non hanno seguito i miei corsi di Excel. Odio ripetermi ma lo farò, evidentemente non lo faccio abbastanza: se non è maggiore, non vuol dire che minore, vuol dire che è minore o uguale.
Combinare SE con E
Un altro modo utile per ampliare i limiti della funzione Se è l’utilizzo di essa combinato con le funzioni logiche E e O. In questo esempio vediamo la funzione E. Un utilizzo di questo tipo è appropriato soprattutto quando abbiamo dei molteplici requisiti nel test logico e tutti quanti questi requisiti devono essere soddisfatti.
La logica è semplicemente come dire: “se sia questo e sia questo sono veri (entrambi), allora esegui questo, altrimenti fai quest’altro”.
La sintassi della funzione E, ci permette di inserire più di un argomento logico da testare, e lo ribadisco, si devono verificare tutte le condizioni (tutte assieme) altrimenti restituisce falso. Se vuoi che almeno una condizione venga rispettata, devi utilizzare la funzione O. Inoltre, sia la funzione O, sia la funzione E, hanno una sintassi in Excel che è molto poco intuitiva, soprattutto all’inizio. Altri linguaggi di programmazione e altri software hanno le E e le O, ma con una sintassi molto più facile. Per esempio, nel VBA abbiamo entrambe queste funzioni e risultano molto più semplici da scrivere ed utilizzare.
Ecco la sintassi della funzione E nidificata con la Se:
=SE(E(test_logico1;test_logico2;test_logico3;test_logico_n);[se sono tutti veri]se_vero;[se non sono tutti quanti veri]se_falso))
Nella formula riportata qui sopra notiamo che la funzione E, inserita tra parentesi dopo la SE, ci permette di inserire molteplici test logici che devono essere tutti verificati per ottenere un risultato che sia vero. Ciò significa che possiamo continuare ad aggiungere tutti i test logici che vogliamo eseguire (fino a un massimo di 255).
Ora daremo un’occhiata al caso in cui utilizzare il SE con E può risultare alquanto utile:
Immaginiamo di possedere un’azienda nella quale offriamo ai clienti un prezzo scontato in base alle quantità acquistate, e di dover fare un foglio di Excel che calcoli i preventivi. Possiamo permetterci di offrire questi sconti perché le nostre spese per la spedizione diminuiscono quando il cliente compra in blocco e noi spediamo con un’unica spedizione. Trasferendo i nostri risparmi ai nostri clienti al dettaglio siamo in grado di offrire un incentivo a comprare di più e al contempo un prezzo più basso.
Se il cliente compra almeno 3 prodotti, per un totale di minimo 150€ in un solo unico ordine, le spese di spedizione (normalmente +10€ ad oggetto) non saranno applicate. Dobbiamo quindi creare un file Excel per poter fare dei preventivi accurati e necessitiamo di una soluzione che calcoli il prezzo finale degli ordini dei nostri clienti, tendendo conto sia delle quantità ordinate, sia del prezzo totale.
Rispiego? se l’ordine piazzato dal cliente ha:
- Almeno 150€ (minimi) in oggetti ordinati, e almeno (minimo) 3 oggetti ordinati, allora le spedizioni sono gratuite
- Caso contrario, si applicano delle spedizioni di +10€ ad oggetto
Ecco come ho risolto io:
Calcolo le spedizioni con una formula Se e E nidificate; il totale lo calcolo in una cella a parte con una semplicissima funzione somma. La funzione che utilizzo per le spedizioni è la seguente:
=SE(E(SOMMA(E:E)>=3;SOMMA(F:F)>=150);0;10*SOMMA(E:E))
Quando normalmente propongo questo esercizio, gli errori più comuni sono il non mettere il maggiore o uguale (>=), che è obbligatorio in entrambi i casi. E l’altro errore comune è che il +10€ ad oggetto ordinato, diventa un +10€ e basta. Cioè non viene eseguita la moltiplicazione del costo di spedizione per le unità vendute. Non viene eseguita o perché viene semplicemente dimenticata, oppure perché viene inserito un calcolo (errato) di questo tipo: 10*E:E
Possiamo anche far la prova inserendo dati diversi:
Per spiegare meglio cosa succede ho aggiunto la cella con il totale dei valori in oggetti ordinati (147,94€ in questo caso). Paradossalmente il nostro utente che ha sta per ordinare ben 6 oggetti (quello a 4,99 ha 2 unità), pagherebbe 60 euro in meo se il totale degli ordini arrivasse a 150. Questo lo invoglierebbe a comprare, magari anche un altro piccolo oggetto poco costoso da noi.
Nonostante questa formula possa sembrare molto demoralizzante e complicata a primo impatto, se la osserviamo dal punto di vista sintattico in realtà segue una logica piuttosto semplice.
Inoltre, l’Anteprima suggerimenti di Excel (lo screen tip) che appare quando inseriamo la nostra formula è una risorsa inestimabile quando lavoriamo con delle formule lunghe come questa. Come iniziamo a digitare la nostra formula, l’anteprima suggerimenti mantiene la nostra sintassi in carreggiata in quanto evidenzia in grassetto i nostri argomenti man mano che si va avanti.
Conclusioni
Esistono tante altre funzionalità, alcune molto avanzate della funzione Se. Qualche altra funzione che viene spesso utilizzata combinata con la funzione SE è la funzione O, la funzione E, la funzione XOR, ma ci sono anche altre applicazioni della Se nei calcoli, oppure ci sarebbero le nidificazioni con la funzioni Val (Val Vuoto, Val Numero, ecc). Ci sarebbero anche tutte quelle funzioni simili alla Se: Conta Se, Conta Più Se, Somma Se, Somma Più Se, Se Errore, ecc.
Gli esempi che abbiamo visto in questa guida, sono solamente la punta dell’iceberg. Quando parliamo di funzioni Se, ci sono infinite combinazioni e applicazioni! Come tante altre funzioni, la funzione SE si presta bene per il suo inserimento all’interno di funzioni più complesse come la Cerca Vert (che credo proprio sarà sostituita in un futuro molto prossimo dalla Cerca X).
Inoltre, la funzione SE è semplicemente un test logico, altre funzioni complesse possono eseguire delle istruzioni molto articolate a seconda dei casi, per automatizzare il tuo lavoro, per semplificare l’analisi dei dati, e per risolverti i problemi.
Come tutte le funzioni Excel, con un po’ di creatività ed ingegno le possibilità che si aprono davanti a te sono numerosissime. Inoltre, come abbiamo potuto vedere, i test logici della funzione Se sono estremamente potenti nella loro semplicità.
Complimenti, hai terminato questa guida! Hai fatto il primo passo, continua così! Stupisci tutti quanti in ufficio con le tue nuove abilità in Excel, i tuoi colleghi non crederanno ai loro occhi! Iscriviti ai corsi di MasterExcel!