Mike hat drei Zellen (A1: A3), die Ergebnisse von Berechnungen anzeigen. Er braucht eine Möglichkeit, den Maximalwert zu bestimmen, der jemals in einer dieser Zellen aufgetreten ist, und diesen Wert in Zelle E5 zu speichern. Er weiß, wie man das Maximum aus den drei herausholt, aber wenn er das Arbeitsblatt neu berechnet, wenn die Werte in A1: A3 kleiner sind als der Maximalwert in E5 (basierend auf früheren Bestimmungen des Maximums in A1: A3), dann E5 sollte sich nicht ändern. Mit anderen Worten, E5 sollte sich nur ändern, wenn das, was in A1: A3 ist, größer ist als das, was in E5 ist. Mike ist sich nicht sicher, wie er eine solche Berechnung durchführen soll.

Es gibt zwei Möglichkeiten, wie Sie dieses Problem lösen können. Die erste besteht darin, eine einfache Formel zu erstellen, die in Zelle E5 platziert wird:

=MAX(A1:A3,E5)

Die MAX-Funktion untersucht die verschiedenen Werte, auf die sie verweist, und gibt dann das Maximum aus ihnen zurück – genau das, was gewünscht wird. Da diese Formel jedoch in Zelle E5 platziert wird und auch auf E5 verweist, wird ein Fehler zurückgegeben. Dies liegt daran, dass die Formel einen Zirkelverweis erstellt. Excel kann damit umgehen, aber Sie müssen eine kleine Konfigurationsänderung vornehmen, um dies zu tun:

  1. Zeigen Sie das Dialogfeld Excel-Optionen an. (Klicken Sie in Excel 2007 auf die Schaltfläche Office und dann auf Excel-Optionen. In Excel 2010 und späteren Versionen wird die Registerkarte Datei des Menübands angezeigt, und klicken Sie dann auf Optionen.)

  2. Klicken Sie links im Dialogfeld auf Formeln. (Siehe Abbildung 1.)

  3. Stellen Sie sicher, dass das Kontrollkästchen Iterative Berechnung aktivieren aktiviert ist.

  4. OK klicken.

Jetzt verarbeitet Excel Zirkelverweise, wie z. B. die einfache Formel, die Sie in Zelle E5 eingegeben haben.

Der zweite Ansatz besteht darin, ein Makro zu verwenden, um die Berechnung durchzuführen. Dieser Ansatz wird möglicherweise bevorzugt, da Sie (aus irgendeinem Grund) möglicherweise keine Zirkelverweise in Ihrer Arbeitsmappe aktivieren möchten. Das Folgende ist eigentlich ein Ereignishandler, der dem Code für das Arbeitsblatt hinzugefügt wurde. (Einfachste Methode:

Klicken Sie mit der rechten Maustaste auf die Blattregisterkarte, zeigen Sie das Codefenster im daraufhin angezeigten Kontextmenü an und fügen Sie das Makro zu diesem Codefenster hinzu.)

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

Das Makro wird jedes Mal ausgelöst, wenn das Arbeitsblatt neu berechnet wird. Es erfasst das Maximum von A1: A3 und vergleicht es mit dem in E5. Nur wenn es größer ist, wird dieser Wert in E5 gesetzt.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (10916) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: