Mostra solo il massimo di ripetizioni multiple (Microsoft Excel)
Mike ha tre celle (A1: A3) che mostrano i risultati dei calcoli. Ha bisogno di un modo per determinare il valore massimo che è mai apparso in una di queste celle e memorizzare quel valore nella cella E5. Sa come ottenere il massimo dai tre, ma quando ricalcola il foglio di lavoro, se i valori in A1: A3 sono inferiori al valore massimo in E5 (in base alle precedenti determinazioni del massimo in A1: A3), allora E5 non dovrebbe cambiare. In altre parole, E5 dovrebbe cambiare solo se ciò che è in A1: A3 è maggiore di ciò che è in E5. Mike non è sicuro di come eseguire un tale calcolo.
Esistono due modi per risolvere questo problema. Il primo è creare una semplice formula da inserire nella cella E5:
=MAX(A1:A3,E5)
La funzione MAX esamina i vari valori a cui fa riferimento e quindi restituisce il massimo di essi, esattamente ciò che si desidera. Tuttavia, poiché questa formula viene inserita nella cella E5 e fa riferimento anche a E5, restituirà un errore. Questo perché la formula crea un riferimento circolare. Excel può gestirli, ma è necessario apportare una piccola modifica alla configurazione per farlo:
-
Visualizza la finestra di dialogo Opzioni di Excel. (In Excel 2007 fare clic sul pulsante Office e quindi su Opzioni di Excel. In Excel 2010 e versioni successive visualizzare la scheda File della barra multifunzione e quindi fare clic su Opzioni.)
-
Fare clic su Formule sul lato sinistro della finestra di dialogo. (Vedi figura 1.)
-
Assicurati che la casella di controllo Abilita calcolo iterativo sia selezionata.
-
Fare clic su OK.
Ora Excel gestirà i riferimenti circolari, come la semplice formula che hai inserito nella cella E5.
Il secondo approccio consiste nell’utilizzare una macro per eseguire il calcolo. Questo approccio può essere preferito perché potresti non voler (per qualche motivo) abilitare i riferimenti circolari nella tua cartella di lavoro. Il seguente è in realtà un gestore di eventi, aggiunto al codice per il foglio di lavoro. (Metodo più semplice:
Fare clic con il pulsante destro del mouse sulla scheda del foglio, visualizzare la finestra del codice dal menu contestuale risultante e aggiungere la macro a quella finestra del codice.)
Private Sub Worksheet_Calculate() Dim dMax As Double dMax = Application.WorksheetFunction.Max(Range("A1:A3")) If dMax > Range("E5") Then Application.EnableEvents = False Range("E5") = dMax Application.EnableEvents = True End If End Sub
La macro viene attivata ogni volta che il foglio di lavoro viene ricalcolato. Afferra il massimo di A1: A3 e lo confronta con quello che è in E5. Solo se è maggiore, tale valore viene inserito in E5.
_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 (10916) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 ed Excel in Office 365. Puoi trovare una versione di questo suggerimento per l’interfaccia del menu precedente di Excel qui: