EXCEL berechnet folgende Formel nicht richtig...

  • Leute,

    ich bin hier am Verzweifeln. Dieses dreckige Mist-Excel macht nicht, was es soll.

    Folgendes Problem. Bei uns an der Uni werden ab und an mal Studenten beschäftigt, dafür gibt es 6,5€ pro Stunde, in bar! Daher muss ich ja nun wissen, was für Geldscheine/Geldstücke ich benötige, um die Leute zu bezahlen.

    Wenn also jmd. 10 € kriegt, geb ich ihm 'nen 10€ Schein. Wenn er 19,25€ kriegt, geb ich ihm 10€/5€/2x2€/20Cent/5Cent.

    Da ich das bei der Menge der auszuzahlenden Beträge nicht alles per Hand berechnen will, hab ich mir ne Formel für die Stückelung gebastelt, bitte dazu in folgende Excel-Tabelle schauen, die ich mal als Beispiel angelegt habe:

    http://rapidshare.com/files/93761647/fuer_Forum.rar.html

    PASSWORT LAUTET: geld

    Der Hilfsbereite FF-User wird feststellen, dass ab 'nem bestimmten Betrag (ab 35,75€) nicht mehr EIN 5 Cent Stück, sondern 2x2Cent + 1Cent Stück berechnet werden. Das dürfte nach den Gesetzen der Mathematik aber nicht passieren.

    Zum Verständnis:

    Ich lasse mir vom Anfangsbetrag den ganzzahligen Quotient von 100 (entspricht 100€-Schein) berechnen (mit der Funktion "QUOTIENT").
    Dann nehme ich den Rest und lasse mir den ganzzahligen Anteil von 50€ ausgeben.
    Dann nehme ich den Rest und lasse mir den ganzzahligen Anteil von 20€ ausgeben.

    usw.

    Bei 157,50€ gibt es also EINEN 100€-Schein, EINEN 50€-Schein, EINEN 5€-Schein, EIN 2€-Stück, EIN 50Cent-Stück.

    Also müsste bei einem Betrag von 35,75€ das KLEINSTE Geldstück ein 5Cent-Stück sein (denn 0,05/0,05=1).

    Das macht Excel aber nicht, und ich weiß nicht warum. Ich versteh's einfach nicht. Zumal ab einem Betrag von 133,75€ alles wieder richtig ausgegeben wird. Ab einem Betrag von 516,75€ macht er es hingegen wieder falsch.

    Ich bin mit meinem Latein am Ende. Bitte helft mir! :wink:

    MfG...

    Edit:

    Ich wollte vielleicht mal die Formeln hier posten.

    Also der auszuzahlende Betrag steht in der Zelle "O5". Rechts daneben (also P5) steht die Anzahl der 100€-Scheine
    R5=50€
    S5=20€
    usw.

    Also die Formel für

    100€: =QUOTIENT(O5;100)
    50€: =QUOTIENT((O5-P5*100);50)
    20€: =QUOTIENT((O5-(P5*100+Q5*50));20)
    10€: =QUOTIENT((O5-(P5*100+Q5*50+R5*20));10)
    5€: =QUOTIENT((O5-(P5*100+Q5*50+R5*20+S5*10));5)
    2€: =QUOTIENT((O5-(P5*100+Q5*50+R5*20+S5*10+T5*5));2)
    1€: =QUOTIENT((O5-(P5*100+Q5*50+R5*20+S5*10+T5*5+U5*2));1)
    50Cent: =QUOTIENT((O5-(P5*100+Q5*50+R5*20+S5*10+T5*5+U5*2+V5*1));0,5)
    20Cent: =QUOTIENT((O5-(P5*100+Q5*50+R5*20+S5*10+T5*5+U5*2+V5*1+W5*0,5));0,2)
    10Cent: =QUOTIENT((O5-(P5*100+Q5*50+R5*20+S5*10+T5*5+U5*2+V5*1+W5*0,5+X5*0,2));0,1)
    5Cent: =QUOTIENT((O5-(P5*100+Q5*50+R5*20+S5*10+T5*5+U5*2+V5*1+W5*0,5+X5*0,2+Y5*0,1));0,05)

  • Zitat von deschen2

    Das dürfte nach den Gesetzen der Mathematik aber nicht passieren.

    Nur gelten diese nicht für von humanoiden Wesen konstruierte Rechenknechte.

    Über Dein Problem existieren unzählige Abhandlungen zum Thema Rundungsfehler in der rechnerunterstützten numerischen Mathematik.

    Bei den 5 Cent erwartest Du einen Wert von 1,000000000000000, der aber real 0,999999999999996 beträgt. Daraufhin ist das Ergebnis von QUOTIENT() natürlich 0.

    Eine kleine Fehlerkorrektur mit RUNDEN() stellt die Welt wieder richtig, QUOTIENT( RUNDEN( ;8); ). Die zu rundenden Stellen sollten nur außerhalb Deines Gültigkeitsbereiches liegen.

  • Leute, erstmal ein großes Dankeschön für die Hilfe!

    Pseiko: ja, soweit scheint das zu funktionieren...ich denke, du willst mit deiner Variante das Problem der Rundung umgehen, dass Ulli angesprochen hat.
    Der Haken liegt nun aber darin, dass wenn jmd. 0,75h gearbeitet hat, er 4,875€ kriegt, das wird auf 4,88€ gerundet. Und dann streikt die Formel auf einmal hinten bei 1Cent!

    @Ulli: aber woher kommt das mit den Rundungsfehlern? Ich meine, warum ist in Excel 0,05/0,05 NICHT 1,000000000, sondern 0,9999999??? Das will mir nicht begreiflich werden! :wink:

    Und das mit dem Runden hatte ich vorher schon probiert...ich habe den Ausgangsbetrag mit AUFRUNDEN auf 2 Nachkommastellen gerundet, selbst innerhalb meiner Formel hab ich den RUNDEN Befehl genommen, damit Excel mit den gerundeten und nicht mit den angezeigten Werten weiterarbeitet.

    Aber das erklärt ja noch nicht, warum bis zu einem bestimmten Betrag meine Formel funktioniert, dann wieder nicht, und dann wieder doch.

    Ganz merkwürdig wird es, wenn man wie gesagt 0,75h oder 1,75h usw. gearbeitet hatt, da MUSS ja dann gerundet werden (1,625 wird zu 1,63 usw.).
    Aber da war es dann teilweise so, dass IDENTISCHE Werte in versch. Zellen mal das richtige, mal das falsche Ergebniss gebracht haben.

    Ich hatte irgendwo mal 16,375 (oder so)...wurde richtig berechnet.
    Eine Zeile drunter dieselbe Zahl-->falsches Ergebnis.

    Ich will meinen alten Rechenschieber zurück! :cry:

    Hab' gestern mit meinem Vater noch dran gesessen, der auch der Meinung war, dass wegens der Darstellung und Berechnung von Real/binär/was weiß ich für Zahlen da Rundungsfehler nachm Komma auftreten können.

    Also haben wir einfach den Ausgangswert und die Zahlen in den Formeln mit 100 multipliziert und siehe da, es ging auf einmal.

    Ich hab' mein Vertrauen in die Logik der Mathematik verloren! :cry:

    Trotzdem probier' ich nochmal bissel an euren Varianten rum...ich will, das Excel das Runden kapiert! :wink:

    Danke nochmal.

    MfG...

  • Zitat von deschen2

    Ich hab' mein Vertrauen in die Logik der Mathematik verloren!

    Sorry, aber da bist Du auf dem Holzweg. Du musst einfach nur die Grenzen der Maschinerie akzeptieren.

    Dazu reicht ein Blatt Papier. Der Bruch 1/3 ergibt 0,3333 ... bei unendlicher Länge mit Periode 3. Jetzt schreibst Du es auf dem Papier, irgendwann geht das Blatt oder Dir die Lust aus. Egal wie lang Deine Zahl geriet, sie nähert sich zwar dem Wert 1/3 an, wird ihn jedoch nie erreichen.

    Im Rechner ist es identisch. Die aufführbaren Nachkommastellen sind begrenzt und darum muss die Zahl abweichen. Real:

    Zitat

    0,333333333333333000000

    diese Zahl zu sich selbst addiert ergibt

    Zitat

    0,666666666666667000000

    Da ja 3+3 meistens nicht 7 ergibt, haben hier auch interne Rundungen stattgefunden. Ob in der Formatierung oder früher kann ich absolut nicht sagen.

    P.S. Die Berechnung für Pi auf die x. Stelle laufen anders ab.

  • Pseiko: ja, so in etwa funktioniert das! Bisschen schummeln und schon versteht Excel also, was man will! :wink:

    @Ulli: das mit dem Runden würde ich ja bei gebrochenen Zahlen mit Periode oder irrationalen Zahlen verstehen (also z.B. PI oder eben 1/3 oder sowas). Die haben unendlich viele Nachkommastellen, da muss dann jedes Programm irgendwann runden.

    Aber bei Zahlen wie 3,25 oder 1,625 sind die Nachkommastellen ja begrenzt und eine Zahl mit zwei Nachkommastellen richtig zu berechnen darf man doch wohl von Excel erwarten. DA steigt eben mein Verständnis aus, da ja Excel bei solchen Zahlen gar nicht runden braucht.

    Wie dem auch sei, auf die ein der andere "unelegante" Weise sind wir ja nun zur Lösung gekommen, mein kleines exaktes Mathematikerherz beruhigt das aber nicht! :lol:

    MfG...