Microsoft Excel

Das Portal zum Thema Excel-Formeln

Gruppe: Sonstiges

Beitrag: Lehrsätze zu den Boolschen Werten WAHR und FALSCH

Aufgabe
Beim Umgang mit den boolschen Werten WAHR und FALSCH treten häufig Irritationen auf:

WAHR+1=2 ist zwar richtig, aber umgestellt ist 2-1=WAHR gelogen.
Auch WAHR=1 ist nicht richtig.

FALSCH=0 ist ebenfalls ein Irrtum, FALSCH+1=1 dagegen völlig korrekt.

Was geht hier vor?


Excel geht beim Umgang mit boolschen Werten nach folgenden (empirisch geprüften) Gesetzmäßigkeiten vor:
Lösung
1) Im direkten Vergleich ist WAHR grösser als FALSCH
WAHR>FALSCH

2) Im Vergleich von reinem Logikzustand (WAHR oder FALSCH) mit einer Zahl (oder einem numerischen Rechenergebnis) ist der Logikzustand grösser als die Zahl.
1<>WAHR
0<>FALSCH
WAHR>10
FALSCH>10

3) Wird der Logikzustand in irgendeiner Form mit einer arithmetischen Operation verknüpft, dann wird er in der Formel als Zahl bewertet (0 für FALSCH und 1 für WAHR).
Dabei spielt es keine Rolle, ob der Logikzustand mit einem Logikzustand,
einer Zahl oder einem numerischen Rechenergebnis verknüpft wird.
WAHR+WAHR=2
WAHR+1=2
FALSCH-WAHR= -1
FALSCH+1=1
FALSCH*2 WAHR*WAHR<>WAHR

4) Wird eine Zahl oder ein numerisches Rechenergebnis in einer logischen Operation (z.B. UND, ODER) verwendet, dann wird es in dieser Operation als Logikzustand bewertet (aus 0 wird FALSCH und alles andere wird WAHR).
UND(6/12;1)=WAHR
UND(2+6;1;0)=FALSCH
ODER(0;-1)=WAHR
ODER(0)=FALSCH

5) Eine Leerzelle wird im Vergleich mit einem Logikzustand als FALSCH bewertet und ist damit gemäss Lehrsatz 1 kleiner als WAHR.
Leerzelle=FALSCH
Leerzelle In der UND- und ODER-Funktion wird eine Leerzelle oder eine Textzelle als nicht existent betrachtet und deshalb nicht in die Operation einbezogen.
UND (1;Leerzelle) = WAHR
ODER(1;Leerzelle) = WAHR
ODER(0;Leerzelle) = FALSCH
UND(Leerzelle;1) = WAHR

6) Text ist in direktem Vergleich größer als Zahl und kleiner als ein Logikzustand.
1 < "text" < FALSCH < WAHR

7) In logischen Operationen kann reiner Text nicht als Argument verwendet werden und führt zum Fehlertyp #WERT!
UND("Ja";1) = #WERT!