AND, OR e IF annidati
Un voto di 81 con il 70% di presenze supera il test sul voto e non supera quello sulle presenze. AND li richiede entrambi; OR ne richiede uno solo.
Due condizioni insieme: AND e OR
La stessa insegnante ha una seconda regola. Per essere promosso, uno studente ha bisogno di un voto di almeno 60 e di almeno l'80% di presenze. AND accetta uno o più test (Excel ne ammette fino a 255) e restituisce TRUE solo quando sono tutti TRUE: =AND(B2>=60,C2>=80). OR restituisce TRUE quando almeno un test è TRUE, quindi =OR(B2>=90,C2=100) potrebbe segnalare per un premio uno studente che ha preso un voto altissimo o che non ha mai fatto un'assenza. NOT trasforma TRUE in FALSE e viceversa, ed è adatto alle regole formulate con «a meno che».
Da sole, AND e OR danno solo TRUE o FALSE. Mettile dentro IF per trasformare il risultato in parole: =IF(AND(B2>=60, C2>=80), "Yes", "No"). I test interni possono puntare a colonne diverse, confrontare testi o usare calcoli. AND e OR saltano il testo e le celle vuote negli intervalli e, se non trovano niente da verificare, restituiscono #VALUE!. La tabella qui sotto applica i due test, voto almeno 60 e presenze almeno 80, a quattro studenti.
Di' la regola a parole semplici prima di scriverla. «Promosso se il voto è almeno 60 e le presenze sono almeno 80» corrisponde direttamente ad AND; «promosso se supera uno dei due test» corrisponde a OR. Una regola che mescola le due, come «almeno 60 e in più l'80% di presenze oppure un certificato medico», richiede una funzione dentro l'altra: =AND(B2>=60, OR(C2>=80, D2="note")). Scrivi prima la parte interna. Controlla che dia TRUE e FALSE dove te lo aspetti, e solo dopo racchiudila.
| Voto | % presenze | AND | OR |
|---|---|---|---|
| 93 | 95 | TRUE | TRUE |
| 81 | 70 | FALSE | TRUE |
| 66 | 88 | TRUE | TRUE |
| 55 | 70 | FALSE | FALSE |
Perché il 93 della storia è diventato una D
IF dà due esiti. Per averne di più, metti un altro IF al posto della risposta falsa, e la scala dei voti diventa =IF(B2>=90, "A", IF(B2>=80, "B", IF(B2>=70, "C", IF(B2>=60, "D", "F")))). Il foglio prova il primo test e passa al successivo solo se fallisce. È proprio ciò che è andato storto nella storia. Con B2>=60 per primo, un 93 supera subito il primo test e si ferma a D. I test più alti non vengono mai letti. Parti dalla soglia più alta e scendi.
Conta le parentesi: quattro IF richiedono quattro parentesi di chiusura alla fine. La pagina dei limiti di Excel ammette 64 livelli di funzioni annidate, ma oltre tre o quattro livelli una formula diventa difficile da leggere e facile da rompere. Le versioni più recenti di entrambi i programmi hanno IFS, che elenca coppie di test e risposta una dopo l'altra senza annidare, e la guida di Google su IF rimanda a questa funzione. Per una scala lunga, la tabella di ricerca della prossima unità di solito è ancora più chiara, perché le soglie stanno in celle dove chiunque può vederle e cambiarle.
Nel laboratorio qui sotto, la colonna dei giudizi usa quattro IF annidati e la colonna della promozione usa IF con AND. Riempile entrambe in basso e confronta Ben con Dev. Ben ha il voto migliore ma non passa per le presenze. Dev è sempre presente ma ha un voto sotto 60.
Trascina per ruotare. Scorri o avvicina le dita per lo zoom.
- Iniziare un IF annidato dalla soglia più bassa. Vince il primo test TRUE. Con B2>=60 per primo, ogni voto da 60 in su si ferma a D.
- Scrivere =IF(B2>=60 AND C2>=80, ...). AND è una funzione che prende i test come argomenti, non una parola messa in mezzo. Scrivi AND(B2>=60, C2>=80).
- Usare OR quando la regola dice «entrambi». Uno studente con 81 punti e il 70% di presenze passa con OR e non passa con AND. Di' la regola ad alta voce: una «e» nella frase significa AND.
- Perdere il conto delle parentesi di chiusura. Quattro IF annidati richiedono quattro ) alla fine. Se ne manca una, la formula non viene accettata.
- B2 è 81 e C2 è 70. Che cosa restituisce =AND(B2>=60,C2>=80)?
- FALSE
- TRUE
- Stesse celle. Che cosa restituisce =OR(B2>=60,C2>=80)?
- TRUE
- FALSE
- Che cosa restituisce =NOT(5>3)?
- FALSE
- TRUE
- B2 è 93. Che cosa restituisce =IF(B2>=90, "A", IF(B2>=80, "B", "C"))?
- B2 è 85. Stessa formula. Che cosa restituisce?
- B2 è 93. Che cosa restituisce la formula con l'ordine sbagliato =IF(B2>=60, "D", IF(B2>=90, "A", "F"))?
- Quante parentesi di chiusura terminano una formula con quattro IF annidati e nient'altro?
- Quanti livelli di funzioni annidate ammette Excel?
- B2 è 66 e C2 è 88. Che cosa restituisce =IF(AND(B2>=60, C2>=80), "Yes", "No")?
- Quali voti verificano meglio una formula «con 60 o più si passa»?
- 60 e 59.9
- 100 e 0
- 75 e 76
- 30 e 90
- AND: ogni test TRUE. OR: almeno uno TRUE. NOT: il contrario.
- Usale dentro IF per trasformare TRUE o FALSE in parole.
- IF annidato: metti l'IF successivo al posto della risposta falsa, partendo dalla soglia più alta.
- Verifica i confini. Per scale lunghe, una tabella di ricerca è più chiara.
Fonti di questo corso (19)
- Microsoft Support, "Switch between relative, absolute, and mixed references" (support.microsoft.com/en-us/office/dfec08cd-ae65-4f56-839e-5f0d8d0baca9: $ before column and row, F4 to switch, copying two down and two right: $A$1 stays, A$1 to C$1, $A1 to $A3, A1 to C3)
- Microsoft Support, "AVERAGE function" (support.microsoft.com/en-us/office/047bac88-d466-426c-a32b-8f33eb960cf6: text, logical values and empty cells in a reference ignored, zeros included; 10, 7, 9, 27, 2 gives 11, with 5 gives 10; mean 5, median 4, mode 3 for 2 3 3 5 7 10)
- Microsoft Support, "COUNT function" (support.microsoft.com/en-us/office/a59cd7fc-b623-4d93-87a4-d23bf411294c: only numbers counted, dates count, errors and text do not)
- Microsoft Support, "ROUND function" (support.microsoft.com/en-us/office/c018c5d8-40fb-4053-90b1-b3e7f61a213c: num_digits required; 2.15 to 2.2, -1.475 to -1.48, 626.3 to 1000, 1.98 to 0, -50.55 to -100)
- Microsoft Support, "IF function" (support.microsoft.com/en-us/office/69aed7c9-4e8a-4755-a9bc-aa8bbff73be2: value_if_false optional, text in quotes except TRUE and FALSE, 0 and #NAME? problems)
- Microsoft Support, "VLOOKUP function" (support.microsoft.com/en-us/office/0bbc8083-26fe-4963-8ab8-93a18ad188a1: range_lookup TRUE by default, sorted first column, #N/A, #REF!, #VALUE!, absolute table range, wildcards with FALSE)
- Microsoft Support, "XLOOKUP function" (support.microsoft.com/en-us/office/b7fd680e-6d10-43e6-84f9-88eae8bf5929: not in Excel 2016 and Excel 2019, exact match by default)
- Microsoft Support, "How to correct a #VALUE! error" (support.microsoft.com/en-us/office/15e1b616-fbf2-4147-9c0b-0a11a20e409e: + and * may not calculate cells with text, use SUM instead, IFERROR hides all errors)
- Microsoft Support, "Excel specifications and limits" (15 digits, 64 nested levels, 255 arguments)
- Google Docs Editors Help, "VLOOKUP" (support.google.com/docs/answer/3093318: is_sorted TRUE by default, FALSE recommended, search down to a larger value, " Apple" and "Apple " differ, wildcards, IFNA, absolute range)
- Google Docs Editors Help, "XLOOKUP" (support.google.com/docs/answer/12405947)
- Google Docs Editors Help, "ROUND" (support.google.com/docs/answer/3093440: places optional, 0 by default, rounding by magnitude)
- Google Docs Editors Help, "IF" (support.google.com/docs/answer/3093364: order of the answers is the most common problem, IFS)
- Google Docs Editors Help, "AVERAGE" (support.google.com/docs/answer/3093615: text ignored, any number of arguments)
- Google Docs Editors Help, "COUNTA" (support.google.com/docs/answer/3093991: zero-length strings and spaces count)
- Google Docs Editors Help, "Keyboard shortcuts for Google Sheets" (support.google.com/docs/answer/181110: F4 and Fn+F4 while entering a formula, F4 as Redo)
- Pryor Learning and Exceljet (F4 cycle A1, $A$1, A$1, $A1; = comparison not case-sensitive)
- Ablebits (IF without value_if_false returns FALSE)
- Spreadsheet Class (Sheets circular dependency shows #REF!)
Consultato il: 2026-10-19