Excel MAX IF-Formel zur Ermittlung des größten Wertes mit Bedingungen

  • Teile Das
Michael Brown

Der Artikel zeigt verschiedene Möglichkeiten auf, wie Sie den Maximalwert in Excel auf der Grundlage einer oder mehrerer Bedingungen, die Sie angeben, ermitteln können.

In unserem vorangegangenen Tutorial haben wir uns die üblichen Verwendungen der Funktion MAX angesehen, die dazu dient, die größte Zahl in einem Datensatz zurückzugeben. In manchen Situationen müssen Sie Ihre Daten jedoch weiter aufschlüsseln, um den Maximalwert anhand bestimmter Kriterien zu finden. Dazu können Sie verschiedene Formeln verwenden, und in diesem Artikel werden alle Möglichkeiten erläutert.

    Excel MAX IF-Formel

    Bis vor kurzem hatte Microsoft Excel keine eingebaute MAX IF-Funktion, um den Maximalwert auf der Grundlage von Bedingungen zu ermitteln. Mit der Einführung von MAXIFS in Excel 2019 können wir auf einfache Weise bedingte Maximalwerte ermitteln.

    In Excel 2016 und früheren Versionen müssen Sie immer noch Ihre eigenen Matrixformel indem Sie die Funktion MAX mit einer IF-Anweisung kombinieren:

    {=MAX(IF( kriterien_bereich = Kriterien , max_range ))}

    Um zu sehen, wie diese allgemeine MAX IF-Formel mit realen Daten funktioniert, betrachten Sie bitte das folgende Beispiel. Nehmen wir an, Sie haben eine Tabelle mit den Weitsprungergebnissen mehrerer Schüler. Die Tabelle enthält die Daten für drei Durchgänge, und Sie suchen das beste Ergebnis eines bestimmten Sportlers, sagen wir Jakob. Mit den Schülernamen in A2:A10 und den Entfernungen in C2:C10 nimmt die Formel folgende Form an:

    =MAX(IF(A2:A10="Jacob", C2:C10))

    Bitte beachten Sie, dass eine Array-Formel immer durch gleichzeitiges Drücken der Tasten Strg + Shift + Enter eingegeben werden muss und dadurch automatisch mit geschweiften Klammern umgeben wird, wie im Screenshot unten zu sehen ist (die Klammern manuell einzugeben, funktioniert nicht!).

    In realen Arbeitsblättern ist es bequemer, das Kriterium in eine Zelle einzugeben, so dass Sie die Bedingung leicht ändern können, ohne die Formel zu ändern. Wir geben also den gewünschten Namen in F1 ein und erhalten das folgende Ergebnis:

    =MAX(IF(A2:A10=F1, C2:C10))

    Wie diese Formel funktioniert

    Im logischen Test der IF-Funktion wird die Liste der Namen (A2:A10) mit dem Zielnamen (F1) verglichen. Das Ergebnis dieser Operation ist ein Array aus TRUE und FALSE, wobei die TRUE-Werte Namen darstellen, die mit dem Zielnamen (Jacob) übereinstimmen:

    {FALSCH;FALSCH;FALSCH;WAHR;WAHR;WAHR;FALSCH;FALSCH;FALSCH;FALSCH}

    Für die wert_ if_true liefern wir die Weitsprungergebnisse (C2:C10), so dass, wenn der logische Test TRUE ergibt, die entsprechende Zahl aus Spalte C zurückgegeben wird. Die wert_ wenn_falsch Argument weggelassen, was bedeutet, dass der Wert einfach FALSE ist, wenn die Bedingung nicht erfüllt ist:

    {FALSE;FALSE;FALSE;5.48;5.42;5.57;FALSE;FALSE;FALSE}

    Dieses Array wird an die Funktion MAX weitergeleitet, die die maximale Anzahl zurückgibt, wobei die FALSE-Werte ignoriert werden.

    Tipp: Um die oben beschriebenen internen Arrays zu sehen, markieren Sie den entsprechenden Teil der Formel in Ihrem Arbeitsblatt und drücken Sie die Taste F9. Um den Formelauswertungsmodus zu verlassen, drücken Sie die Taste Esc.

    MAX IF-Formel mit mehreren Kriterien

    Wenn Sie den Höchstwert auf der Grundlage von mehr als einer Bedingung finden müssen, können Sie entweder:

    Verwenden Sie verschachtelte IF-Anweisungen, um zusätzliche Kriterien einzubeziehen:

    {=MAX(IF( kriterien_bereich1 = Kriterien1 , IF( kriterien_bereich2 = Kriterien2 , max_range )))}

    Oder behandeln Sie mehrere Kriterien, indem Sie die Multiplikationsoperation verwenden:

    {=MAX(IF(( kriterien_bereich1 = Kriterien1 ) * ( kriterien_bereich2 = Kriterien2 ), max_range ))}

    Angenommen, Sie haben die Ergebnisse von Jungen und Mädchen in einer einzigen Tabelle und möchten den weitesten Sprung bei den Mädchen in Runde 3 finden. Dazu geben wir das erste Kriterium (weiblich) in G1 ein, das zweite Kriterium (3) in G2, und verwenden die folgenden Formeln, um den Maximalwert zu berechnen:

    =MAX(IF(B2:B16=G1, IF(C2:C16=G2, D2:D16)))

    =MAX(IF((B2:B16=G1)*(C2:C16=G2), D2:D16))

    Da es sich in beiden Fällen um Array-Formeln handelt, denken Sie bitte daran, Strg + Umschalt + Enter zu drücken, um sie korrekt auszufüllen.

    Wie in der Abbildung unten zu sehen ist, führen die Formeln zum gleichen Ergebnis, so dass es eine Frage der persönlichen Vorliebe ist, welche Sie verwenden. Für mich ist die Formel mit der booleschen Logik einfacher zu lesen und zu erstellen - sie ermöglicht das Hinzufügen beliebig vieler Bedingungen, ohne dass zusätzliche IF-Funktionen verschachtelt werden müssen.

    Wie diese Formeln funktionieren

    Die erste Formel verwendet zwei verschachtelte IF-Funktionen, um zwei Kriterien auszuwerten. Im logischen Test der ersten IF-Anweisung werden die Werte in der Spalte Geschlecht (B2:B16) mit dem Kriterium in G1 ("Weiblich") verglichen. Das Ergebnis ist ein Array aus TRUE- und FALSE-Werten, wobei TRUE für Daten steht, die das Kriterium erfüllen:

    {FALSCH; FALSCH; FALSCH; WAHR; WAHR; WAHR; FALSCH; FALSCH; FALSCH; FALSCH; FALSCH; FALSCH; WAHR; WAHR; WAHR}

    In ähnlicher Weise prüft die zweite IF-Funktion die Werte in der Spalte Runde (C2:C16) gegen das Kriterium in G2.

    Für die wert_wenn_true Argument in der zweiten IF-Anweisung geben wir die Weitsprung-Ergebnisse (D2:D16) an, und auf diese Weise erhalten wir die Elemente, die in den ersten beiden Arrays an den entsprechenden Positionen TRUE haben (d.h. die Elemente, bei denen das Geschlecht "weiblich" ist und die Runde 3 ist):

    {FALSCH; FALSCH; FALSCH; FALSCH; FALSCH; FALSCH; 4.63; FALSCH; FALSCH; FALSCH; FALSCH; FALSCH; FALSCH; FALSCH; FALSCH; FALSCH; 4.52}

    Dieses letzte Array wird an die Funktion MAX übergeben, die die größte Zahl zurückgibt.

    Die zweite Formel wertet die gleichen Bedingungen in einem einzigen logischen Test aus, und die Multiplikationsoperation funktioniert wie der Operator AND:

    Wenn die Werte TRUE und FALSE in einer arithmetischen Operation verwendet werden, werden sie in 1 bzw. 0 umgewandelt. Und da die Multiplikation mit 0 immer Null ergibt, hat das resultierende Array nur dann 1, wenn alle Bedingungen TRUE sind. Dieses Array wird im logischen Test der IF-Funktion ausgewertet, die die Abstände zurückgibt, die den 1-Elementen (TRUE) entsprechen.

    MAX IF ohne Array

    Viele Excel-Benutzer, mich eingeschlossen, haben Vorurteile gegenüber Array-Formeln und versuchen, sie loszuwerden, wo immer es möglich ist. Glücklicherweise verfügt Microsoft Excel über einige Funktionen, die nativ mit Arrays umgehen, und wir können eine dieser Funktionen, nämlich SUMPRODUCT, als eine Art "Wrapper" um MAX herum verwenden.

    Die allgemeine MAX IF-Formel ohne Array lautet wie folgt:

    =SUMMENPRODUKT(MAX(( kriterien_bereich1 = Kriterien1 ) * ( kriterien_bereich2 = Kriterien2 ) * max_range ))

    Natürlich können Sie bei Bedarf weitere Bereiche/Kriterienpaare hinzufügen.

    Um die Formel in Aktion zu sehen, verwenden wir die Daten aus dem vorherigen Beispiel. Ziel ist es, den maximalen Sprung einer Athletin in Runde 3 zu ermitteln:

    =SUMMENPRODUKT(MAX(((B2:B16=G1) * (C2:C16=G2) * (D2:D16))))

    Diese Formel wird mit einem normalen Enter-Tastendruck ausgeführt und liefert das gleiche Ergebnis wie die Array-MAX-WENN-Formel:

    Wenn Sie sich den obigen Screenshot genauer ansehen, können Sie feststellen, dass die ungültigen Sprünge, die in den vorherigen Beispielen mit "x" markiert waren, jetzt in den Zeilen 3, 11 und 15 0 Werte haben. Der nächste Abschnitt erklärt, warum.

    Wie diese Formel funktioniert

    Wie bei der MAX IF-Formel werden zwei Kriterien bewertet, indem jeder Wert in den Spalten Geschlecht (B2:B16) und Runde (C2:C16) mit den Kriterien in den Zellen G1 und G2 verglichen wird. Das Ergebnis sind zwei Arrays mit TRUE- und FALSE-Werten. Durch Multiplikation der Array-Elemente an denselben Positionen werden TRUE und FALSE in 1 bzw. 0 umgewandelt, wobei 1 für die Elemente steht, die beide Kriterien erfüllen. Das dritte multiplizierteArray enthält die Weitsprungergebnisse (D2:D16), und da die Multiplikation mit 0 Null ergibt, bleiben nur die Elemente erhalten, die an den entsprechenden Stellen 1 (TRUE) haben:

    {0; 0; 0; 0; 0; 4.63; 0; 0; 0; 0; 0; 0; 0; 0; 4.52}

    Für den Fall max_range einen beliebigen Textwert enthält, gibt die Multiplikationsoperation den Fehler #VALUE zurück, wodurch die gesamte Formel nicht funktioniert.

    Die Funktion MAX übernimmt sie und gibt die größte Zahl zurück, die die angegebenen Bedingungen erfüllt. Das resultierende Array, das aus einem einzelnen Element {4.63} besteht, geht an die Funktion SUMPRODUCT und gibt die größte Zahl in einer Zelle aus.

    Hinweis: Aufgrund ihrer besonderen Logik funktioniert die Formel nur mit den folgenden Einschränkungen:

    • Der Bereich, in dem Sie nach dem höchsten Wert suchen, darf nur Zahlen enthalten. Wenn es irgendwelche Textwerte gibt, wird ein Fehler #VALUE! zurückgegeben.
    • Die Formel kann die Bedingung "ungleich Null" in einem negativen Datensatz nicht auswerten. Um den Maximalwert ohne Berücksichtigung von Nullen zu ermitteln, verwenden Sie entweder eine MAX IF-Formel oder die Funktion MAXIFS.

    Excel MAX IF-Formel mit OR-Logik

    Um den Maximalwert zu finden, wenn jede der angegebenen Bedingungen erfüllt ist, verwenden Sie die bereits bekannte Array-MAX-WENN-Formel mit der booleschen Logik, addieren aber die Bedingungen, anstatt sie zu multiplizieren.

    {=MAX(IF(( kriterien_bereich1 = Kriterien1 ) + ( kriterien_bereich2 = Kriterien2 ), max_range ))}

    Alternativ können Sie auch die folgende Formel verwenden, die kein Array ist:

    =SUMMENPRODUKT(MAX((( kriterien_bereich1 = Kriterien1 ) + ( kriterien_bereich2 = Kriterien2 )) * max_range ))

    Lassen Sie uns als Beispiel das beste Ergebnis in den Runden 2 und 3 ermitteln. Bitte beachten Sie, dass die Aufgabe in Excel anders formuliert ist: Geben Sie den Maximalwert zurück, wenn die Runde entweder 2 oder 3 ist.

    Mit den in B2:B10 aufgeführten Runden, den Ergebnissen in C2:C10 und den Kriterien in F1 und H1 lautet die Formel wie folgt:

    =MAX(IF((B2:B10=F1) + (B2:B10=H1), C2:C10))

    Geben Sie die Formel durch Drücken der Tastenkombination Strg + Umschalt + Eingabe ein und Sie erhalten dieses Ergebnis:

    Der Maximalwert kann unter den gleichen Bedingungen auch mit dieser Formel ermittelt werden, die nicht aus einer Reihe besteht:

    =SUMMENPRODUKT(MAX(((B2:B10=F1) + (B2:B10=H1)) * C2:C10))

    Allerdings müssen wir in diesem Fall alle "x"-Werte in Spalte C durch Nullen ersetzen, da SUMPRODUCT MAX nur mit numerischen Daten funktioniert:

    Wie diese Formeln funktionieren

    Die Array-Formel funktioniert genauso wie MAX IF mit AND-Logik, mit dem Unterschied, dass Sie die Kriterien mit der Additionsoperation statt mit der Multiplikation verbinden. In Array-Formeln funktioniert die Addition wie der OR-Operator:

    Die Addition der beiden Arrays TRUE und FALSE (die sich aus der Überprüfung der Werte in B2:B10 anhand der Kriterien in F1 und H1 ergeben) ergibt ein Array mit 1en und 0en, wobei 1 für die Elemente steht, für die eine der beiden Bedingungen TRUE ist, und 0 für die Elemente, für die beide Bedingungen FALSE sind. Als Ergebnis "behält" die IF-Funktion alle Elemente in C2:C10 ( wert_wenn_true ), für die eine beliebige Bedingung TRUE (1) ist; die übrigen Elemente werden durch FALSE ersetzt, da die wert_wenn_false Argument nicht angegeben ist.

    Die Nicht-Array-Formel funktioniert auf ähnliche Weise. Der Unterschied besteht darin, dass Sie anstelle des logischen Tests von IF die Elemente des 1er- und 0er-Arrays mit den Elementen des Weitsprung-Ergebnis-Arrays (C2:C10) an den entsprechenden Positionen multiplizieren. Dadurch werden die Elemente, die keine Bedingung erfüllen (0 im ersten Array), gelöscht und die Elemente, die eine der Bedingungen erfüllen (1 im ersten Array), bleiben erhaltenArray).

    MAXIFS - einfacher Weg, den höchsten Wert mit Bedingungen zu finden

    Die Benutzer von Excel 2019, 2021 und Excel 365 müssen sich nicht mehr mit dem Zähmen von Arrays herumschlagen, um ihre eigene MAX-IF-Formel zu erstellen. Diese Excel-Versionen bieten die lang erwartete MAXIFS-Funktion, mit der die Suche nach dem größten Wert mit Bedingungen zum Kinderspiel wird.

    Im ersten Argument von MAXIFS geben Sie den Bereich an, in dem der Maximalwert gefunden werden soll (in unserem Fall D2:D16), und in den folgenden Argumenten können Sie bis zu 126 Paare aus Bereich und Kriterium eingeben, z. B:

    =MAXIFS(D2:D16, B2:B16, G1, C2:C16, G2)

    Wie in der folgenden Abbildung zu sehen ist, hat diese einfache Formel kein Problem mit der Verarbeitung von Bereichen, die sowohl numerische als auch Textwerte enthalten:

    Ausführliche Informationen zu dieser Funktion finden Sie unter Excel-Funktion MAXIFS mit Formelbeispielen.

    So können Sie den Maximalwert mit Bedingungen in Excel finden. Ich danke Ihnen für die Lektüre und hoffe, Sie nächste Woche in unserem Blog begrüßen zu dürfen!

    Übungsheft zum Herunterladen

    Excel MAX IF Formel Beispiele (.xlsx Datei)

    Michael Brown ist ein begeisterter Technologie-Enthusiast mit einer Leidenschaft für die Vereinfachung komplexer Prozesse mithilfe von Softwaretools. Mit mehr als einem Jahrzehnt Erfahrung in der Technologiebranche hat er seine Fähigkeiten in Microsoft Excel und Outlook sowie Google Sheets und Docs verfeinert. Michaels Blog widmet sich dem Teilen seines Wissens und seiner Expertise mit anderen und bietet leicht verständliche Tipps und Tutorials zur Verbesserung von Produktivität und Effizienz. Egal, ob Sie ein erfahrener Profi oder ein Anfänger sind, Michaels Blog bietet wertvolle Einblicke und praktische Ratschläge, wie Sie diese wichtigen Softwaretools optimal nutzen können.