Verschachtelte IF-Anweisungen in Excel - Beispiele, bewährte Verfahren und Alternativen

  • Teile Das
Michael Brown

In diesem Tutorial wird erklärt, wie man die verschachtelte WENN-Funktion in Excel verwendet, um mehrere Bedingungen zu überprüfen. Sie lernen auch einige andere Funktionen kennen, die eine gute Alternative zur Verwendung einer verschachtelten Formel in Excel sein können.

Wie implementieren Sie normalerweise eine Entscheidungslogik in Ihren Excel-Arbeitsblättern? In den meisten Fällen verwenden Sie eine WENN-Formel, um Ihre Bedingung zu testen und einen Wert zurückzugeben, wenn die Bedingung erfüllt ist, und einen anderen Wert, wenn die Bedingung nicht erfüllt ist. Um mehr als eine Bedingung auszuwerten und je nach Ergebnis unterschiedliche Werte zurückzugeben, verschachteln Sie mehrere WENN-Formeln ineinander.

Obwohl die verschachtelte IF-Anweisung sehr beliebt ist, ist sie nicht die einzige Möglichkeit, mehrere Bedingungen in Excel zu überprüfen. In diesem Tutorial finden Sie eine Handvoll Alternativen, die es auf jeden Fall wert sind, erkundet zu werden.

    Excel verschachtelte IF-Anweisung

    Hier ist die klassische verschachtelte Excel-WENN-Formel in einer allgemeinen Form:

    WENN( Zustand1 , Ergebnis1 , IF( Bedingung2 , Ergebnis2 , IF( Zustand3 , Ergebnis3 , Ergebnis4 )))

    Sie können sehen, dass jede nachfolgende IF-Funktion in die wert_wenn_false Jede IF-Funktion ist von einer eigenen Klammer umgeben, aber alle schließenden Klammern befinden sich am Ende der Formel.

    Unsere allgemeine verschachtelte WENN-Formel wertet 3 Bedingungen aus und gibt 4 verschiedene Ergebnisse zurück (Ergebnis 4 wird zurückgegeben, wenn keine der Bedingungen WAHR ist). In eine menschliche Sprache übersetzt, weist diese verschachtelte WENN-Anweisung Excel an, Folgendes zu tun:

    Test Zustand1 , wenn TRUE - Rückgabe Ergebnis1 , wenn FALSE -

    Test Bedingung2 , wenn TRUE - Rückgabe von r esult2 , wenn FALSE -

    Test Zustand3 , wenn TRUE - Rückgabe Ergebnis3 , wenn FALSE -

    return Ergebnis4

    Lassen Sie uns zum Beispiel die Provisionen für eine Reihe von Verkäufern auf der Grundlage der von ihnen getätigten Verkäufe ermitteln:

    Kommission Vertrieb
    3% $1 - $50
    5% $51 - $100
    7% $101 - $150
    10% Über $150

    In der Mathematik ändert eine Änderung der Reihenfolge der Summanden die Summe nicht. In Excel ändert eine Änderung der Reihenfolge der WENN-Funktionen das Ergebnis. Warum? Weil eine verschachtelte WENN-Formel einen Wert zurückgibt, der der erste TRUE-Bedingung Daher ist es sehr wichtig, in Ihren verschachtelten IF-Anweisungen die Bedingungen in der richtigen Richtung anzuordnen - von hoch nach niedrig oder von niedrig nach hoch, je nach der Logik Ihrer Formel. In unserem Fall prüfen wir zuerst die "höchste" Bedingung, dann die "zweithöchste" usw:

    =IF(B2>150, 10%, IF(B2>=101, 7%, IF(B2>=51, 5%, IF(B2>=1, 3%, ""))))

    Wenn wir die Bedingungen in umgekehrter Reihenfolge, also von unten nach oben, anordnen würden, wären die Ergebnisse völlig falsch, weil unsere Formel nach dem ersten logischen Test (B2>=1) für jeden Wert größer als 1 aufhören würde. Sagen wir, wir haben 100 $ Umsatz - das ist größer als 1, also würde die Formel keine anderen Bedingungen prüfen und 3% als Ergebnis zurückgeben.

    Wenn Sie die Bedingungen lieber von unten nach oben anordnen möchten, verwenden Sie den Operator "kleiner als" und werten Sie zuerst die "niedrigste" Bedingung aus, dann die "zweitniedrigste" und so weiter:

    =IF($B2<1, 0%, IF($B2<51, 3%, IF($B2<101, 5%, IF($B2<=150, 7%, 10%))))

    Wie Sie sehen, muss man sich ziemlich viele Gedanken machen, um die Logik einer verschachtelten WENN-Anweisung bis zum Ende korrekt aufzubauen. Und obwohl Microsoft Excel die Verschachtelung von bis zu 64 WENN-Funktionen in einer Formel erlaubt, ist dies nichts, was Sie wirklich in Ihren Arbeitsblättern tun möchten. Wenn Sie (oder jemand anderes) also auf Ihre verschachtelte WENN-Formel in Excel starren und versuchen herauszufinden, was sie eigentlich tut, ist es Zeitüberdenken Sie Ihre Strategie und wählen Sie wahrscheinlich ein anderes Instrument aus Ihrem Arsenal.

    Weitere Informationen finden Sie unter Excel verschachtelte IF-Anweisung.

    Verschachtelte IF mit OR/AND-Bedingungen

    Wenn Sie mehrere Sätze unterschiedlicher Bedingungen auswerten müssen, können Sie diese Bedingungen sowohl mit der OR- als auch mit der AND-Funktion ausdrücken, die Funktionen in IF-Anweisungen verschachteln und dann die IF-Anweisungen ineinander verschachteln.

    Verschachtelte IF in Excel mit OR-Anweisungen

    Mit Hilfe der OR-Funktion können Sie zwei oder mehr verschiedene Bedingungen im logischen Test jeder IF-Funktion überprüfen und TRUE zurückgeben, wenn eines (mindestens eines) der OR-Argumente TRUE ergibt. Um zu sehen, wie es tatsächlich funktioniert, betrachten Sie bitte das folgende Beispiel.

    Angenommen, Sie haben zwei Spalten mit Verkäufen, z. B. Januarverkäufe in Spalte B und Februarverkäufe in Spalte C. Sie möchten die Zahlen in beiden Spalten überprüfen und die Provision auf der Grundlage der höheren Zahl berechnen. Mit anderen Worten, Sie erstellen eine Formel mit der folgenden Logik: Wenn entweder die Januar- oder die Februarverkäufe größer als 150 $ sind, erhält der Verkäufer 10 % Provision, wenn die Januar- oder Februarverkäufe größer oder gleich$101, der Verkäufer erhält 7 % Provision und so weiter.

    Schreiben Sie dazu einige OF-Anweisungen wie OR(B2>150, C2>150) und schachteln Sie sie in die logischen Tests der oben besprochenen IF-Funktionen. Als Ergebnis erhalten Sie diese Formel:

    =IF(OR(B2>150, C2>150), 10%, IF(OR(B2>=101, C2>=101),7%, IF(OR(B2>=51, C2>=51), 5%, IF(OR(B2>=1, C2>=1), 3%, ""))))

    Und lassen Sie sich die Provision auf der Grundlage des höheren Umsatzes zuweisen:

    Weitere Formelbeispiele finden Sie unter Excel IF OR-Anweisung.

    Verschachtelte IF in Excel mit AND-Anweisungen

    Wenn Ihre logischen Tests mehrere Bedingungen enthalten und alle diese Bedingungen als WAHR ausgewertet werden sollen, drücken Sie sie mit der AND-Funktion aus.

    Um beispielsweise die Provisionen auf der Grundlage einer geringeren Anzahl von Verkäufen zuzuweisen, nehmen Sie die obige Formel und ersetzen Sie ODER durch UND-Anweisungen. Anders ausgedrückt: Sie teilen Excel mit, dass es nur dann 10 % zurückgeben soll, wenn die Umsätze im Januar und Februar größer als 150 $ sind, 7 %, wenn die Umsätze im Januar und Februar größer oder gleich 101 $ sind, und so weiter.

    =IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, ""))))

    Im Ergebnis berechnet unsere verschachtelte WENN-Formel die Provision auf der Grundlage der niedrigeren Zahl in den Spalten B und C. Wenn eine der beiden Spalten leer ist, gibt es überhaupt keine Provision, da keine der UND-Bedingungen erfüllt ist:

    Wenn Sie 0% anstelle von leeren Zellen zurückgeben möchten, ersetzen Sie eine leere Zeichenfolge (''") im letzten Argument durch 0%:

    =IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, 0%))))

    Weitere Informationen finden Sie hier: Excel IF mit mehreren AND/OR-Bedingungen.

    VLOOKUP anstelle von verschachtelten IF in Excel

    Wenn Sie es mit "Skalen" zu tun haben, d. h. mit kontinuierlichen Bereichen von Zahlenwerten, die zusammen den gesamten Bereich abdecken, können Sie in den meisten Fällen die Funktion VLOOKUP anstelle von verschachtelten WENNs verwenden.

    Erstellen Sie zunächst eine Referenztabelle, wie in der Abbildung unten gezeigt, und erstellen Sie dann eine Vlookup-Formel mit ungefähre Übereinstimmung d.h. mit dem bereich_lookup Argument auf TRUE gesetzt.

    Angenommen, der Nachschlagewert steht in B2 und die Referenztabelle ist F2:G5, dann lautet die Formel wie folgt:

    =VLOOKUP(B2,$F$2:$G$5,2,TRUE)

    Bitte beachten Sie, dass wir die table_array mit absoluten Referenzen ($F$2:$G$5), damit die Formel korrekt in andere Zellen kopiert werden kann:

    Indem Sie das letzte Argument Ihrer Vlookup-Formel auf TRUE setzen, weisen Sie Excel an, nach dem engste Übereinstimmung - Wenn keine exakte Übereinstimmung gefunden wird, wird der nächstgrößere Wert zurückgegeben, der kleiner ist als der Nachschlagewert. Als Ergebnis wird Ihre Formel nicht nur mit den exakten Werten in der Nachschlagetabelle übereinstimmen, sondern auch mit allen Werten, die dazwischen liegen.

    Der Nachschlagewert in B3 ist beispielsweise $95. Diese Zahl existiert nicht in der Nachschlagetabelle, und Vlookup mit exakter Übereinstimmung würde in diesem Fall einen #N/A-Fehler zurückgeben. Vlookup mit ungefährer Übereinstimmung sucht jedoch weiter, bis es den nächstgelegenen Wert findet, der kleiner als der Nachschlagewert ist (in unserem Beispiel $50), und gibt einen Wert aus der zweiten Spalte in derselben Zeile zurück (5 %).

    Aber was ist, wenn der Nachschlagewert kleiner ist als die kleinste Zahl in der Nachschlagetabelle oder die Nachschlagezelle leer ist? In diesem Fall gibt eine Vlookup-Formel den Fehler #N/A zurück. Wenn das nicht das ist, was Sie eigentlich wollen, verschachteln Sie VLOOKUP innerhalb von IFERROR und geben Sie den Wert an, der ausgegeben werden soll, wenn der Nachschlagewert nicht gefunden wird. Zum Beispiel:

    =IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Außerhalb des Bereichs")

    Wichtiger Hinweis: Damit eine Vlookup-Formel mit annähernder Übereinstimmung korrekt funktioniert, muss die erste Spalte in der Lookup-Tabelle nach aufsteigende Reihenfolge von der kleinsten zur größten.

    Weitere Informationen finden Sie unter Exakte Übereinstimmung VLOOKUP vs. ungefähre Übereinstimmung VLOOKUP.

    IFS-Anweisung als Alternative zur verschachtelten IF-Funktion

    In Excel 2016 und späteren Versionen hat Microsoft eine spezielle Funktion zur Auswertung mehrerer Bedingungen eingeführt - die IFS-Funktion.

    Eine IFS-Formel kann bis zu 127 logischer_Test / wert_wenn_true Paare, und der erste logische Test, der den Wert TRUE ergibt, "gewinnt":

    IFS(logischer_test1, wert_wenn_wahr1, [logischer_test2, wert_wenn_wahr2]...)

    In Übereinstimmung mit der obigen Syntax kann unsere verschachtelte IF-Formel auf diese Weise rekonstruiert werden:

    =IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%)

    Bitte beachten Sie, dass die IFS-Funktion den Fehler #N/A zurückgibt, wenn keine der angegebenen Bedingungen erfüllt ist. Um dies zu vermeiden, können Sie eine weitere logischer_Test / wert_wenn_true am Ende Ihrer Formel, die 0 oder eine leere Zeichenkette ("") oder einen beliebigen Wert zurückgibt, wenn keiner der vorherigen logischen Tests WAHR ist:

    =IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%, TRUE, "")

    Als Ergebnis wird unsere Formel eine leere Zeichenfolge (leere Zelle) anstelle des Fehlers #N/A zurückgeben, wenn eine entsprechende Zelle in Spalte B leer ist oder Text oder eine negative Zahl enthält.

    Hinweis: Wie die verschachtelte IF-Funktion gibt auch die IFS-Funktion von Excel einen Wert zurück, der der ersten Bedingung entspricht, die als WAHR ausgewertet wird.

    Weitere Informationen finden Sie unter Excel IFS-Funktion anstelle von verschachtelten IF.

    CHOOSE anstelle einer verschachtelten IF-Formel in Excel

    Eine weitere Möglichkeit, mehrere Bedingungen in einer einzigen Formel in Excel zu testen, ist die CHOOSE-Funktion, die einen Wert aus der Liste basierend auf einer Position dieses Wertes zurückgibt.

    Auf unseren Beispieldatensatz angewandt, sieht die Formel wie folgt aus:

    =CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%)

    Im ersten Argument ( index_num ), werten Sie alle Bedingungen aus und addieren die Ergebnisse. Da TRUE gleich 1 und FALSE gleich 0 ist, berechnen Sie auf diese Weise die Position des zurückzugebenden Wertes.

    Ein Beispiel: Der Wert in B2 ist $150. Für diesen Wert sind die ersten 3 Bedingungen TRUE und die letzte (B2> 150) ist FALSE. Also, index_num ist gleich 3, was bedeutet, dass der 3. Wert zurückgegeben wird, der 7 % beträgt.

    Tipp: Wenn keiner der logischen Tests TRUE ist, index_num gleich 0 ist und die Formel den Fehler #VALUE! zurückgibt. Eine einfache Lösung ist die Einbindung von CHOOSE in die IFERROR-Funktion wie folgt:

    =IFERROR(CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%), "")

    Weitere Informationen finden Sie unter Excel CHOOSE-Funktion mit Formelbeispielen.

    SWITCH-Funktion als prägnante Form des verschachtelten IF in Excel

    In Situationen, in denen es um einen festen Satz vordefinierter Werte und nicht um Skalen geht, kann die SWITCH-Funktion eine kompakte Alternative zu komplexen verschachtelten IF-Anweisungen sein:

    SWITCH(Ausdruck, Wert1, Ergebnis1, Wert2, Ergebnis2, ..., [Standard])

    Die Funktion SWITCH wertet aus Ausdruck gegen eine Liste von Werte Ergebnis die der ersten gefundenen Übereinstimmung entspricht.

    Wenn Sie die Provision nicht auf der Grundlage der Verkaufsbeträge, sondern auf der Grundlage der folgenden Noten berechnen möchten, können Sie diese kompakte Version der verschachtelten IF-Formel in Excel verwenden:

    =SWITCH(C2, "A", 10%, "B", 7%, "C", 5%, "D", 3%, "")

    Sie können aber auch eine Referenztabelle erstellen, wie in der Abbildung unten gezeigt, und Zellverweise anstelle von hart kodierten Werten verwenden:

    =SWITCH(C2, $F$2, $G$2, $F$3, $G$3, $F$4, $G$4, $F$5, $G$5, "")

    Bitte beachten Sie, dass wir alle Referenzen außer der ersten mit dem $-Zeichen sperren, damit sie sich beim Kopieren der Formel in andere Zellen nicht ändern:

    Hinweis: Die Funktion SWITCH ist nur in Excel 2016 und höher verfügbar.

    Weitere Informationen finden Sie unter SWITCH-Funktion - die kompakte Form der verschachtelten IF-Anweisung.

    Verkettung mehrerer IF-Funktionen in Excel

    Wie im vorherigen Beispiel erwähnt, wurde die Funktion SWITCH erst in Excel 2016 eingeführt. Um ähnliche Aufgaben in älteren Excel-Versionen zu bewältigen, können Sie zwei oder mehr WENN-Anweisungen mithilfe des Verkettungsoperators (&) oder der Funktion CONCATENATE kombinieren.

    Zum Beispiel:

    =(IF(C2="a", 10%, "") & IF(C2="b", 7%, "") & IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1

    Oder

    =CONCATENATE(IF(C2="a", 10%, ""), IF(C2="b", 7%, ""), IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1

    Wie Sie vielleicht bemerkt haben, wird das Ergebnis in beiden Formeln mit 1 multipliziert. Dies geschieht, um eine Zeichenkette, die von der Concatenate-Formel zurückgegeben wird, in eine Zahl umzuwandeln. Wenn Ihre erwartete Ausgabe ein Text ist, ist die Multiplikation nicht erforderlich.

    Weitere Informationen finden Sie unter CONCATENATE-Funktion in Excel.

    Wie Sie sehen, bietet Microsoft Excel eine Handvoll guter Alternativen zu verschachtelten WENN-Formeln, und hoffentlich hat Ihnen dieses Tutorial einige Hinweise gegeben, wie Sie diese in Ihren Arbeitsblättern nutzen können. Um sich die in diesem Tutorial besprochenen Beispiele genauer anzusehen, können Sie gerne unsere Beispiel-Arbeitsmappe unten herunterladen. 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 verschachtelte If-Anweisung - 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.