WENN() – Funktion

Die Logik-Funktion WENN()

Beschreibung

Die Funktion WENN() gehört neben SUMME() wohl zu den meist genutzten Funktionen in Excel. Auch wenn es für Einsteiger nicht leicht ist, es lohnt sich wirklich, sich zumindest mit den grundlegenden Dingen auseinanderzusetzen. Und schon gleich hier zu Beginn der Hinweis, dass es auch hier Alternativen gibt, wenn die Formel droht, undurchschaubar zu werden. Das geht dann beispielsweise in die allgemeine Richtung VERWEIS().

Syntax

=WENN(Bedingung; DannWert; SonstWert)

Argument(e)

Das Argument Bedingung muss eingegeben werden. Es muss ein Ausdruck sein, der ausgewertet werden kann und als Ergebnis den Wahrheitswert WAHR oder FALSCH ergibt. Dazu werden normalerweise Vergleichsoperatoren wie =, <, > <> eingesetzt. Prinzipiell kann alles verglichen werden, so ist logischerweise die Formulierung
="Himmel" <> "Hölle"
selbstverständlich wahr, denn es sind ja zwei vollkommen verschiedene Zeichenketten.

Der DannWert beschreibt, welches Ergebnis die Funktion zurück gibt, falls die Auswertung der Bedingung WAHR ist. Dieses Argument ist ebenfalls zwingend erforderlich. Es kann sich hierbei um einen beliebigen Wert handeln, in Grenzen auch um eine Anweisung (allerdings nicht wirklich empfehlenswert).

Der SonstWert sollte immer angegeben werden, es kommt andernfalls unter Umständen zu irritierenden Funktionsergebnissen. Hier wird der Rückgabewert beschrieben, der in dem Fall genutzt wird, wenn der DannWert nicht zutrifft. Und da der Computer (noch) aus­schließ­lich die beiden Zustände Ja und Nein, sprich 1 und 0 kennt, gibt es keine andere Möglichkeit.

Hier schon einmal der Hinweis: Durch Verschachtelung des WENN() lässt sich auf Umwegen doch noch etwas mehr als dieses reine schwarz/weiß erreichen.

▲ nach oben …

Beispiele

In dieser Datei, Register Wenn() finden Sie demnächst die folgenden Beispiele und noch einiges mehr zu dieser Funktion. Die Beschreibungen in dem Tabellenblatt sind aber kürzer gefasst als hier, dafür aber vielleicht informativer und tiefer gehender.

Bedenken Sie bei diesen hier aufgeführten Text-Beispielen immer, dass die WENN() – Funktion immer in jener Zelle steht, wo das Ergebnis dieser Funktion ausgegeben wird. Der Übersichtlichkeit halber und der besseren Lesbarkeit wegen verwende ich relativ viele Leerzeichen in der Formel. Sie können diese genau so eingeben oder auch weglassen. Im schlimmsten Fall wird Excel die Formel an einer fehlerhaften Stelle in der Eingabezeile markieren.

=WENN(7 < 10; "kleiner"; 55)

Interpretation: Wenn 7 kleiner ist als 10, dann gebe den Text kleiner zurück, sonst schreibe die Zahl 55 in die Zelle, wo die Funktion drin steht. Es ist klar, dass hier der Text zurück gegeben wird, denn 7 ist kleiner als 10.


=WENN(7 < 7; "kleiner"; 55)

Interpretation: Wenn 7 kleiner ist als 7, dann gebe den Text kleiner zurück, sonst die Zahl 55. Das Ergebnis muss natürlich 55 sein, denn 7 ist zwar = 7 aber nicht kleiner.


=WENN(7 < A1; "kleiner"; 55)

Interpretation: Wenn die Zahl 7 (also der Wert) kleiner ist, als der Wert in Zelle A1, dann wird in der Ziel-Zelle der Text kleiner ausgegeben, sonst der Wert (die Zahl) 55.


=WENN("1.1.2000" < "01.02.2000"; "A"; "B")

Interpretation: Wenn "1.1.2000" kleiner ist als „01.02.2000″ … Spontan würde ich sagen, dass hier als Ergebnis A heraus kommt, denn der Wert des 1. Januar 2000 ist nun einmal kleiner als der des ersten Februar des gleichen Jahres.

Aber Excel hat da so seine eigene Logik. Es handelt sich bei diesem Vergleich um 2 Texte, und da gilt, dass nacheinander Zeichen für Zeichen verglichen wird. Und gleich beim ersten Zeichen wird klar, dass die "1" (Text, nicht Zahl) nun einmal nicht kleiner ist als der Text "0". Das ist der Grund, warum B als Ergebnis heraus kommt.

Bleiben wir bei dem Beispiel. Und um es etwas realitätsnaher zu gestalten sage ich, dass in A1 der Text "1.1.2000" steht und in A2 ist es "01.02.2000", an de Anführungszeichen erkennen Sie, dass es sich hier auch um Text handelt. – Ich möchte nun erreichen, dass Excel die beiden Zellinhalte so interpretiert, wie es Menschen tun. Also als kalendarisches Datum. Dann sähe die Funktion vor der Korrektur so aus:

=WENN(A1 < A2; "A"; "B")

… was natürlich wieder das fehlerhafte Ergebnis B bringen würde. Im Grunde genommen habe ich ja nur die absoluten Werte in der Funktion durch einen Zellbezug ersetzt. Zielführend ist hier folgende Kombination:

=WENN(DATWERT(A1) < DATWERT(A2); "A"; "B")

Das klappt dann auch so wie gedacht, weil die Funktion DATWERT() den Datumstext in eine Zahl umwandelt, die Excel als „echtes“ Datum interpretieren kann und wird. Sie erkennen, dass sich prinzipiell Funktionen auch gut verschachteln lassen.

▲ nach oben …

Apropos Datum, hier ein letztes Beispiel, wie es in dieser Art nicht nur in Sachen Datum gebraucht wird. Die Aufgabe scheint ganz einfach: Zu einem beliebigen Datum soll das Quartal ausgegeben werden. Also: „1. Quartal“, „2. Quartal“, … Das hört sich einfach an, ist es aber nicht in Wirklichkeit. Denn hier kommt die oben bereits angesprochene Verschachtelung der WENN()-Funktionen zum tragen, und bei 4 Quartalen ist das schon recht aufwendig.

Hier im Text-Teil (den Sie gerade lesen) beschränke ich mich auf zwei Termine, die jeweils im ersten und zweiten Halbjahr liegen. Es soll geprüft werden, ob ein bestimmtes Datum auf einen der beiden Termine fällt. In der Datei logik.xlsx Register Wenn() ist auch die recht umfangreiche Funktion für die vier Quartale vorgestellt. Trotz der Beschränkung hier im Text ist die Logik die gleiche. Und (nur) drei Möglichkeiten sind einfach übersichtlicher als vier oder mehr. Sie sind über die „drei Möglichkeiten“ irritiert? Sie meinen, es seien doch nur zwei? Es sind drei:

  1. Termin 1 trifft zu,
  2. Termin 2 trifft zu,
  3. keiner der beiden Termine ist zutreffend, weil nicht im aktuellen Jahr.

Oder um ein anderes Beispiel zu nehmen, welches vielleicht praxisnäher ist: Manche Paketdienste verwenden die Einheit „Gurtmaß“ als Grundlage für den Preis. Die Berechnung ist beispielsweise „Längste Seite + kürzeste Seite in cm“. Da gibt es dann die drei Gruppen „S-Paket“ (small), „M-Paket“ (medium) und „L-Paket“ (large) .. (und noch weitere). Das sind echte Bezeichnungen eines großen deutschen Paketdienstes, der lieber englische Begriffe verwendet. Auch dazu finden Sie auf dem Arbeitsblatt ein Beispiel.

Die folgenden Anweisungen beschreiben den Weg, wie Sie auch als Anfänger zum Ziel gelangen, und zwar Schritt für Schritt. Wollen Sie gleich das Ergebnis für die Halbjahrestermin-Formel sehen, dann genügt ein Klick hier.

In A1 steht der Termin für das erste Halbjahr, in A2 der für das zweite Halbjahr. Und in A3 das auszuwertende Datum. Alle 3 Zellen enthalten ein gültiges Datum, welches nicht umgewandelt werden muss. In beispielsweise A4 kommt dann die endgültige Formel/Funktion.

▲ nach oben …

Auch wenn das eine oder andere für Sie nun vielleicht verwirrend erscheint, es ist dann letztendlich doch schlüssig. Und solange Sie nicht wirklich fit sind in Verschachtelungen, sollten Sie den hier aufgezeigten Umweg gehen. Bei sehr komplexen Verschachtelungen mache ich das auch heute noch so. – Folgende Logik ist hier in genau dieser Reihenfolge zielführend:

  1. Ist A3 = A1?
    1. Ja, dann Rückgabe „Termin 1. Halbjahr“
    2. Nein, dann weiter zu 2.
  2. Ist A3 = A2?
    1. Ja, dann Rückgabe „Termin 2. Halbjahr“
    2. Nein, dann Rückgabe „Kein Termin“

Um das zu realisieren, gehen Sie erst einmal in eine beliebige, freie Zelle. Ich wähle hier B1. Dort schreibe ich folgende Formel hinein:

=A3=A1

und in B2 kommt die Formel

=A3=A2

Das Ergebnis ist dann jeweils ein WAHR oder ein FALSCH. Damit habe ich dann erst überhaupt einmal die Kontrolle, ob einer der beiden Termine mit dem Wert in A3 über­ein­stimmt oder nicht. Zugegeben, dieses werden Sie nicht unbedingt immer durchführen, aber manchmal kann es hilfreich sein. Schauen Sie sich einmal das Beispiel in der folgenden Abbildung an:

Vorsicht, Falle!

Vorsicht, Falle!

Der besseren Erkennbarkeit wegen habe ich A1 gelb markiert, weil es ja um die Zelle geht. Und sie ist auch im Endeffekt der Übeltäter. Aber warum behauptet Excel, dass die Werte nicht identisch sind? Ein Klick in A1 zeigt, woran es liegt:

Die versteckte Uhrzeit ist Schuld

Die versteckte Uhrzeit ist Schuld

In A3 steht nur das Datum ohne Zeitangabe, also im Prinzip 0:00h. Das Zahlen-Format beider Zellen ist identisch auf „TT.MM.JJJJ“ eingestellt, womit die Uhrzeit nicht angezeigt wird. Solche „Kleinigkeiten“ können einen schon zur Verzweiflung treiben, wenn man nicht an solche Fehlermöglichkeiten denkt.

OK, die Kontrolle zeigt also eine der drei Möglichkeiten auf. Aber das war ja nur die Kür, nun kommt die Pflicht. Erst einmal korrigiere ich in A1 das Datum auf das reine Datum ohne Uhrzeit, um ein solide Basis zu haben. Ich schreibe nun beispielsweise in C1 folgende Formel:

=WENN(A1=A3; "Termin 1. Halbjahr"; "XXX")

und in C2 kommt fast die gleiche Formel:

=WENN(A1=A2; "Termin 2. Halbjahr"; "XXX")

Das Ergebnis würde nun so aussehen:

Beide Hilfsformeln sind eingefügt

Beide Hilfsformeln sind eingefügt

Machen Sie sich nun einmal beide Formeln unabhängig voneinander bewusst. Es sind zwei eigenständige WENN()-Funktionen, die jede für sich ein korrektes Ergebnis zurück geben. Ich beginne einmal mit der zweiten Formel, sie ist leichter zu ändern und auch nachzuvollziehen.

Da steht doch drin: Wenn das Datum in A2 gleich dem Datum in A3 ist, dann ist das Funktionsergebnis "Termin 2. Halbjahr", sonst soll das Ergebnis "XXX" sein. Na ja, der Sonst-Teil gibt ja nicht wirklich ein vielsagendes Ergebnis zurück. Und richtig, die Aufgabe war ja, dass dann "Kein Termin" zurück gegeben wird. Das ändern wir nun einmal:

=WENN(A1=A2; "Termin 2. Halbjahr"; "Kein Termin")

Und schon ist die zweite Formel komplett. sie braucht nicht geändert zu werden. Aber sie steht ja auch noch ganz alleine da, ohne eine Verknüpfung mit der ersten Formel. Und die betrachten wir uns jetzt. – Wie bereits beschreiben, kann in einer WENN()-Funktion nur das DANN oder das SONST zurück geben. Im obigen Beispiel trifft ja der DANN – Teil zu und es wurde der korrekte Text zurück geliefert. Wenn ich jetzt aber in A3 ein anderes Datum eintrage, wird "XXX" in die Zelle eingetragen. Eigentlich müsste dort die zweite Formel stehen, um zum gewünschten Ergebnis zu kommen, denn in C2 steht nun je nach Situation „Termin 2. Halbjahr“oder“Kein Termin“.

Sie haben bei der zuerst diskutierten Formel für den SONST – Teil gewiss erkannt, dass das "XXX" ein vorübergehender Platzhalter ist. Das ist natürlich auch hier der Fall. Dieser Platzhalter wird ganz einfach durch die Kern-Formel aus C2 ersetzt. Als Kern-Formel bezeichne ich die komplette Formel ohne das einleitende Gleichheitszeichen. Gehen Sie nun am besten so vor:

  • Markieren Sie in der Bearbeitungszeile die Formel ohne das führende Gleichheitszeichen
  • StrgC (entspricht Kopieren)
  • Esc – Taste
  • Klicken Sie auf C1 und markieren Sie nun in der Bearbeitungszeile nur denn SONST – Teil, also „XXX“ (einschließlich der Anführungszeichen).
  • StrgV (entspricht Einfügen), um die Markierung zu überschreiben.
  • Mit der Eingabetaste (Enter, Return) den Vorgang abschließen.

Jetzt sollte eine visuelle Prüfung ergeben, dass in C1 in jedem Fall das korrekte, das gewünschte Ergebnis steht. Die Formel sieht nun so aus:

=WENN(A1=A3; "Termin 1. Halbjahr"; WENN(A1=A2; "Termin 2. Halbjahr"; "Kein Termin"))

Auch wenn auf Ihrem Bildschirm mehrere Zeilen für die Formel genutzt werden, die gehört in Excel in eine einzige Zeile. Bei einem kleinen Fenster oder entsprechend nie­driger Auflösung ist es aber durchaus möglich, dass Excel Ihnen die Formel auch in meh­re­ren Zeile anzeigt, obwohl es aus der Logik-Sicht des Programms eine einzige Zeile ist.

▲ nach oben …

Da nun ja fast alles wie gewünscht da steht, muss die Formel noch in die Zelle A4 verschoben werden, weil dieses ja das Ergebnis der Funktion(en) enthalten soll. Ein einfaches c&p oder ziehen mit der Maus wird nicht unbedingt zum gewünschten Erfolg führen. OK, ich gebe zu, dass in den neueren Versionen mehr möglich ist als in den älteren. Das verschieben haut da prinzipiell gut hin. Aber mit copy and paste fallen Sie in jedem Fall auf die Nase, weil da ja die Adressen automatisch angepasst werden und Sie erhalten die Fehlermeldung #BEZUG!. Mein Vorgehen in diesen Fällen: Ich kopiere die Kern-Formel, genau so wie eben auch beim einfügen der zweiten Formel in die erste. Dann klicke ich in A4, schreibe ein Gleichheitszeichen und füge dann mit Strg+V den vorher kopierten Inhalt der Zwischenablage ein und schon passt alles.

So, und an dieser Stelle noch ein dezenter Hinweis: In Excel-Versionen ab 2007 sind Ver­schach­telungen bis fast unendlich möglich. Wenn Sie der Herr der Dinge sein wollen und für Sie die Übersicht wichtiger ist als irgendwelche intransparente Funktionsmonster, dann suchen Sie andere Wege zum Ziel. Denn ich traue mir nicht zu, nach einem halben Jahr eine WENN-Funktion mit zehn oder mehr Verschachtelungen in ertragbarer Zeit zu analysieren und eventuell veränderten Gegebenheiten anzupassen.

▲ nach oben …

Dieser Beitrag wurde unter Excel-Funktionen abgelegt und mit , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.