15.10 Logische Funktionen
Logische Funktionen werden benutzt, wenn es darum geht, zu prüfen, ob bestimmte Tatsachen oder Bedingungen gegeben sind oder nicht. Eine logische Formel kann nicht nur eine Bedingung enthalten, sondern auch mehrere gleichzeitig. Diese Bedingungen können entweder alternativ oder additiv formuliert werden. Alternative Bedingungen werden mit der ODER-Funktion verknüpft, additive Bedingungen mit der UND-Funktion. Hier einige Beispiele:
=UND (B6>B7 ; B9>B1O) =UND(A10>50;A10<100)
In diesen Fällen ist die Bedingung jeweils nur erfüllt, also wahr, wenn beide Teilbedingungen erfüllt sind.
=ODER (C9=12 ;C9=24) =ODER(MONAT="Mai" ;MONAT="Juni" ;MONAT="Okt")
Bei diesen Formeln ist das Ergebnis WAHR, wenn die Zelle mit dem Namen »MONAT« einen der drei Monatsnamen enthält. Die Funktion NICHT() verneint einen Vergleich. Ein Beispiel:
=NICHT(A1=100)
Diese Bedingung ist in allen Fällen erfüllt, bei denen Al <>100. Die Formeln
=A1<>100 =NICHT(Al=l00)
sind also austauschbar. Logische Vergleiche werden insbesondere auch mit Hilfe der Funktion WENN durchgeführt. Manchmal ist es aber praktischer, eine komplexe Bedingung zunächst in einer Zelle zu prüfen und dann in einer WENN-Funktion nur den Wert dieser Zelle abzufragen als die komplexe Bedingung in die WENN-Funktion selbst mit aufzunehmen. Das gilt insbesondere, wenn diese Bedingung an mehreren Stellen abgefragt werden muss.
WAHR oder FALSCH als Argumente
Um anzuzeigen, ob die Bedingung einer WENN-Funktion erfüllt ist, können auch die Funktionen WAHR() und FALSCH() als Argumente benutzt werden. Das kann sinnvoll sein, wenn bei einer Bedingung nicht gleich ersichtlich ist, ob die Bedingung erfüllt ist oder nicht. Hier ein Beispiel:
=WENN(Gewinne01>500000 ;WAHR;FALSCH)
Ergebnis: FALSCH, wenn der Gewinn = 300000
Beispiel für logische Formeln
Die WENN-Funktion prüft zunächst, ob eine bestimmte Bedingung erfüllt, also wahr ist. Trifft dieses zu, wird die WAHR-Anweisung ausgeführt und bestimmt das Ergebnis der Formel. Trifft dies nicht zu, wird zur FALSCH-Anweisung verzweigt und diese ausgeführt. Die Funktion hat deshalb drei Argumente, die in der vorgeschriebenen Reihenfolge eingetragen werden müssen, weil sonst unerwünschte Ergebnisse produziert werden.
1. | Eine Bedingung in Form eines logischen Ausdrucks |
2. | Eine Anweisung für den Fall, dass die Bedingung erfüllt ist |
3. | Eine Anweisung für den Fall, dass die Bedingung nicht erfüllt ist |
Die WENN-Funktion kann generell für zwei ganz unterschiedliche Zwecke eingesetzt werden.
1. | Die Funktion erlaubt die Durchführung von Prüfungen. z. B. kann mit dieser Funktion die Frage beantwortet werden, ob bestimmte Grenzwerte überschritten, ob Abweichungen von einer Norm vorliegen oder bestimmte Zielwerte erreicht worden sind. |
2. | Mit der WENN-Funktion kann Excel veranlasst werden, unterschiedliche Operationen durchzuführen, je nachdem, ob eine Bedingung erfüllt ist. Das entspricht etwa einer Verzweigung, die in allen Computersprachen zu den Grundoperationen gehört. |
Allerdings gilt die Verzweigung immer nur in Bezug auf das Ergebnis in der Zelle selbst. Es ist nicht möglich, mit der WENN-Funktion direkt einen unterschiedlichen Wert in eine andere Zelle einzutragen. Es ist zwar möglich, etwa in der Zelle B3 zu schreiben:
=WENN(B1>1000;B2=100;B2=200)
Ist B1 tatsächlich größer 1 000, bedeutet diese Formel aber lediglich, dass Excel nun prüft, ob die Zelle B2 tatsächlich den Wert 100 enthält. Ist dies der Fall, ist das Ergebnis in Zelle B3 der Wert WAHR.
Eine direkte Wertzuweisung an eine Zelle, die dann eventuell auch Werte überschreibt, die bisher in dieser Zelle eingetragen waren, kann nur über Makrobefehle erreicht werden. Das schließt natürlich nicht aus, dass eine andere Zelle durch einen Adressbezug den Wert aus der Zelle übernimmt, in der die WENN-Funktion steht. Wenn Sie in B3
=WENN(B1>1000;100;200)
schreiben und in Zelle B2
=B3
erhalten Sie das Ergebnis, das Sie mit der ersten Formel erreichen wollten. In den folgenden Abschnitten soll die Nützlichkeit der WENN-Funktion an einigen Beispielen verdeutlicht werden.
Texte automatisch anpassen
In der abgebildeten Tabelle sind Kunden-Umsätze einer Firma für zwei Jahre eingetragen, in der Spalte B der Umsatz für 1999, in der Spalte C der für 2000. Die Kunden, deren Umsatz gegenüber dem Vorjahr um mehr als 20 % abgesunken ist, sollen in der Spalte D so markiert werden, dass sie auf einen Blick zu erkennen sind. Die Formel kann in der Zelle D8 eingetragen und dann die Spalte hinunterkopiert werden. Sie könnte lauten:
=WENN(C8<(B8*0, 8); "Umsatzrückgang";"")
Prüfung von Bedingungen
Bei den Kunden, deren Umsatz im Jahr 2000 tatsächlich um mehr als 20 % gesunken ist, erscheint in der Spalte D der Hinweis: »Umsatzrückgang«. Bei allen anderen Kunden bleibt die Zelle in der Spalte D als Ergebnis der Formel leer.
Während es im letzten Fall in erster Linie um die Prüfung der Entwicklung der Kundenumsätze ging, soll die nächste Formel zeigen, wie die WENN-Funktion benutzt werden kann, um auf verschiedene Zustände unterschiedlich zu reagieren. Die Firma könnte auf die Idee kommen, die Höhe eines Bonus zum Jahresende von der Umsatzentwicklung abhängig zu machen. Die Kunden, deren Umsatz über 250 000 € liegt, sollen einen Bonus von 0,5 % erhalten, die anderen gehen leer aus. Die Formel für diesen Fall:
=WENN(C5>250000;C5*0, 05;0)
Sowohl bei der Formulierung der Bedingungen, als auch bei der Formulierung der WAHR- und FALSCH-Anweisungen können natürlich alle sinnvollen Kombinationen von Operatoren und Funktionen benutzt werden.
Bedingte Textanzeige
Besteht die Möglichkeit, in einem Arbeitsblatt Texte nur unter bestimmten Voraussetzungen zu drucken? Die WENN-Funktion bietet sich auch in diesem Fall an. Angenommen, das Arbeitsblatt wird zur Aufbereitung und zum Druck von Rechnungen benutzt. Auf den Dezember-Rechnungen soll im Rechnungsfuß ein Hinweis auf ein spezielles Weihnachtsangebot erscheinen. Die Lösung könnte folgende Formel sein:
=WENN(MONAT(JETZT())=12;"Sonderrabatt von 20% für alle Orientteppiche";"")
Prüfung von Texten
Die WENN-Funktion kann selbstverständlich nicht nur zur Prüfung numerischer Zellen benutzt werden. Zellen, die Texte oder Zeichenfolgen enthalten, können ebenfalls befragt werden. Der Text kann direkt eingetragen sein oder indirekt über einen Zellbezug oder als Ergebnis einer Formel, die als Ergebnis eine Zeichenfolge bereitstellt. Hier ein einfaches Beispiel:
=WENN(Bl0="Berlin";"Hauptstadt";"")
Allerdings kann im Fall von Zeichenfolgenvergleichen eine unangenehme Überraschung auftreten. Die Bedingung, dass in der Zelle B10 der Name ‘Berlin‘ steht, ist nur dann erfüllt, wenn dort tatsächlich auch nur Berlin steht. Ein Fehler, der bei der Arbeit mit Excel gelegentlich plagt, weil er so schwer erkennbar ist, besteht darin, überflüssige Leerzeichen zu benutzen. Wenn also hinter dem Wort Berlin versehentlich noch einmal die Leertaste benutzt worden ist, wird Excel sich so verhalten, als sei der Inhalt der Zelle B10 nicht »Berlin«. Im strengen Sinne stimmt das ja auch, aber zu sehen ist der Unterschied nur, wenn im Bearbeitungsfeld <Ende> gedrückt wird. Der Fehler kann allerdings durch die Funktion =GLÄTTEN(B10). abgefangen werden. Die Formel
=WENN(GLÄTTEN(B10)="Berlin"...
ist gegen die angesprochene Fehlermöglichkeit gefeit. Die Funktion GLÄTTEN ist eine Text-Funktion, die überflüssige Leerzeichen entfernt.
Prüfungen mit komplexen Bedingungen
Das Argument Bedingung kann aus mehreren Einzelbedingungen zusammengesetzt sein. In vielen Fällen ist eine Operation gleich von mehreren Bedingungen abhängig. Eine Komponente eines Produkts soll nur dann bei einem bestimmten Lieferanten bestellt werden, wenn der Preis akzeptabel ist und gleichzeitig die Lieferfrist maximal einen Monat beträgt. Die Formel könnte heißen:
=WENN(UND(C12<12500;D12<4);"bestellen";"nicht bestellen")
Die Zelle C12 enthält den Preis, die Zelle D12 die Lieferzeit in Wochen. Die Bedingung ist nur dann erfüllt, wenn beide Teile der Bedingung gleichzeitig erfüllt sind. In anderen Fällen hängt eine Entscheidung davon ab, ob eine bestimmte Bedingung erfüllt ist oder eine andere. Im Beispiel wäre denkbar, dass auch ein höherer Preis akzeptiert wird, wenn die Lieferfrist kurz ist. Eine kleine Änderung der Formel trägt der Situation Rechnung. Statt der Funktion UND() wird ODER() eingesetzt:
=WENN(ODER(C12<l2500;Dl2<4);"bestellen";"nicht bestellen")
Die neue Bedingung ist in drei Fällen wahr:
1. Der erste Teil der Bedingung ist erfüllt.
2. Der zweite Teil der Bedingung ist erfüllt.
3. Beide Bedingungen sind erfüllt.
Die Funktion ODER() ist also kein ausschließendes Oder. Das ausschließende Oder würde den dritten Fall nicht zulassen. Ein solches Entweder-oder, aber nicht beides gleichzeitig könnte erreicht werden durch eine Kombination von UND() und ODER().
=WENN(UND(ODER(B10=5;C10=7;NICHT(UND(B10=5;C10=7) ) );"ok";"prüfen")
Wenn die Zelle B10 den Wert 5 hat und gleichzeitig die Zelle C10 den Wert 7, ist das Ergebnis »prüfen«, die Bedingung ist also nicht erfüllt.
Mehrfachverzweigungen
Sowohl die WAHR- als auch die FALSCH-Anweisung können selbst wieder eine WENN-Funktion enthalten, sodass eine Mehrfachverzweigung erreicht werden kann.
Verschachtelte Bedingungen
Die Weihnachtsgeschenke einer Firma sind nach Wert in zwei Gruppen eingeteilt. Geschenke der Gruppe A sollen Kunden erhalten, deren Umsatz über 500.000 € liegt, Gruppe B verlangt mindestens 10.000 €, um Mini-Kunden ganz herauszunehmen. Zunächst werden in der Formel die Mini-Kunden abgefangen, dann wird zwischen Gruppe A und Gruppe B unterschieden.
1. Schritt
WENN(C7>=10000;"Geschenk";"kein Geschenk")
damit sind die Mini-Kunden herausgenommen;
2. Schritt
=WENN(C7>10000;WENN(C7>=50000;"Geschenk A";"Geschenk B");"kein Präsent")
Die WAHR-Anweisung aus dem ersten Schritt ist jetzt ersetzt durch eine komplette WENN-Funktion, die selbst wiederum eine Bedingung, eine WAHR-Anweisung und eine FALSCH-Anweisung enthält.
Referenz der logischen Funktionen
FALSCH()
Syntax: FALSCH()
Beispiel: FALSCH()
Ergebnis: FALSCH
Diese Funktion legt den Wahrheitswert für FALSCH in der Zelle ab oder übergibt ihn an eine andere Funktion.
Die Funktionen WAHR und FALSCH können in einer WENN-Funktion benutzt werden, um anzuzeigen, ob die Bedingung, die diese Funktion prüft, erfüllt ist. Das kann sinnvoll sein, wenn bei einer komplexen Bedingung nicht gleich ersichtlich ist, ob sie zutrifft oder nicht.
NICHT()
Syntax: NICHT(Wahrheitswert)
Beispiel: NICHT(13>14)
Ergebnis: WAHR
Durch diese Funktion wird der Wert des Wahrheitswerts umgekehrt.
ODER()
Syntax: ODER(Wahrheitswert1;Wahrheitswert2;...)
Beispiel: ODER(13>14;13<14)
Ergebnis: WAHR
Die Funktion vergleicht bis zu 30 Argumente miteinander. Sind alle Argumente FALSCH, so liefert die Funktion FALSCH, andernfalls WAHR.
UND()
Syntax: UND(Wahrheitswert1;Wahrheitswert2;...)
Beispiel: UND(13>14;14<13)
Ergebnis: FALSCH
Die Funktion vergleicht bis zu 30 Argumente miteinander. Sind alle Argumente WAHR, so wird als Ergebnis WAHR zürückgegeben, andernfalls ist das Ergebnis FALSCH.
WAHR()
Syntax: WAHR()
Beispiel: WAHR()
Ergebnis: WAHR
Ebenso wie bei der Funktion FALSCH kann mit dieser Funktion der Wahrheitswert WAHR in ein Feld eingetragen oder als Argument an eine Funktion übergeben werden.
WENN()
Syntax: WENN(Prüfung;Dann_Wert;Sonst_Wert)
Beispiel: WENN(A2>B2;A2-B2;B2-A2)
Ergebnis: Die Inhalte der beiden Zellen werden stets so voneinander subtrahiert,
dass der kleinere Wert vom größeren abgezogen wird.
Die Funktion liefert in Abhängigkeit einer Bedingung je nach Wahrheitsprüfung unterschiedliche Resultate. Die WENN-Funktion prüft zunächst, ob eine bestimmte Bedingung (Prüfung) erfüllt, also wahr ist. Trifft dies zu, gibt die Funktion den Dann_Wert aus, trifft es nicht zu, wird der Sonst_Wert ausgegeben.
Die Funktion erlaubt die Durchführung von Prüfungen, z. B. kann mit dieser Funktion die Frage beantwortet werden, ob bestimmte Grenzwerte überschritten oder bestimmte Zielwerte erreicht worden sind. Es kann auch veranlasst werden, unterschiedliche Werte in eine Zelle einzutragen oder unterschiedliche Berechnungen durchzuführen, je nachdem, ob eine Bedingung erfüllt ist oder nicht.
Als Ergebnis der Wahrheitsprüfung kann eine Verschachtelung durch weitere Verwendung der WENN-Funktion erfolgen.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.