Frage von darkhouse, 111

Wo ist der Fehler in folgender Excel-Formel?

Ich habe die Formel (siehe Bild/Formelfeld) eingegeben und wundere mich, warum Excel die 3 bzw. die 4 nicht in Spalte F ausgibt.

Der Ansatz: Ist Feld D größer 0, dann gib D aus, sonst prüfe noch, ob E größer 0, dann gib E aus, sonst nichts ausgeben.

Prüfung D stimmt ja, wird ja dort auch ausgegeben. Aber welcher Fehler steckt in der Prüfung E, so dass bisher nichts erscheint?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von buma1978, 22

Da die Summen Funktion Textfelder ignoriert kann man sie neben den bereits genannten Lösungen auch für den Zweck "missbrauchen".

=WENN(SUMME(D5)>0;D5;WENN(SUMME(E5)>0;E5;""))

Kommentar von darkhouse ,

Die kompakteste und eleganteste Lösung, danke! Erspart mir, die vielen Nullen bedingt zu formatieren und "unsichtbar" zu machen...

Expertenantwort
von Ninombre, Community-Experte für Excel, 69

Prüf mal, ob in D evtl. ein Leerzeichen steht. Das wäre der Bedingung nach auch größer 0, so dass der Sonst-Zweig mit E>0 nicht zum Einsatz kommt.

Kommentar von darkhouse ,

Bingo! Danke. Hab in D 0 eingetragen, schon klappt's. Muss ich eben eine weitere Bedingung einarbeiten. Nichts ist bei Excel also größer als Null, na ja, wieder was gelernt...

Ach nee, da steht nicht nichts drin, sondern eine Formel mit dem Ergebnis Leerschritt. Also doch was. Muss ich also nur umschreiben...

Kommentar von Ninombre ,

Alternativ eine Und Bedingung daraus machen. Wenn(und(d1>0;d1<>" ")...

Kommentar von Jackie251 ,

dazu ergibt sich die frage, WARUM ist darin eine Formel die als Ergebniss ein Leerzeichen bringt?
Leerzeichen sind eher schlechter Stil, da eben GENAU dieser Fehler passiert: Zellen sind augenscheinlich leer, und sollten von Excel mit 0 gewertet werden, in Wahrheit sind sie jedoch mit einem unsichtbarem Zeichen gefüllt.

Grundsätzlich ist deine Wennfunktion daher sinnvoll "" erzeugt eben kein Leerzeichen und damit eine Zelle die augenscheinlich 0 bedeutet und auch von Excel als 0 gewertet wird.

Allerdings ist es aus meiner Sicht nicht immer sinnig Nullen durch Wennfunktionen wegzufiltern. Nichtausgefüllte Zellen sind teilweise auch schlechter zu lesen, als mit 0 gefüllte Zellen.
Ansonsten lässt sich die 0 auch gut mittels benutzerdefiniertem Format oder der bedingten Formatierung wegfiltern, statt jedes Ergebniss noch mit einer Wenn Funktion zu "ummanteln".

Ob die doppelte Wennfunktion hier überhaupt sinnig ist, kann man schwer sagen.

Grundsätzlich wäre das Ergebnis auch mit einer Wennfuktion möglich (wenn in Spalte C eine Zahl steht, übernimm diesen, sonst übernehme den Wert aus Spalte D). Sind beide Spalten leer, würde der Leerwert aus Spalte D übernommen.

Ob die Wennfunktion überhaupt erforderlich ist, lässt sich nicht sagen (im Beispiel gibt es keine Spalten wo C und D einen Wert haben, dann reicht sogar eine Max Funktion, sofern Zellen mit Leerzeichen dazwischen liegen).

Kommentar von DeeDee07 ,

Grundsätzlich ist deine Wennfunktion daher sinnvoll "" erzeugt eben kein Leerzeichen und damit eine Zelle die augenscheinlich 0 bedeutet und auch von Excel als 0 gewertet wird.

Nicht ganz. Auch wenn die Formel in D5 "" ausgibt, ist D5>0, da "" Text ist (wenn auch mit 0 Zeichen) und Texte größer als Zahlen sind. Die Formel würde also immer noch WAHR ausspucken.

Umso wichtiger ist es, deine nächsten Absätze zu befolgen, DH!

Kommentar von Jackie251 ,

JoJo da habe Blödsinn verbreitet

war mir schon aufgefallen nach lamiams Antwort. Das war Quatsch - obwohl es heute morgen in meiner Exceltestdatei genauso funktioniert hatte (vermutlich hatte ich einen versetzten Bezug und habe daher im 2. Fall die Leerzelle darunter ausgelesen)

Ich war leider noch nicht zur Klarstellung gekommen, da ich noch auf der Fehlersuche war.

Danke aber für den Hinweis!

Expertenantwort
von Iamiam, Community-Experte für Excel, 37

wahrscheinlich hast Du in D5 eine Formel stehen, die "" ergibt. Das ist ein Text, -wenn auch leer- und Texte sind größer als jede von xl rechenbare Zahl.

(Demo: in A1: ="", in B1:=A1>0 ergibt WAHR )

Lösung: =Wenn(und(D5<>"";D5>0);...  

oder =Wenn(und(istzahl(D5);D5>0);...

Du kannst aber auch in D5 als sonst-Argument 0 ausgeben und das per Zellformatierung entweder unsichtbar machen oder als unauffälliges Zeichen darstellen. Beim Zellformat darfs "" sein, denn da ist es nur die Darstellung:

Bendef Format (Strg+1, Zahlen, Benutzerdef.): 0;[rot]-0;""

oder (unauffälliges Symbol für 0): 0;[rot]-0;[Farbe7]°

Dann kannst Du Deine Formeln ansonsten unverändert übernehmen.

Kommentar von Jackie251 ,

ich würde eher Standard;Standard;; nehmen - auch wenn hier ggf lediglich natürliche Zahlen auftreten, zu schnell wird das Format auch auf Zellen ausgeweitet und plötzlich werden die Nachkommastellen in der Anzeige weggerundet in der Zelle jedoch nicht

Kommentar von Iamiam ,

Bin mal davon ausgegangen, dass es sich bei der gezeigten Bestandsdatei nur um ganze Zahlen handeln kann.

Ist aber generell durchaus sinnvoll, diese Einschränkung ist mir noch gar nie aufgegangen, da man ja auch beim gezeigten Format jederzeit per Knopfdruck Dezimalstellen hinzufügen kann.

Keine passende Antwort gefunden?

Fragen Sie die Community