Le funzioni di Excel come CERCA.VERT, CONFRONTA e INDICE sono strumenti molto potenti, ma quando non funzionano, generano errori che possono rovinare un intero foglio di calcolo. I messaggi di errore possono essere particolarmente insidiosi se compaiono nei fogli di lavoro degli utenti finali come report e dashboard. Fortunatamente, Excel ha dei metodi per intercettare gli errori come #VALORE!, #NUM! e #RIF! prima che si facciano vedere. Potrete imparare a gestire i messaggi di errore di Excel continuando a leggere…
Perché compaiono i messaggi di errore
Quando si utilizzano le funzioni di Excel, esse si aspettano di ricevere input con determinate caratteristiche. Quando si utilizza SOMMA per sommare insieme le celle, Excel presuppone che i vari riferimenti siano numeri. Quando si utilizza CERCA.VERT per trovare un valore in un intervallo di celle, Excel confida che il valore ci sia. Ogni volta che Excel non trova quello che si aspetta, verrà restituito un messaggio di errore.
I tipi di errore in Excel
#VALORE!
#VALORE! è probabilmente l’errore più comune. Esso si verifica quando il tipo di dati fornito a una funzione non corrisponde a quello che essa si aspetta. Un semplice esempio potrebbe essere la somma di un valore di testo con un numero:
="A"+1
#RIF!
Gli errori #RIF! si verificano quando un riferimento di cella viene eliminato o spostato. Excel tenta di aggiornare automaticamente tutti i riferimenti, ma quando non può farlo, sostituisce il riferimento di cella con l’errore. Per esempio, se avessimo sommato il contenuto delle celle A1 e B1, la funzione sarebbe simile a questa:
=A1+B1
Dopo l’eliminazione della cella B1, la funzione si trasformerebbe in questa:
=A1+#RIF!
#DIV/0!
#DIV/0! appare quando una operazione matematica tenta di dividere per zero (che non è possibile). Di solito, questo si verifica quando una funzione CONTA o SOMMA dà come risultato zero e un’altra cella sta operando sul suo risultato. Per avere un esempio è sufficiente dividere un qualsiasi numero per zero:
=1/0
#NOME?
#NOME? compare quando Excel non riesce a trovare un intervallo denominato. Excel presuppone che qualsiasi stringa non racchiusa tra virgolette, che non sia un nome di funzione, sia un intervallo denominato. È molto probabile che questo si verifichi quando ci si dimentica di racchiudere una stringa tra virgolette o quando ci si sbaglia a digitare un riferimento di cella. Per esempio:
=A+1
#NULLO!
#NULLO! viene restituito quando Excel non può capire l’intervallo specificato in una cella. Questo può accadere quando si inserisce uno spazio tra gli argomenti di una funzione piuttosto che utilizzare il punto e virgola. Per esempio:
=SOMMA(A1 C1)
#N/D
L’errore #N/D appare quando una funzione come CONFRONTA o CERCA.VERT non riesce a trovare il valore che è stato richiesto. Per esempio:
=CONFRONTA("A";{"B"."C"};0)
#NUM!
Questo errore si verifica quando si fornisce un numero non valido nell’argomento di una funzione. Ad esempio, utilizzando un numero negativo quando è necessario uno positivo. Oppure, utilizzando i simboli $ o % con il numero. Ad esempio, non è possibile calcolare la radice quadrata di un numero negativo:
=RADQ(-16)
Falsi errori in Excel
Ci sono poi un paio di condizioni di errore in Excel che non sono veri e propri errori. Essi sono generalmente il risultato di un problema di formattazione o di un foglio di lavoro che sta ancora calcolando.
########
Ci sono due ragioni per le quali si potrebbe vedere una stringa di simboli di cancelletto (#) in una cella. Il primo è che la colonna della cella è troppo stretta per visualizzare il valore. La soluzione è semplice: basta espandere colonna per adattarla al contenuto.
La seconda ragione per cui potreste vedere ######## è se una cella in formato data diventa negativa. Di solito questo accade quando vengono eseguite operazioni di sottrazione tra date o orari.
In entrambi i casi, i dati sono ancora disponibili nella cella – è semplicemente un problema di formattazione. Altre formule che fanno riferimento alla cella possono ancora vedere e utilizzare le informazioni, quindi non si tratta di un vero e proprio errore.
#ESTRAZIONE_DATI_IN_CORSO
#ESTRAZIONE_DATI_IN_CORSO è un messaggio che può apparire in Excel quando un foglio di lavoro di grandi dimensioni o complesso viene calcolato. In Excel 2007 e versioni successive, le operazioni sono raggruppate in modo che le celle più complicate possono terminare il calcolo dopo di quelle più semplici. Mentre i calcoli stanno ancora elaborando, le celle non finite possono visualizzare #ESTRAZIONE_DATI_IN_CORSO. Poiché il messaggio è temporaneo e scompare quando il calcoli è completo, questo non è un vero errore.
Le funzioni di gestione degli errori in Excel
Excel dispone di una libreria di funzioni che può intercettare i messaggi di errore prima che vengano visualizzati. Queste funzioni possono quindi rendere più pulita una dashboard o un report, e sono soprattutto utili con le funzioni di ricerca nidificate e con i fogli di lavoro più sofisticati.
VAL.NON.DISP
La funzione VAL.NON.DISP valuta un errore #N/D e restituisce il valore booleano VERO se lo trova. Se l’argomento che gli viene dato in pasto non è un errore #N/D restituisce FALSO. La sintassi è la seguente:
=VAL.NON.DISP(valore)
VAL.ERR
La funzione VAL.ERR valuta tutte le tipologie di errore ad eccezione di #N/D. Se l’input è un errore #VALORE!, #RIF !, #DIV/0, #NOME? o NULLO!, VAL.ERR restituisce il valore booleano VERO. Se non è nessuno di questi tipi di errore, restituisce FALSO. La sintassi è la seguente:
=VAL.ERR(valore)
VAL.ERRORE
La funzione VAL.ERRORE intercetta tutti i tipi di errore e restituisce il valore booleano VERO. Se l’input è un errore #VALORE!, #RIF !, #DIV/0, #NOME?, NULLO! o #N/D, restituisce VERO. Se non è un errore, restituisce FALSO. La sintassi è la seguente:
=VAL.ERRORE(valore)
ERRORE.TIPO
La funzione ERRORE.TIPO restituirà un numero da 1 a 8 che corrisponde al tipo di errore contenuto nel riferimento di cella avuto come argomento. Se il riferimento di cella non contiene un errore, la funzione restituisce il proprio errore #N/D. I possibili valori da inserire come argomento nella funzione ERRORE.TIPO sono i seguenti (più frequentemente vengono però forniti come argomento dei riferimenti a celle contenenti l’errore):
Ad esempio, se la cella A1 contenesse un errore #VALORE!, la formula:
=ERRORE.TIPO(A1)
restituirebbe 3 come risultato.
SE.ERRORE
La funzione SE.ERRORE combina le funzioni SE e VAL.ERRORE per attivare una funzione alternativa da utilizzare in caso di errore. La sintassi è la seguente:
=SE.ERRORE(valore; valore_se_errore)
Le più comuni tecniche di gestione degli errori
Intercettare gli errori di ricerca con SE.ERRORE
Quando utilizzate CERCA.VERT o CERCA.ORIZZ per riempire i campi da una tabella di ricerca, queste funzioni daranno un errore se non viene trovata una corrispondenza. Invece di visualizzare lo sgradevole errore #VALORE!, SE.ERRORE può intercettare l’errore e visualizzare un messaggio alternativo. Guardate il seguente esempio:
=SE.ERRORE(CERCA.VERT(A1;C:C;1;FALSO);"Nessuna corrispondenza")
Nella formula di cui sopra, CERCA.VERT sta cercando di trovare il contenuto della cella A1 nella colonna C. Se non fosse possibile trovare una corrispondenza, normalmente restituirebbe un errore, ma invece restituisce “Nessuna corrispondenza”.
Ricerche con SE.ERRORE nidificati
Se una funzione di ricerca come CONFRONTA, restituisce un errore al primo tentativo, le funzioni SE.ERRORE nidificate possono eseguire una seconda o anche una terza ricerca nel campo indicato nel loro argomento valore_se_errore. Guardate il seguente esempio:
=SE.ERRORE(CONFRONTA(A1;F2:F11;0);SE.ERRORE(CONFRONTA(A1;G:G;0);"Nessuna corrispondenza"))
Nell’esempio precedente, il primo CONFRONTA cerca di trovare il contenuto della cella A1 nelle celle F2:F11. Se non è possibile trovare una corrispondenza, normalmente restituirebbe un errore, ma, invece, facciamo un’altra ricerca del valore in A1 nella colonna G. Infine, se entrambe le funzioni CONFRONTA falliscono, il secondo SE.ERRORE mostra “Nessuna corrispondenza”.
Istruire gli utenti del foglio di lavoro Attraverso SE.ERRORE
Le intercettazioni di errore possono anche essere utilizzate per istruire un utente su come compilare moduli o utilizzare una dashboard all’interno di un foglio di calcolo. Supponiamo che abbiate un calcolo che divide un valore per una cella, il cui valore debba essere inserito dall’utente. Questo input dell’utente deve essere diverso da zero, o la funzione non funzionerebbe e restituirebbe un errore #DIV/0!. Accanto alla cella di input dell’utente, è possibile fornire istruzioni in base alle sue azioni:
=SE(SE.ERRORE(B5);”Il valore deve essere maggiore di zero.“;”Input accettato.“)
In questo esempio, B5 è la cella di calcolo in cui avviene la divisione. Se l’operazione di divisione restituisce un errore #DIV/0!, la formula mostrerebbe “Il valore deve essere maggiore di zero.” Altrimenti, mostra solo “Input accettato.”