Menu

SE.ERRORE in Excel: sostituire #N/D e #DIV/0! (IFERROR)

=SE.ERRORE(B2/C2;0) restituisce B2/C2, oppure 0 quando la divisione dà un errore. Impara SE.ERRORE con CERCA.VERT, a restituire una cella vuota invece di un errore, perché SE.NON.DISP. è la scelta migliore per le ricerche, e perché nascondere ogni errore può nascondere sbagli veri.

Ogni foglio di questa pagina è interattivo: cambia un numero o una formula e si ricalcola.

=SE.ERRORE(B2/C2;0) restituisce il risultato di B2/C2, oppure 0 quando quel risultato è un errore. Il primo argomento è la formula che vuoi; il secondo è ciò che va mostrato al posto di qualsiasi errore essa produca. SE.ERRORE si chiama IFERROR in Excel inglese, ed è così che la mostra la tabella: =IFERROR(B2/C2,0). Puoi scrivere le formule anche in italiano, con il punto e virgola.

Prezzo per unità
E2
ABCDE
1ProductRevenueUnitsPlainWith IFERROR
2Pens$12080$1.50$1.50
3Paper$30050$6.00$6.00
4Ink$900#DIV/0!$0.00
5Tape$4530$1.50$1.50
6Clips$00#DIV/0!$0.00
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =SE.ERRORE(B2/C2;0)

Ink e Clips hanno 0 unità, quindi la divisione semplice nella colonna D mostra #DIV/0!. La colonna E mostra $0.00 per loro e il prezzo normale per ogni altra riga. Scrivi 15 in C4 ed entrambe le colonne mostrano il prezzo di Ink.

Sintassi di SE.ERRORE

=IFERROR(value, value_if_error)
  • value (valore) è la formula da calcolare.
  • value_if_error (valore_se_errore) viene restituito quando value è un errore qualsiasi: #N/D, #VALORE!, #RIF!, #DIV/0!, #NUM!, #NOME?, #NULLO!, e quelli più recenti come #CALC!. La tabella mostra i nomi degli errori in inglese (#N/A, #VALUE!, #REF!, #NAME?, #NULL!).
  • Se value non è un errore, SE.ERRORE lo restituisce invariato.

La sostituzione può essere un numero (0), un testo ("Not found"), un testo vuoto ("") o un'altra formula, per esempio una seconda ricerca in un'altra tabella: =SE.ERRORE(CERCA.VERT(E2;A2:C6;3;FALSO);CERCA.VERT(E2;G2:I6;3;FALSO)).

SE.ERRORE con CERCA.VERT

Una ricerca restituisce #N/D quando il valore non è nella tabella. Racchiuderla in SE.ERRORE mostra invece un messaggio:

Cercare un prezzo
F2
ABCDEF
1ProductCategoryPriceLook forPrice
2AppleFruit$1.20Pear$1.50
3PearFruit$1.50KiwiNot found
4CarrotVegetable$0.80Milk$1.10
5BreadBakery$2.40
6MilkDairy$1.10
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =SE.ERRORE(CERCA.VERT(E2;$A$2:$C$6;3;FALSO);"Not found")

Kiwi non è nell'elenco, quindi F3 dice Not found. Scrivi Kiwi in A4 al posto di Carrot e F3 lo trova. Con CERCA.X (in inglese XLOOKUP) per questo non ti serve SE.ERRORE, perché il suo quarto argomento è il valore "non trovato": =CERCA.X(E2;A2:A6;C2:C6;"Not found").

SE.NON.DISP.: intercettare solo #N/D

SE.NON.DISP. (in inglese IFNA) funziona come SE.ERRORE ma sostituisce solo #N/D. Per le ricerche di solito è ciò che vuoi: #N/D significa "non trovato", una risposta normale, mentre qualsiasi altro errore significa che la formula stessa è sbagliata. In questa tabella le formule chiedono la colonna 4 di una tabella a tre colonne, un errore di battitura:

SE.ERRORE nasconde un errore di battitura, SE.NON.DISP. lo mostra
F2
ABCDEFG
1ProductCategoryPriceLook forIFERRORIFNA
2AppleFruit1.2PearNot found#REF!
3PearFruit1.5
4CarrotVegetable0.8
5BreadBakery2.4
6MilkDairy1.1
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =SE.ERRORE(CERCA.VERT(E2;$A$2:$C$6;4;FALSO);"Not found")

Pear è nella tabella, eppure F2 dice Not found: SE.ERRORE ha trasformato il #RIF! dovuto al numero di colonna sbagliato nello stesso messaggio di un prodotto mancante. G2 lascia passare il #RIF!, così vedi che la formula è rotta. Cambia il 4 in 3 in G2 e restituisce 1,5. SE.NON.DISP. richiede Excel 2013 o versioni successive.

Restituire una cella vuota invece di un errore

Per non mostrare nulla, usa come sostituzione un testo vuoto, due virgolette doppie:

Crescita con celle vuote al posto degli errori
D2
ABCD
1MonthLast yearThis yearGrowth
2Jan20024020%
3Feb0150
4Mar180171-5%
5Apr90
6May25030020%
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =SE.ERRORE((C2-B2)/B2;"")

Febbraio e aprile non avevano vendite l'anno scorso, quindi la loro crescita non si può calcolare e la cella resta vuota. Gli altri mesi mostrano 20%, meno 5% e 20%. Una cella con "" contiene testo: SOMMA e MEDIA la saltano, ma =D3*2 dà #VALORE!. Se formule successive fanno calcoli sulla colonna, restituisci invece 0.

Esercizio: ricerca con un'alternativa

Ricerca della giacenza
F2
ABCDEF
1ProductStockLook forStock
2Apple40Kiwi
3Pear25
4Carrot60
5Bread12
6Milk30
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.

Tocca a te: In F2, cerca la giacenza del prodotto in E2 in A2:B6, e mostra "Not found" quando non è nell'elenco.

Perché nascondere ogni errore può nascondere sbagli

SE.ERRORE non corregge nulla; decide cosa mostra la cella. Prima di racchiudere una formula al suo interno:

  1. Scopri perché si verifica l'errore. Quando una cella Units vuota causa #DIV/0!, la vera soluzione potrebbe essere un dato che qualcuno deve inserire, non un prezzo pari a zero.
  2. Per le ricerche preferisci SE.NON.DISP., così un numero di colonna sbagliato (#RIF!), un nome scritto male (#NOME?) o del testo in una colonna di numeri (#VALORE!) restano visibili.
  3. Per le divisioni verifica il caso specifico. =SE(C2=0;0;B2/C2) gestisce un divisore zero e nient'altro; un riferimento sbagliato in B2 mostra comunque il suo errore. La pagina su #DIV/0! confronta i due approcci.
  4. Scegli una sostituzione che non si possa scambiare per un dato. Uno 0 in una colonna di prezzi sembra un prezzo vero e abbassa la media; "" o "Not found" no.

Racchiudi la formula per ultima, quando dà il risultato giusto sulle righe che dovrebbero funzionare.

Domande frequenti

Come si usa SE.ERRORE con CERCA.VERT?

Racchiudi la ricerca: =SE.ERRORE(CERCA.VERT(E2;A2:C6;3;FALSO);"Not found"). Quando E2 non è nella prima colonna, la cella mostra Not found invece di #N/D. =SE.NON.DISP.(CERCA.VERT(E2;A2:C6;3;FALSO);"Not found") fa lo stesso e continua a mostrare gli altri errori.

Come faccio a far restituire a SE.ERRORE una cella vuota?

Usa un testo vuoto come secondo argomento: =SE.ERRORE(B2/C2;""). La cella sembra vuota, ma contiene testo, quindi =D2+1 su di essa dà #VALORE!; SOMMA e MEDIA la saltano.

Che differenza c'è tra SE.ERRORE e SE.NON.DISP.?

SE.ERRORE sostituisce ogni errore: #N/D, #DIV/0!, #VALORE!, #RIF!, #NOME?, #NUM! e #NULLO!. SE.NON.DISP. sostituisce solo #N/D, il "non trovato" delle ricerche, e lascia vedere ogni altro errore, così una formula rotta non resta nascosta.

Come si sostituisce #N/D con 0 in Excel?

Racchiudi la formula in SE.NON.DISP. con 0 come valore: =SE.NON.DISP.(CERCA.VERT(E2;A2:C6;3;FALSO);0). CERCA.X ha la sostituzione già integrata come quarto argomento: =CERCA.X(E2;A2:A6;C2:C6;0).

Quali versioni di Excel hanno SE.ERRORE e SE.NON.DISP.?

SE.ERRORE esiste da Excel 2007 e SE.NON.DISP. da Excel 2013. Nei file più vecchi puoi trovare =SE(VAL.ERRORE(B2/C2);0;B2/C2), che fa lo stesso lavoro di SE.ERRORE ma calcola la formula due volte.

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA