Molti fogli di calcolo devono prendere decisioni: segnalare un ordine come urgente, capire se un cliente ha diritto a uno sconto o avvisarti quando un importo supera un limite. Farlo a mano, riga per riga, è lento e porta a errori. Excel risolve il problema con tre funzioni logiche che si combinano tra loro: SE, E e O.
Qui vedrai come funziona ciascuna, come unirle in un’unica formula, quando conviene usare SE nidificati o PIÙ.SE e quali errori compaiono più spesso. Tutti gli esempi usano una piccola tabella di ordini che puoi copiare per esercitarti.
I dati di esempio
Partiamo da questa tabella, con le intestazioni nella riga 1 e i dati dalla riga 2:
| Cliente (A) | Importo (B) | Pagato (C) | Zona (D) |
|---|---|---|---|
| Cliente A | 1250 | Sì | Nord |
| Cliente B | 480 | No | Sud |
| Cliente C | 760 | Sì | Centro |
| Cliente D | 1900 | No | Nord |
Scrivi le formule nella riga 2 di una colonna libera e poi copiale verso il basso trascinando il quadratino di riempimento.
Come funziona la funzione SE
SE verifica una condizione e restituisce un valore se è soddisfatta e un altro se non lo è. La sintassi è:
=SE(test;se_vero;se_falso)
- test: un confronto che restituisce VERO o FALSO, come
B2>=1000. - se_vero: ciò che compare se la condizione è soddisfatta. Può essere un testo, un numero o un’altra formula.
- se_falso: ciò che compare se non lo è. Se lo ometti, Excel mostra FALSO.
Per classificare gli ordini in base alla dimensione:
=SE(B2>=1000;"Grande";"Normale")
Il Cliente A e il Cliente D ottengono “Grande”; gli altri, “Normale”. I testi vanno sempre tra virgolette doppie; i numeri e i riferimenti di cella no.
Operatori di confronto
Nel test puoi usare = (uguale), <> (diverso), >, <, >= e <=. I confronti tra testi non distinguono maiuscole e minuscole: C2="sì" e C2="Sì" danno lo stesso risultato. Gli accenti invece contano: “Si” senza accento non è uguale a “Sì”.
E e O: valutare più condizioni
Le funzioni E e O non restituiscono testi, ma solo VERO o FALSO. Servono a raggruppare più condizioni:
Erestituisce VERO solo se tutte le condizioni sono soddisfatte.Orestituisce VERO se almeno una lo è.
Ad esempio, per sapere se un ordine è grande e anche pagato:
=E(B2>=1000;C2="Sì")
Solo il Cliente A soddisfa entrambe le condizioni. Quest’altra formula verifica se l’ordine è grande oppure pagato:
=O(B2>=1000;C2="Sì")
Qui restituiscono VERO i clienti A, C e D. Solo il Cliente B, con un importo basso e senza pagamento, restituisce FALSO. Entrambe le funzioni accettano fino a 255 condizioni, anche se oltre quattro o cinque la formula diventa difficile da leggere.
Combinare SE con E e O
La vera potenza emerge quando usi E oppure O come test di SE. In questo modo il semplice VERO o FALSO diventa un messaggio utile.
Esempio con E
Supponi di regalare un campione agli ordini grandi già pagati:
=SE(E(B2>=1000;C2="Sì");"Invia omaggio";"")
Le virgolette vuote alla fine lasciano la cella vuota quando la condizione non è soddisfatta, così la colonna resta più pulita.
Esempio con O
Ora immagina che le zone Nord e Sud abbiano la spedizione gratuita e le altre paghino il trasporto:
=SE(O(D2="Nord";D2="Sud");"Spedizione gratuita";"Spedizione a pagamento")
E e O nella stessa formula
Puoi anche inserire una funzione dentro l’altra. Questa formula segna come prioritari gli ordini pagati che sono grandi o diretti alla zona Nord:
=SE(E(C2="Sì";O(B2>=1000;D2="Nord"));"Prioritario";"Normale")
Ecco il risultato delle tre formule con i dati di esempio:
| Cliente | Omaggio | Spedizione | Priorità |
|---|---|---|---|
| Cliente A | Invia omaggio | Spedizione gratuita | Prioritario |
| Cliente B | (vuota) | Spedizione gratuita | Normale |
| Cliente C | (vuota) | Spedizione a pagamento | Normale |
| Cliente D | (vuota) | Spedizione gratuita | Normale |
SE nidificati e PIÙ.SE
Quando ti servono più di due risultati, puoi inserire un SE dentro un altro. Per classificare gli ordini in tre dimensioni:
=SE(B2>=1000;"Grande";SE(B2>=500;"Medio";"Piccolo"))
Excel valuta le condizioni in ordine e si ferma alla prima soddisfatta. Per questo l’ordine conta: se verificassi prima B2>=500, un ordine da 1900 resterebbe “Medio”.
In Excel 2019, Excel 2021 e Microsoft 365 c’è un’alternativa più leggibile, PIÙ.SE, che evita di accumulare parentesi:
=PIÙ.SE(B2>=1000;"Grande";B2>=500;"Medio";VERO;"Piccolo")
L’ultima coppia, con VERO come condizione, funziona come un “in tutti gli altri casi”. Se non la includi e nessuna condizione è soddisfatta, la formula restituisce l’errore #N/D.
Consigli per non perderti tra le nidificazioni:
- Scrivi prima le condizioni in ordine, dalla più restrittiva alla più generale.
- Controlla che ogni
SEaperto abbia la sua parentesi di chiusura. Excel colora le coppie di parentesi mentre scrivi. - Se superi tre o quattro livelli, valuta una tabella di fasce con
CERCA.VERTin corrispondenza approssimativa. - Prova la formula con valori limite (esattamente 500 o 1000) per verificare che finiscano nel gruppo giusto.
Usare SE per confrontare due colonne
Un altro uso molto frequente è controllare se due elenchi coincidono riga per riga, ad esempio i prezzi di un mese rispetto a quelli del mese precedente. Se i valori sono nelle colonne A e B:
=SE(A2=B2;"Uguale";"Diverso")
Questo confronto non distingue le maiuscole. Se vuoi che “PROD-1” e “prod-1” risultino diversi, usa la funzione IDENTICO:
=SE(IDENTICO(A2;B2);"Uguale";"Diverso")
Con i numeri, a volte due valori sembrano identici ma uno è memorizzato come testo, e la formula restituisce “Diverso”. Controlla l’allineamento (per impostazione predefinita i numeri sono allineati a destra) oppure converti il testo con VALORE.
Questo metodo funziona quando i due elenchi sono nello stesso foglio e nello stesso ordine. Se vuoi confrontare due file interi, il nostro strumento gratuito per confrontare file Excel esamina le due versioni e genera un file con le modifiche, senza scrivere nessuna formula.
Errori comuni con SE, E e O
- Dimenticare le virgolette nei testi. Se scrivi
C2=Sìsenza virgolette, Excel interpreta Sì come un nome definito e restituisce #NOME?. - Concatenare i confronti come in matematica.
500<B2<1000non funziona come ti aspetti: Excel valuta prima500<B2, ottiene VERO o FALSO e poi confronta quel risultato con 1000. La forma corretta èE(B2>500;B2<1000). - Usare il separatore sbagliato. In base alle impostazioni internazionali, gli argomenti si separano con il punto e virgola o con la virgola. Se Excel rifiuta la formula, prova l’altro separatore.
- Numeri memorizzati come testo. Excel considera qualsiasi testo maggiore di qualsiasi numero, quindi
B2>=1000restituisce VERO anche se l’importo è il testo “250”. Succede spesso con i dati importati da CSV. - Spazi invisibili. “Nord ” con uno spazio finale non è uguale a “Nord”. Pulisci i dati con
ANNULLA.SPAZIprima del confronto.
Conclusione
SE sceglie tra due risultati, E richiede che tutte le condizioni siano soddisfatte e O si accontenta di una sola. Insieme coprono la maggior parte delle regole che incontrerai in un foglio di calcolo: sconti, priorità, avvisi o controlli.
Parti da formule semplici, verifica i risultati con valori limite e, quando la logica cresce, passa a PIÙ.SE o a colonne di appoggio. Una formula che si capisce a colpo d’occhio è molto più facile da correggere qualche mese dopo.
Domande frequenti
Quanti SE posso nidificare in una formula?
Da Excel 2007 puoi nidificare fino a 64 funzioni SE. In pratica, oltre tre o quattro livelli la formula diventa difficile da gestire; in questi casi è meglio usare PIÙ.SE o una tabella di ricerca.
Cosa restituisce SE se non indico il valore se falso?
Se ometti il terzo argomento, Excel mostra FALSO quando la condizione non è soddisfatta. Per lasciare la cella vuota, scrivi due virgolette doppie di seguito ("") come terzo argomento.
Posso usare SE con le date?
Sì. Confronta la cella con un’altra data o con OGGI(), ad esempio =SE(F2<OGGI();"Scaduto";"Nei tempi"). Evita di scrivere la data come testo tra virgolette dentro la formula, perché il risultato dipende dalle impostazioni internazionali.
Esiste una funzione per invertire una condizione?
Sì, la funzione NON trasforma VERO in FALSO e viceversa. Ad esempio, =SE(NON(C2="Sì");"Sollecita pagamento";"") segnala gli ordini in attesa di pagamento. Equivale a usare l’operatore <>.
Prova i nostri strumenti gratuiti
Confronta, converti, unisci e pulisci i tuoi fogli di calcolo dal browser, senza installare nulla.