Guide di Excel

Funzioni SE, E e O in Excel: come prendere decisioni con le formule

Impara a usare SE, E e O in Excel con esempi pratici: una condizione, più condizioni, SE nidificati, PIÙ.SE e confronto tra colonne.

Funzioni SE, E e O in Excel: come prendere decisioni con le formule

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:

  • E restituisce VERO solo se tutte le condizioni sono soddisfatte.
  • O restituisce 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:

  1. Scrivi prima le condizioni in ordine, dalla più restrittiva alla più generale.
  2. Controlla che ogni SE aperto abbia la sua parentesi di chiusura. Excel colora le coppie di parentesi mentre scrivi.
  3. Se superi tre o quattro livelli, valuta una tabella di fasce con CERCA.VERT in corrispondenza approssimativa.
  4. 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<1000 non funziona come ti aspetti: Excel valuta prima 500<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>=1000 restituisce 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.SPAZI prima 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.

Vedi tutti gli strumenti
Torna in alto