2017-10-05 3 views
2
  • I eine Formel =(A1-B1)*10000
  • von Wert in Zelle kopiert Zelle C1 und klebte es hergestellt D1 Zelle A1 gleich 1,39139
  • Hergestellt Zelle B1 gleich 1,40596
  • Hergestellt Zelle C1
  • In Zelle E1 habe ich manuell das reale Ergebnis der Berechnung geschrieben, das -145.7 ist (Sie können versuchen, einen Taschenrechner zu verwenden).

enter image description herewie einzufügen korrekt Excel Formel

  • In Zelle F1 machte ich eine if-Anweisung die Ergebnisse von E1 und F1 zu vergleichen: =IF(E1=D1,"equal","not equal")
  • Das Ergebnis "nicht gleich" ist.

enter image description here

** Ich möchte wissen, wie eine Formel zu kopieren und einzufügen und sein klebte Ergebnis sein wird, genau gleich sicher. Denken Sie daran, dass ich nicht =round() Formel verwenden möchte, weil ich eine Lösung für viele Zahlen brauche, und ich kann nicht round() für jede Zelle mit unterschiedlicher Anzahl von Ziffern verwenden.

+4

Dies liegt wahrscheinlich an der Fließkommazahl, die Excel verwendet. Es ist oft bekannt, dass Probleme wie das, was Sie beschrieben haben, verursachen. Hier sind ein paar Links mit Informationen über das Problem und wie man es anspricht: [link] (https://blogs.office.com/en-us/2008/04/10/understanding-floating-point-precision-aka- why-does-excel-gib-mir-scheinbar-falsche-antworten /), [link] (https://support.microsoft.com/en-us/help/78113/floating-point-arithmetic-may-give- ungenaue-Ergebnisse-in-Excel) und [link] (https://support.microsoft.com/en-us/help/214118/how-to-correc-rounding-errors-in-floating-point-arithmetic) . – tigeravatar

Antwort

0

Wie bereits erwähnt, liegt das an der Fließkomma-Genauigkeit von Excel.

Sie haben richtig, dass (1.39139-1.40596)*10000 gleich -145.7 ist. Ich habe jedoch versucht, dies in Excel einzugeben, um zu sehen, was es tatsächlich produziert hat, und ich fand folgendes. Wenn Sie Ihre Zelle C1 markieren und F9 auf der Tastatur drücken, sehen Sie, dass Excel diesen Wert tatsächlich als -145.700000000002 berechnet.

Ich weiß, Sie sagten, Sie wollen nicht ROUND verwenden, aber abgesehen von der Vermeidung von Fließkommazahlen insgesamt (d. H. Nur mit Ganzzahlen), denke ich ROUND ist Ihre einzige Option.

Ich schlage vor, dass Sie bestimmen, wie viele Ziffern nach dem Dezimalzeichen Sie jemals in Ihrem Blatt benötigen, und ROUND(<number>,<max digits>) in alle Formeln wie erforderlich enthalten.

das heißt statt =(A1-B1)*10000 zu verwenden, sollten Sie =ROUND((A1-B1)*10000,5) (zB abzurunden zu 5-stellig) eingeben, den Wert von genau-145.7 zurückkehren würde. Ich hoffe, das hilft, oder zumindest hoffe ich, dass dies zumindest Aufschluss darüber gibt, was das verursacht.