Das „Nichts“ in Excel
Was eine leere Zelle ist, ist auf den ersten Blick klar. Jedoch ist die Behandlung von leeren Zellen nicht trivial. Es kann an einigen Stellen zu Problemen führen. Excel kennt nur zwei Status für seine Zellen: Text oder Zahl. Auch wenn an einigen, wenigen Stellen die Grenzen nicht ganz klar definiert sind, oder Zahlen automatisch in Texte konvertiert werden, wird dennoch meistens scharf zwischen beiden unterschieden.
Zahl, 0 oder keine Zahl
Ob in einer Zelle der Wert 0 steht, kann mit der Funktion
=WENN(A1=0;“Null“;…)
herausgefunden werden. Erstaunlicherweise verzweigt die Funktion in den Wahr-Zweig, wenn die Zelle leer ist. Möchte man zwischen leeren Zellen und der Zahl 0 differenzieren, dann benötigt man die Funktion
=WENN(ISTLEER(A1);“Leer“;WENN(A1=0;“Null“…))
Das Ganze ist nicht immer offensichtlich, weil in Excel über die Excel-Optionen | Erweitert | Optionen für dieses Arbeitsblatt „in Zellen mit Nullwerten eine Null anzeigen“ die Zahl 0 als eingegebene oder berechnete Zahl verborgen werden kann. Ebenso können in geschützten Tabellenblättern Ergebnisse von Formeln ausgeblendet werden. Oder per Formatierung als Zahlenformat ;;;; oder mit der Schriftfarbe weiß. Und: Obwohl der boolesche Wert FALSCH intern als 0 behandelt wird, liefert
=WENN(A1=0;…)
als Ergebnis FALSCH, wenn in A1 FALSCH steht.
Text, leerer Text oder kein Text
Ähnlich wie bei Zahlen geht Excel bei Texten vor. Eine Zelle kann leer sein, kann Text oder eine leere Zeichenkette beinhalten. Letzteres kann das Ergebnis einer Funktion sein oder auch direkt eingegeben werden:
=““
Die folgenden drei Abfragen liefern dann WAHR als Ergebnis:
=WENN(ISTLEER(A1);…
=WENN(A1=““;…
=WENN(ISTTEXT(A1);…
die nächsten beiden liefern FALSCH:
=WENN(A1=0;…
=WENN(ISTZAHL(A1);…
Text- und Zahl-Konvertierung
Kennen Sie folgendes Problem in Excel? Formatieren Sie drei Zellen, beispielsweise A1, A2 und A3, als Text Start | Zellen formatieren | Nummer | Text . Geben Sie nun in diese drei Zellen, drei Zahlen ein. Bilden Sie in einer anderen Zelle, beispielsweise in A5, die Summe. Das Ergebnis wird 0 sein. Löschen Sie nun die Text-Formatierung. Das Ergebnis bleibt überraschenderweise immer noch 0. Erst wenn Sie jede Zelle editieren (beispielsweise mit einem Doppelklick oder [F2], berechnet Excel die Summe korrekt. Das Editieren kann man per Programmierung simulieren. Ebenso kann mit der Funktion WERT das (noch immer vorhandene) Textformat in eine Zahl konvertiert werden.
Spielerei? Nicht ganz. Manchmal geschieht es beim Datenimport nach Excel, dass sich das Textformat unter Zahlen schiebt, obwohl im Zahlenformat-Menü keine Formatierung angezeigt wird
Rechnen in Excel
Die vier Grundrechenarten können nur mit Zahlen rechnen – steht in einer Zelle eine leere Zeichenkette, dann führt dies wie bei jedem anderen Text zu einem Fehler. Das Produktzeichen „*“ interpretiert eine leere Zelle als Wert 0 und liefert 0 als Ergebnis. Befindet sich in einem Bereich, dessen Werte mit SUMME addiert werden, Text oder eine leere Zeichenkette, dann wird die Zelle übergangen, und die Summe liefert – anders als der Operator „+“ – keinen Fehler.
Erstaunlicherweise übergeht auch die Funktion PRODUKT Texte, allerdings wird eine leere Zelle nicht wie bei der Multiplikation als 0 interpretiert, sondern gar nicht. Das heißt: Stehen in den ersten drei Zellen die Werte 1;2 und 3, dann liefert
=PRODUKT(A1:A3)
den Wert 6. Wird der Inhalt von A1 gelöscht, so bleibt das Ergebnis unverändert. Wird Text eingegeben, so lautet das Produkt noch immer 6. Erst wenn die Zahl 0 eingefügt wird, dann berechnet die Funktion PRODUKT den Wert 0.
Analog verhalten sich auch die Funktionen MITTELWERT und ANZAHL – Texte und leere Zellen werden übergangen. Lediglich ANZAHL2 zählt auch Texte und leere Zeichenketten.
Gerade bei Formularen, die unausgefüllt dem Anwender zur Verfügung gestellt werden, muss genau aufgepasst werden, ob beispielsweise geschrieben werden kann:
=WENN(ISTFEHLER(MITTELWERT(A1:A3));““;MITTELWERT(A1:A3))
Diese Funktion lässt die Zelle dem Anwender leer erscheinen, liefert aber einen leeren String, der beim Weiterverarbeiten zu Problemen führen kann, wenn mit den Grundrechenarten weiter gerechnet wird.
Datenüberprüfung (Gültigkeit)
Wird in Excel über Daten | Datenüberprüfung festgelegt, dass eine Zelle nur Zahlen beinhalten darf, dann wird die Eingabe auch für =““ abgebrochen. Wird als Gültigkeit eine Zahl > 1 abgenommen, dann akzeptiert die Zelle selbstverständlich nicht die Eingabe 0. Jedoch ist das Löschen des Inhaltes möglich.
Sortieren
Beim Sortieren stehen leere Zellen immer am Ende des sortierten Bereichs, leere Zeichenketten werden immer zwischen Zahlen und Texte einsortiert. Excel verwendet intern nicht das festgelegte Gebietsschema, sondern die binäre Sortierreihenfolge (a=A=ä=Ä<b=B<…) – es gibt keine Option dies in Excel zu deaktivieren.
AutoFilter
Ein wenig versteckt bietet der Autofilter am unteren Ende der Auswahlleiste die Möglichkeit leere Zellen aus Datensätzen zu filtern . Dabei wird eine leere Zeichenkette als leer identifiziert.
Spezialfilter
Im Spezialfilter ist die Option, leere und nichtleere Zellen zu filtern, etwas mühsamer zu aktivieren. Man kommt mit den beiden Kriterien >=A, beziehungsweise <A oder analog =*, beziehungsweise = zu diesem Ergebnis. Beachten Sie bitte, dass Kriterien, die mit einem Gleichheitszeichen beginnen, zuvor in einen Text umgewandelt werden müssen, da Excel dieses sonst als Rechenoperation interpretiert und einen Fehler liefert.
Pivot-Tabelle
In Pivot-Tabellen werden leere Zellen und Texte der Datenquelle übergangen – die Funktionen SUMME, MAXIMUM, MITTELWERT, … liefern keinen Fehler. ANZAHL zählt alle gefüllten Zellen, also auch leere Zeichenketten.
Analog arbeitet die Funktion TEILERGEBNIS, die der Assistent Daten | Teilergebnisse verwendet: SUMME, MAXIMUM und MITTELWERT übergehen leere Zellen und Texte, Anzahl (TEILERGEBNIS(3;A1:A3)) zählt leere Zeichenketten mit.
VBA
Um den Inhalt einer Zelle auszulesen, können Value (oder Value2) verwendet werden oder Text, wenn die formatierte Anzeige ermittelt werden soll. Die Eigenschaft Text besitzt nur Leserechte, keine Schreibrechte.
Der Inhalt einer Zelle wird gelöscht mit einer der beiden Eigenschaften:
ActiveCell.Value = „“
ActiveCell.Value = Empty
oder mit der Methode:
ActiveCell.Clear
Die drei Varianten sind synonym – durch die Eigenschaft Value wird kein Text oder Textformat in die Zelle geschrieben.
Ein Bereich kann auf verschiedene Arten gelöscht werden:
Range(„A1:C5“).Value = „“
Range(„A1“, „C5“).Value = „“
Range(Cells(1, 1), Cells(5, 3)).Value = „“
Range(„A1“).Range(„A1:C5“).Value = „“
Range(„A1:C5“).Value = Empty
…
oder:
Range(„A1:C5“).Clear
Range(„A1“, „C5“).Clear
Range(Cells(1, 1), Cells(5, 3)).Clear
Range(„A1“).Range(„A1:C5“).Clear
Steht in einer Zelle nichts, dann liefern
ActiveCell.Value = 0
ActiveCell.Value = „“
IsEmpty(ActiveCell)
den Wert TRUE
Befindet sich eine leere Zeichenkette in der Zelle, dann ergibt lediglich
ActiveCell.Value = „“
TRUE. Die anderen beiden Ausdrücke ergeben FALSE. Analog liefert nur 0 den booleschen Wert True, wenn die Zelle mit 0 verglichen wird.
Zusammenfassung
Excel ist nicht vollständig konsistent. Wollen Sie beim Rechnen kein Ergebnis anzeigen, dann müssen Sie genau überlegen, ob Sie mit der Funktion eine leere Zeichenkette („“) oder den Wert 0 in die Zelle schreiben, da möglicherweise andere Funktionen oder auch VBA dies nicht als leere Zelle oder als Zelle mit Text interpretiert und somit einen Fehler liefert.