Prendere decisioni con IF
=IF(B2>=60, "Pass", "Fail") si legge come una frase: se il voto è almeno 60, scrivi Pass, altrimenti scrivi Fail.
Prova prima: 60 esatto è sufficiente?
Prima di qualsiasi regola, apri il laboratorio qui sotto. Ana ha preso 72, Ben 45, Chloe esattamente 60 e Dev 59.5. Scrivi =IF(B2>=60,"Pass","Fail") in C2 e riempi in basso. Poi cambia >= in > in C4 e guarda che cosa succede a Chloe. La formula si legge quasi come una frase: se il voto è almeno 60, scrivi Pass, altrimenti scrivi Fail.
Trascina per ruotare. Scorri o avvicina le dita per lo zoom.
Che cosa hai appena scritto: un test e due risposte
IF accetta tre argomenti: un test logico, il valore da restituire quando il test è TRUE e il valore da restituire quando è FALSE. Microsoft la scrive come IF(logical_test, value_if_true, [value_if_false]) e la definisce una delle funzioni più usate di Excel. Sheets usa la stessa forma. Il test di solito è un confronto come B2>=60, una piccola formula a sé che dà TRUE o FALSE, e in base a quello IF sceglie una delle due risposte. Per il 60 di Chloe, B4>=60 è TRUE e B4>60 è FALSE. Questa sola differenza è quella che hai appena visto.
| Confronto | Significato | Con B2 = 72 |
|---|---|---|
| B2=72 | uguale a | TRUE |
| B2<>72 | diverso da | FALSE |
| B2>60 | maggiore di | TRUE |
| B2<60 | minore di | FALSE |
| B2>=72 | almeno | TRUE |
| B2<=71 | al massimo | FALSE |
Le risposte possono essere testo, numeri o calcoli. Il testo va tra virgolette doppie, con un'eccezione segnalata da Microsoft: TRUE e FALSE, che Excel capisce da soli. Così =IF(C2="Yes",1,2) restituisce un numero, e =IF(C2>B2,C2-B2,0) restituisce di quanto una cifra supera il budget, oppure 0 se non lo supera. Due virgolette senza niente in mezzo, "", restituiscono un testo che sembra vuoto. È il modo abituale per lasciare vuota una cella quando non c'è niente da segnalare.
I confronti tra testi ignorano maiuscole e minuscole, quindi "yes"="YES" è TRUE. Anche una cella vuota confrontata con "" dà TRUE, e questo rende =IF(A2="", "missing", A2*2) una comoda protezione contro le celle vuote. La guida di Google indica l'errore più comune con IF: mettere le due risposte nell'ordine sbagliato. Leggi la formula ad alta voce come «se questo, allora quello, altrimenti l'altro», e di solito uno scambio salta all'occhio.
IF funziona bene lungo una colonna. Scrivila una volta per la prima riga, con un riferimento relativo al voto di quella riga, e riempi in basso: ogni studente riceve un risultato. Siccome ogni riga ha la sua copia, puoi ordinare l'elenco o aggiungere studenti sotto e riempire di nuovo. Se il test confronta con un limite fisso tenuto in una cella, come la soglia di sufficienza, quel riferimento ha bisogno dei simboli del dollaro, proprio come l'aliquota nella prima unità di questo corso.
Omettere il terzo argomento
Entrambi i programmi indicano value_if_false come facoltativo. Se lo ometti e il test è falso, Excel restituisce il valore logico FALSE, che sta male in una colonna di parole. L'elenco di Microsoft dei problemi comuni con IF cita anche uno 0 nella cella quando manca un argomento di risposta. Scrivi sempre entrambe le risposte, anche quando una è solo "". C'è anche un vantaggio meno visibile. Viene calcolato solo il ramo scelto, quindi =IF(B2=0, "none", A2/B2) non mostra mai #DIV/0!; la divisione avviene solo quando B2 non è 0.
Un IF non deve per forza finire con delle parole. =B2*IF(C2="member",0.9,1) fa pagare ai soci il 90% del prezzo e a tutti gli altri il prezzo pieno. Qui IF restituisce un numero e la moltiplicazione lo usa come qualsiasi altro valore, quindi una formula per riga sostituisce due colonne separate.
- Usare > quando la regola dice «60 o più». =IF(B4>60,...) boccia un voto di esattamente 60. «Almeno» si scrive >=.
- Scrivere =IF(A1>5,Yes,No) senza virgolette. Yes e No sono testo e vogliono le virgolette; senza, la formula mostra #NAME?. TRUE e FALSE sono l'eccezione.
- Scambiare le due risposte. =IF(B2>=60,"Fail","Pass") funziona senza errori ed etichetta ogni risultato al contrario. La guida di Google indica l'ordine come l'errore più comune con IF.
- Omettere value_if_false. Quando il test è falso, Excel mostra FALSE nella cella. Scrivi "" se vuoi che sembri vuota.
- B2 contiene 72. Che cosa restituisce =IF(B2>=60, "Pass", "Fail")?
- B5 contiene 59.5. Che cosa restituisce =IF(B5>=60, "Pass", "Fail")?
- B4 contiene 60. Che cosa restituisce =IF(B4>60, "Pass", "Fail")?
- B2 contiene 72. Che cosa restituisce =IF(B2>70,B2-70,0)?
- B2 contiene 0. Che cosa restituisce =IF(B2=0, "none", A2/B2)?
- none
- #DIV/0!
- 0
- FALSE
- In Excel, che cosa restituisce =IF(5>9,"big")?
- FALSE
- big
- #N/A
- #VALUE!
- A quale formula bisogna aggiungere le virgolette perché funzioni?
- =IF(A1>5,Yes,No)
- =IF(A1>5,1,0)
- =IF(A1>5,TRUE,FALSE)
- =IF(A1>5,A1,0)
- Che cosa restituisce ="yes"="YES"?
- TRUE
- FALSE
- #VALUE!
- yesYES
- A2 è vuota. Che cosa restituisce =IF(A2="", "missing", A2*2)?
- Qual è l'errore più comune con IF secondo la guida di Google?
- Mettere la risposta vera e quella falsa nell'ordine sbagliato
- Usare numeri come risposte
- Usare >= invece di >
- Scrivere IF in minuscolo
- IF(test, valore se TRUE, valore se FALSE).
- Confronti: = <> > < >= <=. I confronti tra testi ignorano maiuscole e minuscole.
- Le risposte di testo vanno tra virgolette; TRUE e FALSE no.
- Dai sempre entrambe le risposte; viene calcolata solo quella scelta.
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