Oma: Homofiss – iss datt wedder son Schwulengrupp? – Enkel: Oma: datt heet Homeoffice. Net Homo-fiss!

Angelika ruft erneut an: „Hallo Rene: SVERWEIS kann DOCH zwischen Groß- und Kleinschreibung unterscheiden. Schau mal, ich hab’s gefunden!“

Prinzipiell glaube ich andere Menschen NICHT. Ich schaue die Datei an, die sie mir geschickt hat:

„Schau“, sagt sie, „der Text arnstein steht einmal groß- und einmal kleingeschrieben in der Liste. Wenn ich die Liste nun sortiere, und den Parameter WAHR beim SVERWEIS verwende, findet Excel den unteren, großgeschriebenen Eintrag.“

Ich prüfe das und trage den Text in Kleinbuchstaben ein: „arnstein“.

Auch hier wird der untere gefunden. Ich stutze: „Angelika: deine Liste ist nicht sortiert. Probier mal aus: =CODE(„A“) ergibt 65, =CODE(„a“) liefert 97. Arnstein ist kleiner als arnstein. Du musst anders herum sortieren.

Wir probieren es aus:

und auch:

Beide Male wird der untere Text gefunden. Die folgende Vermutung liegt nahe:

SVERWEIS „läuft“ bei der Verwendung des Parameters WAHR in [Bereich_Verweis] in einer Liste so lange nach unten bis ein größerer Wert als der gesuchte gefunden wird. Dann „stoppt“ SVERWEIS und gibt den Wert der zuletzt gefundenen Zeile zurück. Dabei wird weder bei WAHR noch bei FALSCH zwischen Groß- und Kleinschreibung unterschieden (wie fast an kleiner Stelle in Excel).

Fazit: Wenn man Texte in Listen mit SVERWEIS suchen muss (was durchaus sein kann – Artikelnummern, Personalnummer, Länderkennzeichen, etc. die alphanumerisch aufgebaut sind), sollte man NIEMALS die Liste sortieren und mit dem Parameter WAHR (oder ohne diesen Parameter) in SVERWEIS arbeiten. Schließlich möchte man ein eindeutiges Ergebnis. WAHR ist nur bei numerischen Reihen sinnvoll, beispielsweise: Umsatzzahlen, Erlöse, Gewinne, Kosten, Kilometer … von Betrag x bis Betrag y. Oder Datum von d1 bis d2.

Ich glaube, Angelika war mit meiner Erklärung einverstanden. Ganz sicher bin ich mir nicht. Ich werde sie noch einmal anrufen.

Woran erkennt man, dass man zu viel mit Excel gearbeitet hat? Wenn man die Augen schließt und sich das Excel-Grid in die Netzhaut eingebrannt hat (Daniel Kogan – excelhero)

Verblüffend!

Man schreibe in eine Zelle den Text ‚WAHR. Das Ergebnis wird linksbündig als Text angezeigt. Das Gleiche passiert, wenn man eine Zelle als Text formatiert und anschließend mit den Buchstaben WAHR füllt.

Soweit so gut. Die Überprüfung mit der Funktion ISTTEXT bestätigt, dass ein Text in der Zelle steht; ISTLOG verneint die Existenz eines booleschen Wertes (WAHR oder FALSCH). Auch die Überprüfung mit =Zelle=WAHR und =ZELLE=“WAHR“, verneint das erste und bestätigt das zweite:

Irritierend ist nun, dass die Funktion ZÄHLENWENN 0 liefert, wenn man den TEXT „WAHR“ zählt:

Der Blick in den Funktionsassistenten irritiert:

Verblüffend!

Wer die Wahrheit nicht weiß, der ist bloß ein Dummkopf. Wer die Wahrheit kennt und sie eine Lüge nennt, der ist ein Verbrecher. (B. Brecht)

Die Datentypen (oder auch nicht vorhandenen Datentypen) in Excel bringen mich um.

Hintergrund: Ich schreibe ich drei Zellen die Texte ‚1, ‚2 und ‚3. Die Formel =A1+A2+A3 wandelt die Texte in Zahlen um und rechnet richtig. Die Funktion =SUMME(A1:A3) interpretiert die Texte als 0. Ebenso schafft =JAHR(„28.01.2019“) den Text in ein Datum, also in eine Zahl, zu verwandeln und liefert die korrekte Jahreszahl.

In der Zelle C2 steht WAHR. Ein Vergleich =C2*1 liefert 1. =C2=1 liefert FALSCH – der Wahrheitswert WAHR entspricht also 1, ist aber nicht 1. Die Funktionen ISTZAHL und ISTLOG liefern FALSCH und WAHR. Wahr ist ein logischer Wert und keine Zahl, kann aber in eine Zahl verwandelt werden.

So weit, so gut. Deshalb kann die Funktion

=SUMME(C2:C12)

nicht korrekt rechnen, wenn in der Spalte C nur Wahrheitswerte stehen. Multipliziert man jeden Wert mit 1, dann klappt die Summe (als Matrixfunktion):

{=SUMME(C2:C12*1)}

Sie kennen sicherlich dieses Problem bei der Funktion SUMMENPRODDUKT.

Und jetzt mein Erstaunen:

=WAHR+WAHR+WAHR

liefert 3, ebenso wie =“1″+“2″+“3″ die Zahl 6 liefert.

=SUMME(WAHR;WAHR;WAHR)

liefert aber auch 3. Liegen die Werte in Zellen, klappt die Typkonvertierung nicht!

Nachtrag: Bei Programmiersprachen heißt die Umwandlung „casting“. Sollen wir mal Excel casten?

Tschüss Niveau – bis Montag

Vielleicht sollte ich nicht so viel nachprüfen. Aber manchmal will ich es einfach wissen.

Ich trage in eine Spalte unterschiedliche Dinge ein: ganze Zahlen, Dezimalzahlen, Datumsangaben, Uhrzeiten, Text. Ich überprüfe ihre Existenz mit den beiden Funktionen ISTZAHL und ISTTEXT. Die Ergebnisse sind komplementär. Jedoch bei den beiden Gebilden WAHR und FALSCH liefert Excel: ISTZAHL: nö! ISTTEXT: keine Spur!

Ja – was ist es denn?

 

Gefühle sind heutzutage auch nur noch was für ganz Mutige.

Excel ist an vielen Stellen nicht konsequent. Der Text „1“ ist beispielsweise etwas anderes als die Zahl 1. Dennoch kann man den Text mit 1 multiplizieren.

Ebenso verhält es sich mit WAHR und 1. Eigentlich entspricht Wahr dem Wert 1 und Falsch dem Wert 0. Eigentlich. Multipliziert man die beiden Werte WAHR und FALSCH, beziehungsweise die Funktionen =WAHR() und =FALSCH() mit 1, erhält man 1 beziehungsweise 0. Intern handelt es sich jedoch um einen anderen Wert. Also
=WAHR=1

liefert FALSCH.

Und diese Unschärfe führt auch dazu, das Wahr-Werte nicht addiert werden können:

=SUMMENPRODUKT(C:C=“Briefpapier“)

liefert 0.

=SUMMENPRODUKT((C:C=“Briefpapier“)*1)

dagegen das korrekte Ergebnis:

Calc nervt auch – sogar noch mehr!

Letzte Woche habe ich LibreOffice Calc unterrichtet. Dort gibt es wohl noch mehr Bugs, Ungereimtheiten, Merkwürdigkeiten und sonderbare Phänomene als in Excel.

Beispielsweise existiert in Calc ein Zahlenformat „Wahrheitswert“. Und ähnlich wie in Excel schiebt auch Calc bei einigen Aktionen nach bestimmten Regeln dieses Format unter die Zellen. Das bewirkt, dass nicht die Ergebniszahl 50 angezeigt wird, sondern „WAHR“. Man wundert sich:

50 wird als WAHR formatiert.

50 wird als WAHR formatiert.

Als freuen wir uns über das kleinere Übel Excel und leben mit seinen Fehlern und Schwächen. Und hoffen, dass Excel DAS nicht übernimmt.