Wenn Excel falsche Zahlen zeigt
27. März 2006, 10:16Microsofts Tabellenkalkulation liefert mitunter fehlerhafte Resultate. Excel-Anwender sollten wissen, wie es dazu kommt.
Von Matthias Schüssler
Computer gelten als unbestechliche Rechenmaschinen, denen menschliche Irrtümer fremd sind. Die meisten Anwender sind bereit, Ergebnisse unbesehen zu glauben, die ihnen beispielsweise die Tabellenkalkulation unterbreitet. Denn Prozessoren machen keine Flüchtigkeitsfehler, bringen nie Zahlen durcheinander und sind darum absolut vertrauenswürdig.
Dabei wäre ein Quäntchen Misstrauen angebracht. Excel liefert manchmal selbst bei simplen Rechnungen Unsinn. «Lässt uns Excel und die Vrunden-Funktion im Stich?», schreibt ein Leser der Kummerbox. Er verwendet die Formel «=Vrunden(A1;0.1)», welche die Zahl in Zelle A1 auf zehn Rappen rundet. Wenn in A1 der Wert 16.45 steht, müsste die Rechnung 16.50 ergeben. Excel kommt auf 16.40. Zehn Rappen daneben ist auch vorbei.
Die Ursache für diesen Fehler liegt, so weit man das als Anwender beurteilen kann, in der zweifelhaften Art und Weise, wie die Microsoft-Entwickler Vrunden implementiert haben. Um Fehlkalkulationen zu vermeiden, sollte man auf diese Funktion verzichten und stattdessen mit «Runden» oder «Ganzzahl» arbeiten: Sie rechnen erwiesenermassen fehlerfrei.
Nach der 14. Rechnung wirds falsch
Doch trotzdem können auch mit diesen beiden Funktionen Fehler auftreten. Das klingt widersinnig, ist aber in Fällen zu beobachten, wenn die zu rundende Zahl ihrerseits das Resultat einer Berechnung ist. Die Formel «=Ganzzahl(A16*20+0.5)/20» rundet auf fünf Rappen. Wenn die Zelle A16 den Wert 3.975 enthält, ist das Resultat korrekt, nämlich 4.00. Wenn der Wert 3.975 ist, wie im abgebildeten Beispiel das Ergebnis von 14 aufeinander folgenden Additionen, rundet die Ganzzahl-Formel fälschlicherweise auf 3.95 ab.
Dieser auf den ersten Blick unglaubliche Befund hat seine Ursache in der Art und Weise, wie Computer Zahlen speichern. Computer rechnen mit Einsen und Nullen und können Gleitkommazahlen – vereinfacht gesagt, Zahlen mit einem Wert hinter dem Komma – nicht exakt, sondern nur mit annähernder Genauigkeit speichern. Softwareentwickler biegen sich die Mathematik zurecht, um sie computertauglich zu machen.
Diese Einschränkung fällt meistens nicht ins Gewicht. Es kann aber passieren, dass sich bei Berechnungen mit Gleitkommazahlen die Ungenauigkeiten aufaddieren und letztlich Fehler produzieren: Eine Zahl wird auf- statt abgerundet. Auch logische Abfragen sind heikel, denn auch eine winzige Ungenauigkeit führt dazu, dass eine solche Überprüfung auf «falsch» oder «wahr» das falsche Ergebnis zeitigt.
Immerhin gibt es aber eine Möglichkeit, Excel die Fehler mit den Gleitkommazahlen auszutreiben. Über «Extras> Optionen» steht im Reiter «Berechnung» die Option «Genauigkeit wie angezeigt» zur Verfügung. Sie bringt Excel dazu, die eingegebenen Werte nicht mit der vollen Genauigkeit durchzuführen. Das führt normalerweise zu einem Präzisionsverlust. Doch im obigen Beispiel verhindert sie, dass Rundungsfehler von einer Berechnung zur nächsten weitergeschleppt wird.
Kopf als Kontrollinstrument
Es ist aber nicht angebracht, der Tabellenkalkulation den Rücken zu kehren und Berechnungen mit Papier und Bleistift auszuführen. Man tut jedoch gut daran, bei der Arbeit mit Excel im Hinterkopf zu behalten, dass das Rechnen mit Einsen und Nullen nicht per se zum richtigen Resultat führt. Im Zweifelsfall ist das menschliche Hirn ein gutes Kontrollinstrument: Mit Kopfrechnen kommt man Excels Patzern auf die Spur.
Mehr Informationen gibt es bei Microsoft: http://support.microsoft.com/kb/78113/de und http://support.microsoft.com/kb/42980/de
Die freie Enzyklopädie Wikipedia erläutert Hintergründe zu den Gleitkommazahlen: http://de.wikipedia.org/wiki/Gleitkommazahl.
Digital
Meistgelesen in der Rubrik Digital
Umfrage
Internet auf dem Fernsehen: Der Trend geht klar in diese Richtung. Werden Sie sich einen Smart TV kaufen?
Ja, auf jeden Fall
Nein, interessiert mich nicht
Erst wenn die Geräte billiger geworden sind
Ich habe schon einen
































