Menu

SE annidati in Excel: più condizioni SE con esempi

=SE(B2>=90;"A";SE(B2>=80;"B";SE(B2>=70;"C";"F"))) mette un SE dentro un altro per scegliere tra più di due risultati. Scopri come si legge un SE annidato, perché l'ordine delle condizioni conta, e quando PIÙ.SE o una tabella di ricerca sono la scelta migliore.

Ogni foglio di questa pagina è interattivo: cambia un numero o una formula e si ricalcola.

Un SE annidato è un SE dentro un altro SE, usato quando ci sono più di due risultati possibili. =SE(B2>=90;"A";SE(B2>=80;"B";SE(B2>=70;"C";"F"))) dà una A per 90 o più, una B da 80 a 89, una C da 70 a 79 e una F sotto 70. La funzione SE si chiama IF in Excel inglese, e la tabella mostra le formule in inglese, con la virgola. Puoi scriverle anche in italiano, con il punto e virgola.

Voti dai punteggi
C2
ABC
1StudentScoreGrade
2Ana94A
3Ben81B
4Chloe70C
5Dan65F
6Eve88B
7Finn90A
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =SE(B2>=90;"A";SE(B2>=80;"B";SE(B2>=70;"C";"F")))

Fai clic su C2 e guarda la barra della formula: tre funzioni SE, tre parentesi di chiusura alla fine. Cambia il punteggio di Dan in B5 in 75 e il suo voto passa da F a C.

Come si legge un SE annidato

Excel legge la formula dall'inizio e si ferma al primo test che è VERO:

=IF(B2>=90, "A",
   IF(B2>=80, "B",
      IF(B2>=70, "C",
         "F")))
  1. Il punteggio è 90 o più? Allora A, e non si controlla nient'altro.
  2. Altrimenti, è 80 o più? Allora B. Questo test non deve dire "e sotto 90", perché un punteggio di 90 o più non ci arriva mai.
  3. Altrimenti, è 70 o più? Allora C.
  4. Altrimenti F, il se_falso dell'ultimo SE.

Ogni SE interno sta nella posizione se_falso di quello precedente. Excel ammette fino a 64 livelli, ma una formula con più di quattro o cinque è difficile da controllare a occhio. Excel accetta gli a capo dentro una formula, quindi puoi impaginare una formula lunga come questa nella barra della formula: premi Alt+Invio (Windows) o Control+Opzione+Invio (Mac) prima di ogni SE.

Perché l'ordine delle condizioni conta

Dato che Excel si ferma al primo test VERO, con >= le soglie devono andare dalla più alta alla più bassa. La colonna D ha gli stessi tre test nell'ordine opposto:

Stessi test, ordine sbagliato
D2
ABCD
1StudentScoreRight orderWrong order
2Ana94AC
3Ben81BC
4Chloe70CC
5Dan65FF
6Eve88BC
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =SE(B2>=70;"C";SE(B2>=80;"B";SE(B2>=90;"A";"F")))

Nella colonna D chiunque abbia 70 o più riceve una C: un punteggio di 94 supera il primo test, B2>=70, e i test della B e della A non vengono mai raggiunti. Se preferisci partire dalla fascia più bassa, inverti gli operatori: =SE(B2<70;"F";SE(B2<80;"C";SE(B2<90;"B";"A"))) dà gli stessi voti della colonna C.

SE annidati con il testo

I test possono confrontare anche del testo. Qui il costo di consegna dipende dalla regione, e ogni regione non nominata riceve l'ultimo valore:

Costo di consegna per regione
C2
ABC
1OrderRegionFee
21001North$5.00
31002South$7.00
41003West$9.00
51004East$6.00
61005Islands$9.00
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =SE(B2="North";5;SE(B2="South";7;SE(B2="East";6;9)))

West e Islands non corrispondono a nessuno dei tre test e ricevono il valore finale, $9.00. Quando ogni test confronta la stessa cella con un valore fisso, come qui, SWITCH scrive la stessa regola nominando ogni regione una volta sola: =SWITCH(B2;"North";5;"South";7;"East";6;9). Vedi la pagina su SWITCH.

SE annidati con E

Un SE annidato può combinare i suoi livelli con E oppure O (in inglese AND e OR) quando una fascia dipende da due celle. Un venditore con vendite di almeno 2.000 e almeno 3 anni di anzianità riceve il 10%, chiunque altro sopra 2.000 riceve il 5%, e gli altri niente:

Percentuale di provvigione
D2
ABCD
1RepSalesYearsRate
2Ana2400410%
3Ben210015%
4Chloe150060%
5Dan3000310%
6Eve90020%
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =SE(E(B2>=2000;C2>=3);10%;SE(B2>=2000;5%;0))

Ana e Dan hanno diritto al 10%, Ben ha le vendite ma non gli anni e riceve il 5%, e Chloe ed Eve ricevono lo 0%. In Excel italiano la formula è =SE(E(B2>=2000;C2>=3);10%;SE(B2>=2000;5%;0)). Anche qui l'ordine conta: il test più severo viene prima.

PIÙ.SE: la stessa cosa senza annidare

In Excel 2019, Excel 2021 e Microsoft 365, PIÙ.SE (in inglese IFS) prende test e risultati a coppie, senza SE interni e con una sola parentesi di chiusura. VERO come ultimo test significa "tutto il resto":

=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F")

In Excel italiano: =PIÙ.SE(B2>=90;"A";B2>=80;"B";B2>=70;"C";VERO;"F"). Legge le condizioni nello stesso ordine e si ferma alla prima VERA, quindi la regola sull'ordine vista sopra vale ancora. La pagina su PIÙ.SE la spiega, compreso il #N/D (in inglese #N/A) che restituisce quando nessun test corrisponde. In Excel 2016 e versioni precedenti PIÙ.SE non esiste, e un file che la usa lì mostra #NOME? (in inglese #NAME?).

Esercizio: una provvigione a tre fasce

Provvigione
C2
ABC
1RepSalesCommission
2Ana$6,200
3Ben$2,400
4Chloe$600
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.

Tocca a te: In C2, paga il 10% delle vendite in B2 quando sono 5000 o più, il 5% quando sono 1000 o più, e 0 altrimenti. La formula viene copiata fino a C4.

Una tabella di ricerca al posto di tanti SE

Quando le fasce sono numeri e sono più di tre o quattro, tieni le soglie in una piccola tabella e cercale. La tabella è ordinata dalla soglia più bassa in su, e la corrispondenza approssimata (VERO come ultimo argomento) restituisce la riga della soglia più grande che non supera il punteggio:

Voti da una tabella di fasce
C2
ABCDEF
1StudentScoreGradeMin scoreGrade
2Ana94A0F
3Ben81B70C
4Chloe70C80B
5Dan65F90A
6Eve88B
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =CERCA.VERT(B2;$E$2:$F$5;2;VERO)

I risultati coincidono con il SE annidato in cima alla pagina. In Excel italiano la formula è =CERCA.VERT(B2;$E$2:$F$5;2;VERO), con CERCA.VERT (in inglese VLOOKUP). Per spostare la fascia B a 85, cambia E4 in 85: nessuna formula cambia, e ogni voto si aggiorna. Con CERCA.X la stessa ricerca è =CERCA.X(B2;$E$2:$E$5;$F$2:$F$5;;-1), dove -1 significa "corrispondenza esatta o il valore immediatamente più piccolo"; in quel caso la tabella non deve essere ordinata.

Prova tu: la tabella delle fasce è pronta, scrivi la ricerca.

Voto con CERCA.VERT
C2
ABCDEF
1StudentScoreGradeMin scoreGrade
2Ana860F
370C
480B
590A
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.

Tocca a te: In C2, restituisci il voto per il punteggio in B2 dalla tabella delle fasce in E2:F5.

Domande frequenti

Come si scrivono più funzioni SE in Excel?

Metti il SE successivo nell'argomento se_falso del precedente: =SE(B2>=90;"A";SE(B2>=80;"B";SE(B2>=70;"C";"F"))). Excel verifica le condizioni dalla prima all'ultima e si ferma alla prima che è VERA.

Quante funzioni SE si possono annidare in Excel?

Fino a 64 livelli in Excel 2007 e versioni successive. Molto prima di quel limite, una formula diventa difficile da leggere e da controllare; con più di tre o quattro fasce, una tabella di ricerca con CERCA.VERT approssimata o CERCA.X è più facile da mantenere.

Perché il mio SE annidato restituisce il risultato sbagliato?

Di solito perché le condizioni sono nell'ordine sbagliato. Con i test >=, inizia dalla soglia più alta: se B2>=70 viene prima, un voto di 95 si ferma lì e riceve il risultato della fascia 70.

Cosa posso usare al posto dei SE annidati in Excel?

PIÙ.SE in Excel 2019 e versioni successive (=PIÙ.SE(B2>=90;"A";B2>=80;"B";VERO;"F")), SWITCH quando confronti un valore con valori fissi, e una tabella di ricerca con =CERCA.VERT(B2;$E$2:$F$5;2;VERO) per le fasce numeriche.

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA