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.
| A | B | C | |
|---|---|---|---|
| 1 | Student | Score | Grade |
| 2 | Ana | 94 | A |
| 3 | Ben | 81 | B |
| 4 | Chloe | 70 | C |
| 5 | Dan | 65 | F |
| 6 | Eve | 88 | B |
| 7 | Finn | 90 | A |
=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")))
- Il punteggio è 90 o più? Allora A, e non si controlla nient'altro.
- 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.
- Altrimenti, è 70 o più? Allora C.
- 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:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Student | Score | Right order | Wrong order |
| 2 | Ana | 94 | A | C |
| 3 | Ben | 81 | B | C |
| 4 | Chloe | 70 | C | C |
| 5 | Dan | 65 | F | F |
| 6 | Eve | 88 | B | C |
=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:
| A | B | C | |
|---|---|---|---|
| 1 | Order | Region | Fee |
| 2 | 1001 | North | $5.00 |
| 3 | 1002 | South | $7.00 |
| 4 | 1003 | West | $9.00 |
| 5 | 1004 | East | $6.00 |
| 6 | 1005 | Islands | $9.00 |
=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:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Rep | Sales | Years | Rate |
| 2 | Ana | 2400 | 4 | 10% |
| 3 | Ben | 2100 | 1 | 5% |
| 4 | Chloe | 1500 | 6 | 0% |
| 5 | Dan | 3000 | 3 | 10% |
| 6 | Eve | 900 | 2 | 0% |
=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
| A | B | C | |
|---|---|---|---|
| 1 | Rep | Sales | Commission |
| 2 | Ana | $6,200 | |
| 3 | Ben | $2,400 | |
| 4 | Chloe | $600 |
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:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Student | Score | Grade | Min score | Grade | |
| 2 | Ana | 94 | A | 0 | F | |
| 3 | Ben | 81 | B | 70 | C | |
| 4 | Chloe | 70 | C | 80 | B | |
| 5 | Dan | 65 | F | 90 | A | |
| 6 | Eve | 88 | B |
=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.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Student | Score | Grade | Min score | Grade | |
| 2 | Ana | 86 | 0 | F | ||
| 3 | 70 | C | ||||
| 4 | 80 | B | ||||
| 5 | 90 | A |
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.