La funzione SE è il primo passo verso fogli di calcolo che «decidono»: se il saldo è negativo scrivi «Da sollecitare», altrimenti «Regolare». Il problema arriva quando le condizioni diventano tre, cinque, dieci, e la formula si trasforma in una catena di SE uno dentro l'altro, con parentesi che nessuno riesce più a contare. Esistono alternative più leggibili, e saperle scegliere rende i fogli molto più facili da mantenere.
La base: SE, E, O
=SE(condizione; valore_se_vero; valore_se_falso)
La condizione è qualsiasi espressione che restituisce VERO o FALSO: B2>1000, C2="Roma", D2<>"". Per combinare più condizioni si usano:
- E, vera solo se tutte le condizioni sono vere:
=SE(E(B2>1000; C2="Roma"); "Priorità"; ""); - O, vera se almeno una condizione è vera:
=SE(O(D2="Urgente"; E2<OGGI()); "Controllare"; ""); - NON, che inverte il risultato.
Fin qui tutto è chiaro. Il disordine comincia con le scelte multiple.
Il problema dei SE annidati
Supponi di dover assegnare un livello in base al fatturato annuo di un cliente: oltre 100.000 «Platino», oltre 50.000 «Oro», oltre 20.000 «Argento», altrimenti «Base». Con SE annidati:
=SE(B2>100000; "Platino"; SE(B2>50000; "Oro"; SE(B2>20000; "Argento"; "Base")))
Funziona, ma ha tre difetti:
- l'ordine conta: se scrivi prima la condizione
B2>20000, un cliente da 150.000 risulta «Argento», perché la prima condizione vera vince; - le soglie sono dentro la formula: per cambiarle bisogna modificare ogni cella, o sperare che la formula sia stata copiata ovunque in modo identico;
- la leggibilità crolla oltre i tre livelli.
Prima alternativa: PIÙ.SE
PIÙ.SE (IFS in inglese), disponibile nelle versioni recenti di Excel, in Google Sheets e in LibreOffice Calc, elenca coppie di condizione e risultato:
=PIÙ.SE(B2>100000; "Platino"; B2>50000; "Oro"; B2>20000; "Argento"; VERO; "Base")
L'ultima coppia, con VERO come condizione, fa da «altrimenti»: senza di essa, un valore che non soddisfa nessuna condizione produce #N/D. La formula è più lineare, ma restano i difetti 1 e 2: l'ordine conta ancora e le soglie sono ancora scritte nella formula.
Seconda alternativa: SWITCH
SWITCH (con lo stesso nome nell'Excel italiano) è adatta quando confronti un valore con un elenco di valori esatti, non con soglie:
=SWITCH(C2; "N"; "Nord"; "C"; "Centro"; "S"; "Sud"; "Non definito")
Il primo argomento è il valore da esaminare, poi seguono coppie di valore e risultato; l'ultimo argomento, se dispari, è il risultato predefinito. È più compatta di PIÙ.SE perché non ripete C2= a ogni condizione. Non funziona però con confronti come «maggiore di».
La soluzione migliore: una tabella di corrispondenza
Quando le condizioni rappresentano regole di business, come fasce, codici, aliquote o livelli, il posto giusto per quelle regole è una tabella, non una formula. Crea un piccolo intervallo, magari in un foglio «Parametri»:
| Soglia | Livello |
|---|---|
| 0 | Base |
| 20000,01 | Argento |
| 50000,01 | Oro |
| 100000,01 | Platino |
Poi usa una ricerca approssimata:
=CERCA.X(B2; Parametri!$A$2:$A$5; Parametri!$B$2:$B$5; ; -1)
oppure, nelle versioni senza CERCA.X, =CERCA.VERT(B2; Parametri!$A$2:$B$5; 2; VERO) con la prima colonna ordinata.
I vantaggi sono concreti:
- le soglie sono visibili e modificabili da chiunque, senza toccare le formule;
- aggiungere un livello significa aggiungere una riga;
- la stessa tabella può alimentare altre formule, grafici o elenchi a discesa.
Per i valori esatti, come i codici regione dell'esempio precedente, vale lo stesso principio con la corrispondenza esatta.
Come scegliere
| Situazione | Strumento consigliato |
|---|---|
| Una o due condizioni | SE con E e O |
| Più condizioni diverse tra loro | PIÙ.SE |
| Un valore confrontato con valori esatti | SWITCH |
| Fasce, aliquote, codici che possono cambiare | tabella più funzione di ricerca |
Consigli di scrittura
- Vai a capo nella barra della formula con Alt+Invio (in Excel per Windows): una formula lunga divisa su più righe si legge molto meglio e il risultato non cambia.
- Evita di restituire numeri come testo.
"1"tra virgolette è testo e non verrà sommato; scrivi1. - Prevedi sempre il caso residuo. Un SE senza il terzo argomento restituisce FALSO, che in una colonna di etichette è fuorviante.
- Testa i confini. Con soglie come «oltre 50.000», controlla esplicitamente cosa succede con 50.000 esatti.
Nel mio lavoro, quando una formula supera i tre livelli di SE, lo considero un segnale: quasi sempre c'è una regola che merita di diventare una tabella.
In sintesi
- SE, E e O bastano per una o due condizioni.
- Nei SE annidati e in PIÙ.SE l'ordine delle condizioni determina il risultato.
- SWITCH è la scelta più compatta per confronti con valori esatti.
- Fasce e regole che possono cambiare vanno in una tabella, interrogata con una ricerca.
- Verifica sempre i valori di confine e il caso residuo.