Durante l’utilizzo della funzione IF, Vineet desidera mantenere il vecchio valore nella cella se la condizione è falsa. In altre parole, il valore in una cella in cui viene utilizzata la funzione SE dovrebbe cambiare solo se la condizione testata dalla funzione SE è vera. Per impostazione predefinita, tuttavia, la funzione IF rende il valore 0 se la condizione è False.

La funzione IF può richiedere fino a tre parametri. Il primo parametro è il confronto che deve essere effettuato, il secondo parametro è ciò che dovrebbe essere restituito se il confronto è vero e il terzo è ciò che dovrebbe essere restituito se il confronto è falso. È possibile tralasciare l’ultimo parametro, ma se lo fai, Excel restituirà il valore 0 se il confronto è falso. (Questo è ciò che Vineet sta vedendo restituito dal suo utilizzo della funzione IF.)

La soluzione ovvia, quindi, è assicurarsi di fornire alla funzione IF qualcosa che dovrebbe essere restituito quando il confronto è falso. Ad esempio, diciamo che la tua formula è nella cella B1 e stai confrontando qualcosa nella cella A1. La formula che usi potrebbe assomigliare a questa:

=IF(A1<10,"under ten",B1)

Notare che le parole “meno di dieci” vengono restituite se il valore in A1 è minore di 10. Se questa condizione non viene soddisfatta, viene restituito il valore in B1.

Poiché questa formula si trova nella cella B1, ciò significa che il valore precedente nella cella viene restituito se la condizione è falsa.

Significa anche che la formula contiene un riferimento circolare. Affinché i riferimenti circolari funzionino correttamente, è necessario far sapere a Excel che è OK che si verifichino nel foglio di lavoro. Segui questi passaggi se stai usando Excel 2010 o una versione successiva:

  1. Visualizzare la scheda File della barra multifunzione e quindi fare clic su Opzioni. Excel visualizza la finestra di dialogo Opzioni di Excel.

  2. Sul lato sinistro della finestra di dialogo, scegli Formule. (Vedi figura 1.)

  3. Assicurati che la casella di controllo Abilita calcolo iterativo sia selezionata.

  4. Fare clic su OK.

Se utilizzi Excel 2007, scegli Strumenti | Opzioni | Scheda Calcolo e assicurati che la casella di controllo Iterazione sia selezionata. Excel consentirà ora il riferimento circolare senza reclami.

Se non si desidera consentire un riferimento circolare nel foglio di lavoro, l’unica soluzione è creare una macro che aggiorni il valore nella cella B1 in base a eventuali modifiche alla cella A1:

Private Sub Workbook_SheetChange(ByVal Sh As Object, _   ByVal Target As Range)



' See if the change is related to our cell     If Not (Application.Intersect(Target, Range("A1")) _       Is Nothing) Then         If Range("A1") < 10 Then             Range("B1") = "under ten"

End If     End If End Sub

Questa semplice macro, quando viene aggiunta al modulo ThisWorkbook, viene eseguita ogni volta che viene apportata una modifica alla cartella di lavoro. Se il valore è la cella A1 viene modificato (e solo quella cella), il valore viene controllato per vedere se è inferiore a 10. Se lo è, il valore nella cella B1 viene modificato. In caso contrario, il valore nella cella B1 viene lasciato solo.

C’è un “trucco” che devi tenere a mente con uno qualsiasi degli approcci discussi finora, formula o macro. Se il valore nella cella A1 è (diciamo) 15, la cella B1 conterrà ciò che c’era prima, qualunque cosa fosse. Se modifichi il valore nella cella A1 in (diciamo) 7, B1 cambierà in “meno di dieci”. Va bene, ma da quel punto in poi la cella B1 non sembrerà mai cambiare. Perché? Perché se poi cambi la cella A1 con un valore maggiore di 10, la cella B1 conterrà (come appena spiegato) quello che c’era prima. E, come ora capisci, il valore che c’era prima è il risultato del vero risultato precedente, che era “meno di dieci”. Pertanto, vero o falso, la formula o la macro da questo punto in poi visualizza il testo “sotto i dieci”.

_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 (8264) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 ed Excel in Office 365. Puoi trovare una versione di questo suggerimento per la vecchia interfaccia di menu di Excel qui: