Se hai una formula in un foglio di lavoro e la cella a cui fa riferimento la formula è vuota, la formula restituisce comunque un valore zero. Ad esempio, se hai la formula = A3, la formula restituisce il contenuto della cella A3, a meno che la cella A3 non sia vuota. In tal caso, la formula restituisce un valore pari a zero.

Ciò sembra essere correlato all’idea che è impossibile per una formula restituire un valore vuoto, quando “vuoto” viene utilizzato come sinonimo di “vuoto”.

Tuttavia, puoi espandere leggermente la formula in modo che restituisca una stringa vuota. Invece di usare = A3 come formula, useresti quanto segue:

=IF(ISBLANK(A3),"",A3)

Questa formula utilizza ISBLANK, che restituisce True o False, a seconda che la cella di riferimento (A3) sia vuota o meno. La funzione SE restituisce quindi una stringa vuota (“”) se A3 è vuoto oppure utilizza il valore in A3 se A3 non è vuoto.

Indipendentemente da ciò che restituisce la formula, puoi comunque utilizzare il suo risultato in altre formule e funzionerà bene. Anche se restituisce una stringa vuota, viene comunque trattata da altre formule come se contenesse zero.

Nelle aree in cui trattare la cella come se contenesse zero potrebbe essere problematico (come quando si tracciano i risultati della formula), è possibile modificare un po ‘la formula, come mostrato qui:

=IF(ISBLANK(A3),NA(),A3)

Questa formula restituisce l’errore # N / D se A3 è vuoto. Questo errore si propaga attraverso altre formule che fanno riferimento alla formula, ma l’errore # N / D viene ignorato completamente durante la creazione di grafici.

Mentre le soluzioni di cui sopra sono soddisfacenti per la maggior parte delle persone, alcune persone vorrebbero davvero vedere una cella di destinazione essere veramente vuota se la cella di origine è vuota. Ad esempio, potresti volere che la cella B7 sia vuota se la cella A3 è vuota. Se inserisci una formula nella cella B7 (come già discusso), la cella B7 non è veramente vuota: contiene una formula.

Se questo è il tuo obiettivo – il vero “vuoto” – allora puoi raggiungerlo solo attraverso l’uso di una macro. La macro dovrà verificare se la cella di origine è stata modificata. In tal caso, tutto ciò che si trova nell’origine deve essere copiato nella cella di destinazione.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim rMonitor As Range     Dim rTarget As Range

Set rMonitor = Range("A3")

Set rTarget = Range("B7")



If Not Intersect(Target, rMonitor) Is Nothing Then         rMonitor.Copy rTarget     End If

Set rMonitor = Nothing     Set rTarget = Nothing End Sub

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (10105) si applica a Microsoft Excel 2007, 2010, 2013 e 2016.

Puoi trovare una versione di questo suggerimento per la vecchia interfaccia del menu di Excel qui: