La funzione ISERROR in Excel con esempi di formule

  • Condividi Questo
Michael Brown

L'esercitazione esamina gli usi pratici della funzione ISERROR di Excel e mostra come verificare la presenza di errori in diverse formule.

Quando si scrive una formula che Excel non capisce o non riesce a calcolare, richiama l'attenzione sul problema mostrando un messaggio di errore. La funzione ISERRORE può aiutare a individuare gli errori e a fornire un'alternativa quando viene riscontrato un errore.

    Funzione ISERROR in Excel

    La funzione ISERROR di Excel rileva tutti i tipi di errori, tra cui #CALC!, #DIV/0!, #N/A, #NAME?, #NUM!, #NULL!, #REF!, #VALUE! e #SPILL! Il risultato è un valore booleano: VERO se viene rilevato un errore, FALSO altrimenti.

    La funzione è disponibile in tutte le versioni di Excel dalla 2000 alla 2021 e in Excel 365.

    La sintassi della funzione ISERROR è molto semplice:

    ISERROR(valore)

    Dove valore è il valore della cella o della formula da controllare per individuare eventuali errori.

    Formula ISERROR di Excel

    Per creare una formula ISERROR nella sua forma più semplice, è necessario fornire un riferimento alla cella che si desidera controllare per verificare la presenza di errori, ad esempio:

    =ISERROR(A2)

    Se viene trovato un errore, si ottiene VERO. Se non c'è alcun errore nella cella testata, si ottiene FALSO:

    Formula IF ISERROR in Excel

    Per restituire un messaggio personalizzato o eseguire un calcolo diverso quando si verifica un errore, utilizzare ISERROR insieme alla funzione IF. La formula generica è la seguente:

    SE(ISERROR( formula (...), testo_o_calcolo_se_errore , formula ())

    Tradotto in linguaggio umano, dice: se la formula principale produce un errore, visualizzare il testo specificato o eseguire un altro calcolo, altrimenti restituire il risultato normale della formula.

    Nell'immagine qui sotto, la divisione del totale per la quantità genera un paio di errori nel grafico Prezzo colonna:

    Per sostituire tutti i diversi codici di errore con un testo personalizzato, è possibile utilizzare la seguente formula IF ISERROR:

    =IF(ISERROR(A2/B2), "Sconosciuto", A2/B2)

    In Excel 2007 e versioni successive, lo stesso risultato può essere ottenuto con l'aiuto della funzione IFERROR integrata:

    =IFERROR(A2/B2, "Sconosciuto")

    Va notato che la formula IFERROR è un po' più veloce perché esegue il calcolo di A2/B2 una sola volta, mentre IF ISERROR lo calcola due volte, prima per vedere se genera un errore e poi di nuovo se il test è FALSO.

    Formula IF ISERROR VLOOKUP

    L'uso di ISERROR con VLOOKUP è, in effetti, un caso particolare della formula IF ISERROR discussa in precedenza. Quando la funzione VLOOKUP non trova il valore di ricerca o fallisce per qualsiasi altro motivo, si visualizza un messaggio di testo personalizzato utilizzando questa sintassi:

    IF(ISERROR(VLOOKUP(...)), " testo personalizzato ", VLOOKUP(...))

    Per questo esempio, si estraggono i tempi dalla tabella di ricerca (D3:E10) alla tabella principale (A3:B15). Se il valore di ricerca (nome del partecipante) non esiste nella tabella di ricerca, verrà restituito "Non qualificato".

    =IF(ISERROR(VLOOKUP(A3, $D$3:$E$10, 2, FALSE)), "Non qualificato", VLOOKUP(A3, $D$3:$E$10, 2, FALSE))

    Suggerimento: se si desidera visualizzare un testo personalizzato solo quando un elemento il valore di ricerca non è stato trovato (errore #N/A) ignorando altri errori, utilizzare la formula IFNA VLOOKUP in Excel 2013 e versioni successive o IF ISNA VLOOKUP nelle versioni precedenti.

    Formula IF ISERROR INDEX MATCH

    Quando si esegue una ricerca con l'aiuto della combinazione INDEX MATCH (o formula INDEX XMATCH in Excel 365), è possibile intrappolare e gestire eventuali errori utilizzando la stessa tecnica: la funzione ISERROR controlla la presenza di errori e IF visualizza il testo specificato quando si verifica un errore.

    IF(ISERROR(INDEX ( colonna_ritorno , MATCH ( valore_di_ricerca , colonna_di_ricerca , 0)))), " testo personalizzato ", INDICE ( colonna_ritorno , MATCH ( valore_di_ricerca , colonna_di_ricerca , 0)))

    Supponiamo che la tabella di ricerca abbia gli orari nella prima colonna. Poiché VLOOKUP non è in grado di guardare alla sua sinistra, utilizziamo la formula INDEX MATCH per estrarre gli orari dalla colonna D:

    =INDICE($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))

    Poi, si annida nella formula generica di cui sopra per sostituire gli errori catturati con il testo che si desidera:

    =IF(ISERROR(INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)), "Non qualificato", INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)))

    Nota: come per la formula IF ISERROR VLOOKUP, è più sensato intrappolare solo gli errori #N/A e non mascherare i potenziali problemi della formula stessa. A tale scopo, avvolgere la formula INDEX MATH in IFNA in Excel 2013 e versioni successive o IF ISNA nelle versioni precedenti.

    SE ISERROR Formula Sì/No

    In tutti gli esempi precedenti, IF ISERROR restituisce il risultato della formula principale se non è un errore. Tuttavia, può funzionare anche in un modo diverso: restituire qualcosa se c'è un errore e qualcos'altro se non c'è un errore.

    SE(ISERROR( formula (...)), " testo_se_errore ", " text_if_no_error ")

    Nel nostro set di dati di esempio, supponiamo di non essere interessati ai tempi esatti, ma di voler sapere quali partecipanti del gruppo A sono qualificati e quali no. Per fare questo, si usa la funzione MATCH per confrontare il nome nella colonna A con l'elenco dei partecipanti qualificati nella colonna D, e poi si servono i risultati a ISERROR. Se il nome non è disponibile nella colonna D (MATCH restituisce un errore), si ottienela funzione IF per visualizzare "No" o "Non qualificato". Se il nome compare nella colonna D (nessun errore), restituisce "Sì" o "Qualificato".

    =IF(ISERROR(MATCH(A3, $D$3:$D$10, 0)), "No", "Sì" )

    Come contare il numero di errori

    Per ottenere il numero di errori in una determinata colonna, è necessario controllare un intervallo, non una sola cella. A tale scopo, "alimentare" l'intervallo di destinazione con ISERROR e forzare i valori booleani restituiti in 1 e 0 utilizzando l'operatore doppio unario (--). La funzione SUM o SUMPRODUCT può sommare i numeri e fornire il risultato finale.

    Ad esempio:

    =SOMMA(--ISERRORE(C2:C10))

    Si noti che questa formula funziona come formula regolare solo in Excel 365 e Excel 2021, che supportano gli array dinamici. In Excel 2019 e precedenti, è necessario premere Ctrl + Maiusc + Invio per creare una formula di array (non digitate manualmente le parentesi graffe, non funzionerebbe!):

    {=SUM(--ISERROR(C2:C10))}

    In alternativa, è possibile utilizzare la funzione SUMPRODUCT che gestisce gli array in modo nativo, in modo che la formula possa essere completata con il solito tasto Invio in tutte le versioni:

    =SUMPRODOTTO(--ISERRORE(C2:C10))

    Differenza tra ISERROR e IFERROR in Excel

    Entrambe le funzioni ISERROR e IFERROR sono utilizzate per intrappolare e gestire gli errori in Excel. La differenza è la seguente:

    • Nella sua forma pura, ISERROR verifica semplicemente se il valore è un errore o meno. È disponibile in tutte le versioni di Excel.
    • La funzione IFERROR è progettata per sopprimere o nascondere gli errori: quando viene riscontrato un errore, restituisce un altro valore specificato dall'utente. È disponibile in Excel 2007 e versioni successive.

    A prima vista, IFERROR sembra un'alternativa stenografica alla formula IF ISERROR, ma a uno sguardo più attento si nota la differenza:

    • IFERROR consente di specificare solo valore_se_errore Se non ci sono errori, restituisce sempre il risultato del valore/formula testato.
    • IF ISERROR offre maggiore flessibilità e consente di gestire entrambe le situazioni: cosa dovrebbe accadere in caso di errore e cosa in caso di assenza di errore.

    Per illustrare meglio il punto, considerate queste formule:

    =IFERROR(A1, "Errore di calcolo")

    =IF(ISERROR(A1), "Errore di calcolo", A1)

    Queste due formule sono equivalenti: entrambe controllano un valore determinato dalla formula in A1 e restituiscono "Errore di calcolo" se si tratta di un errore, altrimenti restituiscono il valore.

    Ma se si desidera eseguire un calcolo se il valore in A1 non è un errore, la funzione IFERROR non è in grado di farlo. Nel caso di IF ISERROR, è sufficiente digitare il calcolo desiderato nell'ultimo argomento. Ad esempio:

    =IF(ISERROR(A1), "Errore di calcolo", A1*2)

    Come vedete, questa variante più lunga della formula IFERROR, spesso considerata obsoleta, può ancora essere utile :)

    Download disponibili

    Esempi di formula ISERROR (file .xlsx)

    Michael Brown è un appassionato di tecnologia dedicato con una passione per la semplificazione di processi complessi utilizzando strumenti software. Con oltre un decennio di esperienza nel settore tecnologico, ha affinato le sue competenze in Microsoft Excel e Outlook, nonché in Fogli Google e Documenti. Il blog di Michael è dedicato alla condivisione delle sue conoscenze e competenze con gli altri, fornendo suggerimenti e tutorial facili da seguire per migliorare la produttività e l'efficienza. Che tu sia un professionista esperto o un principiante, il blog di Michael offre spunti preziosi e consigli pratici per ottenere il massimo da questi strumenti software essenziali.