Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
828to832
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
828to832
828to832
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Elementarer Arithmetikfehler in EXCEL??

Elementarer Arithmetikfehler in EXCEL?
23.12.2006 13:15:45
UweG
Hallo *,
ich mag es kaum glauben, aber rechnet EXCEL (XP, SP2, Build 10.4302.4219) bei der Funktion REST(x;y) womöglich falsch?
Es sieht so aus, als würde bei der Ganzzahldivision der Rest dann falsch ermittelt, wenn Dividend und Divisor unterschiedliches Vorzeichen haben. Über die EXCEL-Regel, dass das Ergebnis immer das Vorzeichen des Divisors hat, kann man sowieso streiten, aber wo der Rest 2 herkommt, ist mir schon ein Rätsel...
Beispiele:
=REST(7;3) -&gt 1
=REST(-7;3) -&gt 2
=REST(7;-3) -&gt -2
=REST(-7;-3) -&gt -1
Kann das mal jemand überprüfen?
Gruß
Uwe

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Elementarer Arithmetikfehler in EXCEL?
23.12.2006 13:33:17
UweG
Hallo *,
eine (nicht befriedigende) Erklärung liegt wohl darin, dass der REST-Funktion die GANZZAHL-Funktion zugrunde liegt. Damit werden negative Zahlen absolut aufgerundet, z. B. -7/3 =-2,333 also -3. Mit -7 - (-3 * 3) ergibt sich tatsächlich die Differenz 2.
Merkwürdig.
Gruß
Uwe
AW: Elementarer Arithmetikfehler in EXCEL?
23.12.2006 13:50:55
Erich
Hallo Uwe,
GANZZAHL: Rundet eine Zahl auf die nächstkleinere ganze Zahl ab.
Das gilt für positive wie für negative Zahlen. Was daran ist unbefriedigend?
Rückmeldung wäre nett! - Erich aus Kamp-Lintfort wünscht euch schöne Feiertage!
AW: Elementarer Arithmetikfehler in EXCEL?
23.12.2006 18:09:41
UweG
Hallo Erich,
dass GANZZAHL() eben so arbeitet, ist nicht merkwürdig, aber die Auswirkungen auf REST() ist das Problem.
Wenn EXCEL meint, dass -7/3 den Rest 2 lässt, ist das nicht nachvollziehbar.
Der Zusammenhang mit GANZZAHL() ist laut Hilfe:
REST(zähler;nenner) = zähler - nenner * GANZZAHL(zähler/nenner)
Meines Erachtens ist es nur ok, wenn:
REST(zähler;nenner) = zähler - nenner * KÜRZEN(zähler/nenner)
VBA macht's ja auch (teilweise) richtig -7 mod 3 ist -1, ok.
Bei den Vorzeichen verhaspelt er sich dann aber auch: -7 mod -3 sei -1, naja....
Gruß
Uwe
Anzeige
AW: Elementarer Arithmetikfehler in EXCEL?
23.12.2006 23:08:51
Erich
Hi Uwe,
von "richtig" oder "falsch" darf man da m. E. nicht sprechen,
die verschiedenen Möglichkeiten der Definition kann man natürlich
für mehr oder weniger anschaulich oder praktisch halten.
In manchen Programmiersprachen (vielleicht auch in Kalkulationsprorogrammen?)
werden einfach zwei Möglichkeiten (Anweisungen, Funktionen) angeboten.
Im Beispiel
 ABCDEFGHIJK
1 z-4-3-2-101234
2 D         
3REST3201201201
4z - D*GANZZAHL(z/D)3201201201
5z - D*KÜRZEN(z/D)3-10-2-101201
6           
7REST-3-10-2-10-2-10-2
8z - D*GANZZAHL(z/D)-3-10-2-10-2-10-2
9z - D*KÜRZEN(z/D)-3-10-2-101201

Formeln der Tabelle
ZelleFormel
C3=REST(C$1;$B3)
C4=C$1-$B4*GANZZAHL(C$1/$B4)
C5=C$1-$B5*KÜRZEN(C$1/$B5)
C7=REST(C$1;$B7)
C8=C$1-$B8*GANZZAHL(C$1/$B8)
C9=C$1-$B9*KÜRZEN(C$1/$B9)

ist es meiner Meinung nach anschaulich und nachvollziehbar, dass sich (etwa in Zeile 3) die Reste 0, 2 und 1 periodisch wiederholen, wenn man die Zahl (Zeile 1) schrittweise vermindert.
Für jede Zahl wird das nächstkleinere Vielfache des Divisors gesucht (grüne Spalte).
Bei z=-1 ist das dann -3, und der Rest ist 2.
Noch was zum Nachlesen:
http://de.wikipedia.org/wiki/Divisionsrest (Ganze Zahlen)
http://www.swisseduc.ch/informatik/werkstatt/multiplik/divmod/docs/divmod.pdf (Seiten 7 bis 9)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Verstehe eure Weißwaschungsversuche nicht...
25.12.2006 03:27:42
Luc:-?
...meine Herren! ;-)
Das ist ein schwerer Mathefehler in Excel. Punkt! Ich hab das mal in der Schule ganz anders gelernt. Und mit Ganzzahl hat das auch wenig zu tun. Die ist eben auch idiotisch definiert. Übrigens ist das wohl auch nicht mal die Schuld von MS, man hat in Redmond nur die Abwärtskompatibilität des vor Urzeiten mal eingekauften Programms gewahrt. Außerdem hatten sich andere Kalkulationsprogramme, die es idR richtig machen, schon längst darauf eingestellt. Da konnte man wohl bei MS schlecht alles wieder ändern. Dass sie wissen wie es richtig wäre, haben sie bei ihrer eigenen Kreation Works ja gezeigt! Auch Lotus 1-2-3 macht's richtig (da fkt wohl auch Ganzzahl im negativen Bereich anders). Ob OO diesen xlFehler mit übernommen hat, habe ich noch nicht überprüft.
Da VBA auch eine MS-Kreation ist, läuft es hier auch richtig und das Vorzeichen wird vom Dividenden übernommen, Uwe.
Die REST-Lösung aus dem Uralt-Excel folgt wohl eher irgendwelchen mehr oder weniger irrigen praktischen Überlegungen des damaligen Programmierers oder ist einfach nur Ausdruck seiner mathematischen Unzulänglichkeiten. Und sowas wird bis ins 21.Jhd mitgeschleppt! LOL
Es ist allerdings auch nicht schwer, sich eine richtig rechnende udF für diesen Zweck zu schreiben. Die kann dann allerdings nicht in andere KalkPgmm konvertiert wdn, obwohl die sicher genauso rechnen... (s.ob.) ;-)
Frohe Weihnachten allerseits!
Luc :-?
PS: Ich hab natürlich eine solche udF - DRest - und gleich noch welche für die verschiedenen Möglichkeiten bei Ganzzahl in neg/pos Zahlbereichen - IFloor, ICeil, IHigh, ILow.
Anzeige
AW: Schwerer Mathefehler? Lesen hilft...
25.12.2006 11:02:21
Erich
Hi Luc,
wenn etwas dem in der Schule Gelernten widerspricht, muss es noch lange nicht falsch sein!
Den folgenden Text habe ich (etwas abgewandelt) entnommen aus
http://www.inf.fh-flensburg.de/lang/algorithmen/grundlagen/zahlenth.htm
Sind diese Definitionen mathematisch "falsch" (was auch immer man darunter verstehen mag)?
Definition 1:
Sei n eine natürliche Zahl.
Die Relation "kongruent (mod n)" auf der Menge der ganzen Zahlen ist wie folgt definiert:
a kongruent b (mod n) <==> n|(a–b) für alle ganzen Zahlen a, b.
Kommentar:
Zwei Zahlen sind also kongruent modulo n, wenn ihre Differenz durch n teilbar ist.
Die Relation "kongruent (mod n)" ist eine Äquivalenzrelation.
Eine Äquivalenzrelation bewirkt eine Klasseneinteilung der Grundmenge in Klassen äquivalenter Elemente.
Die Äquivalenzklassen der Relation "kongruent (mod n)" enthalten jeweils diejenigen Zahlen,
die bei Division durch n denselben Rest ergeben, sie heißen deshalb Restklassen.
Die kleinste nichtnegative Zahl in jeder Restklasse heißt Repräsentant der Restklasse.
Die Relation "kongruent (mod n)" teilt die Menge der ganzen Zahlen in n Restklassen
mit den Repräsentanten 0, 1, 2, ..., n-1 ein.
Die Menge der Repräsentanten {0, 1, 2, ..., n-1} wird mit Zn bezeichnet.
Definition 2:
Sei a eine ganze Zahl, n eine natürliche Zahl.
Die Operation "mod" ist wie folgt definiert:
a mod n = b <==> a kongruent b (mod n) und 0<=b<n
Kommentar:
a mod n liefert den Repräsentanten der Klasse, in der a liegt.
Die Excelfunktion REST liefert das nach dieser Definition richtige Ergebnis.
Rückmeldung wäre nett! - Erich aus Kamp-Lintfort wünscht schöne Feiertage!
Anzeige
AW: Schwerer Mathefehler? Lesen hilft...
26.12.2006 02:51:22
Luc:-?
Hallo Erich,
warum machen's dann die anderen Kalkpgmm anders! Wohl, weil REST im negativen Zahlenbereich sonst nicht praxistauglich ist. Korrigiere mich also nur insofern, dass der ursprüngliche Pgmmierer wohl ein Mathetheoretiker war. ;-)
Man hätte da ja auch verschiedene Fktt schaffen können! Jedenfalls kann ich so eine REST-Fkt für negative Zahlen nicht gebrauchen. Lotus 1-2-3 transformiert Formeln mit dieser Fkt deshalb auch in etwas komplexere Formeln, nicht einfach in seine MOD-Fkt. Und immerhin läuft es in Works und VBA ja auch anders. Modulo muss ja auch nicht mit dem klassischen Verständnis des Divisionsrestes übereinstimmen. Insofern ist die dt Bezeichnung der Fkt falsch gewählt, genauso wie SUMMENPRODUKT, das eigentlich Produktsumme heißen müsste... Aber das weißt du ja! ;-)
Schönen 2.Feiertag und Guten Rutsch ins Neue!
Luc :-?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige