edubun
Italiano

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.

ContestoUn esempio inventato. Un'insegnante prepara il foglio dei voti la sera prima della consegna. La regola è A da 90 in su, B da 80, C da 70, D da 60 e F sotto. Scrive i test nell'ordine in cui le vengono in mente, dal più basso: =IF(B2>=60, "D", IF(B2>=70, "C", ...)). Ogni studente con 60 o più prende D, compreso uno che ha preso 93. Nessun errore appare. Il mattino dopo se ne accorge uno studente. La soluzione è invertire l'ordine, e il motivo è spiegato qui sotto.

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% presenzeANDOR
9395TRUETRUE
8170FALSETRUE
6688TRUETRUE
5570FALSEFALSE

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.

Verifica i casi limite. Per una scala di voti, prova esattamente 90, 89.9, 60 e 59.9 prima di fidarti della formula. La maggior parte degli errori si nasconde su un confine, dove > e >= danno risposte diverse.
Caricamento

Trascina per ruotare. Scorri o avvicina le dita per lo zoom.

Scrivi la formula dei giudizi in D2 e riempi in basso. Prova a mettere per primo il test del 60 e guarda Ana scendere a D.
Errori comuni
  • 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.
Nota per l'insegnanteL'IF annidato è spesso la prima formula che gli studenti non riescono a leggere al primo sguardo. Costruitela per gradi alla lavagna: un solo IF per A o «non A», poi sostituite «non A» con un secondo IF, e così via, verificando dopo ogni passo. Fate prevedere il giudizio per 93, 85, 60 e 59.9 prima di riempire in basso. La storia dell'ordine sbagliato vale la pena di raccontarla. Fallisce senza nessun errore, e la soluzione è evidente una volta vista.
  1. B2 è 81 e C2 è 70. Che cosa restituisce =AND(B2>=60,C2>=80)?
    • FALSE
    • TRUE
  2. Stesse celle. Che cosa restituisce =OR(B2>=60,C2>=80)?
    • TRUE
    • FALSE
  3. Che cosa restituisce =NOT(5>3)?
    • FALSE
    • TRUE
  4. B2 è 93. Che cosa restituisce =IF(B2>=90, "A", IF(B2>=80, "B", "C"))?
  5. B2 è 85. Stessa formula. Che cosa restituisce?
  6. B2 è 93. Che cosa restituisce la formula con l'ordine sbagliato =IF(B2>=60, "D", IF(B2>=90, "A", "F"))?
  7. Quante parentesi di chiusura terminano una formula con quattro IF annidati e nient'altro?
  8. Quanti livelli di funzioni annidate ammette Excel?
  9. B2 è 66 e C2 è 88. Che cosa restituisce =IF(AND(B2>=60, C2>=80), "Yes", "No")?
  10. 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
Punti chiave
  • 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