Excel erfindet Nachkommastellen

besseresmorgen

Lt. Commander
Registriert
Mai 2012
Beiträge
1.563
Hallo,
ich habe ein merkwürdiges Problem.

Ich habe eine Menge an positiven und negativen Werten (hier insgesammt 360).
Alle diese Werte haben genau zwei Nachkommastellen und ergeben in Summe die Zahl 0.
So zumindest, wenn man den ganzen Spaß per Taschenrechner berechnet.

In Excel ist das Ergebnis jedoch: -7,95808 E-11. Also ~-0,00000000007.
Die Summe wird im Feld 362 mit der Funktion =SUMME(A1:A360) berechnen. In der Excel-Tabelle befindet sich sonst nichts.

Ich habe die Werte bereits einmal ins Notepad kopiert und überprüft, dass da tatsächlich nicht irgendwelche Nachkommastellen dran hängen, das ganze wieder in einer neuen Excel-Tabelle berechnen lassen usw.
Das Ergebnis bleibt jedoch gleich.

Zwar kann ich, wenn ich das Feld als Währung definiere eine 0,00 anzeigen lassen, die Funktion

=WENN(A362=0;"Ja";"Nein") gibt aber logischerweise "Nein" aus.


Was läuft da schief?

1706806863057.png
 

Anhänge

  • Summe 0.xlsx
    12,6 KB · Aufrufe: 52
Wenn dir mehr als zwei Nachkommastellen egal sind, dann Runde die Summe doch auf z.B. drei Dezimalstellen.
 
  • Gefällt mir
Reaktionen: ulrich_v
Vielleicht mit der WENN(UND(... Funktion, dass die Werte zB zwischen 0,01 und -0,01 als Ja beantwortet bekommt.
Aber ob das funktioniert, das weiß ich nicht.
 
  • Gefällt mir
Reaktionen: ulrich_v
Ist so ein delta-Bereich einfacher ein Runden? Dunno...
Wenn dann würde ich eher mit ABS arbeiten...

Wieso aber kompliziert, wenn es einfach geht?
=WENN(RUNDEN(A1;3)=0;"Null";"Nicht Null")
Ansonsten mit ABS:
=WENN(ABS(A1)<0,001;"Null";"Nicht Null")
 
  • Gefällt mir
Reaktionen: ulrich_v
Danke, die Info bezüglich der Gleitkommazahlen hilft.

Mir ist schon bewusst, dass ich mit der Runden Funktion das Problem überwinden kann allerdings geht es hier im Beispiel um 360 Werte, schnell aber auch mal um deutlich mehr. Ich wollte vor allem das Problem verstehen :)
 
  • Gefällt mir
Reaktionen: tollertyp
Was für eine Version von Excel verwendest du? Meins aus Office 365 macht daraus tatsächlich 0. Bei zwei Nachkommastellen
1706809075153.png
 
@Conqi: Es geht nicht um die Anzeige, sondern um das "Nein" in C362.
Wenn man den Eröffnungspost gelesen hätte, wäre das eigentlich klar geworden.

besseresmorgen schrieb:
Zwar kann ich, wenn ich das Feld als Währung definiere eine 0,00 anzeigen lassen, die Funktion

=WENN(A362=0;"Ja";"Nein") gibt aber logischerweise "Nein" aus.
Aber gut, dass du nochmal geschrieben hast, was der TE selbst auch schrieb. Der fette Teil ist das, was du halt nicht gesehen hast.
 
Zuletzt bearbeitet:
Conqi schrieb:
Was für eine Version von Excel verwendest du? Meins aus Office 365 macht daraus tatsächlich 0. Bei zwei Nachkommastellen
Versuch mal mehr Nachkommastellen anzeigen zu lassen und als Format "Zahl" einstellen. Das hat bei mir "geholfen" ;-). Die Genauigkeit bei Fließkommazahlen hängt von der Größe der Zahl ab, daher sollte man eher nicht mit fixen Bereichen arbeiten.

Eine übliche Lösung besteht darin, mit Dezimalzahlen statt Fließkommazahlen zu arbeiten. Wie das bei Excel geht, weiß ich spontan auch nicht. Als Zellformat "Text" ergibt aber jedenfalls bei mir das korrekte Ergebnis.
 
Zuletzt bearbeitet:
tollertyp schrieb:
Aber gut, dass du nochmal geschrieben hast, was der TE selbst auch schrieb.
Bei mir wurde das halt standardmäßig auch als Zahlenfeld zu 0,00 gerundet. Nix mit Währung. Als Textfeld oder Exponentialzahl wird es aber in der Tat klar.
 
Hat hier nicht die KI von Excel zugeschlagen?

Spass beiseite. Das Problem tritt bei Gleitkommazahlen auf.
Abhilfe schafft der Einsatz von BCD-Zahlen (Binär Codierte Dezimalzahlen). Turbo Pascal 3.0 läßt grüßen.
 
Don_2020 schrieb:
Abhilfe schafft der Einsatz von BCD-Zahlen
und wie genau mache ich das in Excel mit, sagen wir 25.000 unterschiedlichsten Zahlen?
 
Was Zahlen angeht ist Excel jetzt nicht wirklich cool oder intuitiv. Das heißt wenn du mit wirklich vielen Zahlen und komplexeren Funktionen arbeiten möchtest ist Python3 eine gute Wahl. Also effektiv ein System was dazu gebaut ist.

Excel ist in erster Funktion gebaut um für den Endnutzer einfach zu sein - versteckt also die ganzen schönen Funktionen.
 
  • Gefällt mir
Reaktionen: besseresmorgen
besseresmorgen schrieb:
und wie genau mache ich das in Excel mit, sagen wir 25.000 unterschiedlichsten Zahlen?
Scheint hier keiner zu wissen :D. Wie gesagt, bei mir war alles in Ordnung, wenn ich in der Zelle für das Ergebnis als Format "Text" ausgewählt habe. Aber es ist nicht ausgeschlossen, dass er erst rundet und dann das Ergebnis als Text anzeigt.
 
bughero schrieb:
Musst du nicht verstehen.
Möchte ich aber. Deswegen bin ich froh über den und andere Links. :)

Ich glaub aber wir sind hier im Topic dann auch soweit durch. Für mein Problem kenne ich im Zweifel ein Workaround (tatsächlich geht es mir ja nicht um diese Tabelle da oben sondern um ein eher komplexeres Problem) und wenn alles nicht hilft dann muss da jemand dran, der dafür bezahlt wird, das ganze mit python zu lösen.
 
Ich bin halbwergs erstaunt und schockiert, dass Excel keine Lösung anzubieten scheint. Ich hätte eher umgekehrt gedacht, dass Excel nicht mit Fließkommazahlen arbeitet, sondern auf einem Datentyp, der korrekte Ergebnisse liefert und nur wenn explizit gewünscht die deutlich performanteren Fließkommazahlen verwendet.
 
Zurück
Oben