Re: Falschrechner

2015-11-12 Diskussionsfäden Alois Klotz

Hallo,
das ist nicht nur in Calc so, sondern das Problem tritt auch in 
Programmiersprachen auf.
Man kann daher vernünftigerweise nie zwei berechnete Werte auf 
Gleichheit direkt überprüfen, sondern man muss sie vorher runden oder 
beim Vergleich eine minimale Abweichung akzeptieren - also wenn 
Absolutwert(VarA - VarB) < z.B. 0,1 dann als gleich werten.

MfG Alois
--
www.easy4me.info

technik schrieb am 12.11.2015 um 15:58:

Hallo,

ich habe schon wieder so einen dummen Fehler, wo das Programm 
anscheinend falsch rechnet.
a+b-c=d aber dann ist d<>d; Abweichung 10E-13 aber für die Überprüfung 
ergibt das eben ein Falsch.


Kommt das bei Euch auch raus oder rechnet mein Rechner falsch?

Gibt es keine Möglichkeit solche Fehler zu vermeiden, wenn man 
=(A7=48,55) rechnet?

Wäre einfacher als =(A7-48,55)<0,001 oder gar =ABS(A7-48,55)<0,001
Ich weiß, dass es wohl ein Problem der Fließkommarundung ist, aber 
trotzdem ist da irgendetwas schief, wenn der Rundungsfehler von 10E-13 
bei zwei Nachkommastellen nicht abgefangen wird.


48,55
-7,25E-013


510,46 +
22082,64 +
22544,55 -
48,55 =SUM
-7,24753590475302E-013 =Sum-48,55



Formel in a6: =A4+A5-A6

Oder die Datei
https://www.dropbox.com/s/pf372p4oo0rrf4s/falschrechner.ods?dl=0



Horst





Re: Fehlerabfrage in CALC mit "WENN-ODER"

2015-11-12 Diskussionsfäden Semmel


Moin Wolfgang,


Wolfgang Jäth schrieb am 11.11.2015 um 18:04:

Am 11.11.2015 um 13:58 schrieb Semmel:

Ist eine „ODER“ Verknüpfung in Verbindung mit „ISTFEHLER“ nicht möglich
oder wo liegt mein Bock?

Also liefert ISTFEHLER das Ergebnis FALSCH zurück; das bedeutet, dass
die nächste Bedingung abgefragt werden muss, denn die könnte ja TRUE sein.


wie schon eben an Horst geschildert: da genau lag mein Denkfehler bzw. 
meine irrige Annahme, weil ich dachte: "ist die eine ODER die andere 
Bedingung zutreffend (ODER auch beide), dann ...". Ich hoffe, ich merke 
mir diesen Unterschied bei Calc.  :)





b) der gesuchte Wert kleiner 1 ist
[=WENN(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;1)<1);"
";SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0))], dann
klappt auch das für sich genommen, wenn das gesuchte Datum besteht. Aber
„es geht“ in dem Augenblick nicht mehr (Ergebnis: #NV), wenn das Datum
erst gar nicht gefunden wird (was mir in dieser entzerrten Konstellation
auch klar ist).

In Calc werden bei den Funktionen UND und ODER anscheinend *alle*
angegebenen Bedingungen ausgewertet; ein vorzeitiger Abbruch, wie aus
den gängigen Programmiersprachen o. ä. gewohnt, findet *nicht* statt.

Du müsstest die Bedingungen also entkoppeln, und zwei ineinander
geschachtelte Abfragen verwenden:

|
=WENN(ISTFEHLER(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0));"";WENN(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;1)<1;"";SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0)))


wie immer: perfekte Lösung.

Ich will überhaupt nicht schleimen und ich werde das Folgende auch nur 
einmal in dieser Liste sagen - und dann nie mehr. Aber wie schaffst Du 
es immer wieder, Dich in die Konstrukte (bei zumeist nur kurzen 
Schilderungen) so derart hinein zu versetzen?


Vor meiner Anfrage hier in der Liste hatte ich in einigen Tabellen-Foren 
geschaut, aber nichts vergleichbares zu meinem Problem gefunden. Aber 
als ich dort die teilweise kryptischen Schilderungen gelesen habe, wäre 
mir oftmals dazu auch keine Lösung eingefallen - da geht es mir eher wie 
Horst: ich muss neben der Beschreibung die Tabelle sehen und genau das 
Ziel kennen - dann geht's (einigermaßen). Aber nur mit einer Schilderung 
*und* (dem Versuch) einer Formel bin ich in den meisten Fällen doch eher 
überfordert. Von daher: bewundernswert - sowohl dein Talent, als auch 
dein Engagement und ich danke dir ganz außerordentlich dafür!


Zu guter Letzt: deine "quick-and-dirty"-Lösung würde vermutlich auch 
funktionieren, aber mit "Eleganz" habe ich es nicht so. Daher habe ich 
deine o.e. Variante gewählt, die prima funktioniert. Nochmals: danke!


Liebe Grüße, Peter.



Re: Fehlerabfrage in CALC mit "WENN-ODER"

2015-11-12 Diskussionsfäden Semmel


Moin Schulze,

wie findest du diese Anrede? Nicht so gut? Dann solltest du zukünftig 
vielleicht auch Peter zu mir sagen.  :)


Dein Problem des nicht wirklich Nachvollziehen-Könnens mit einer relativ 
kurzen Schilderung, kenne ich nur zu gut. Und ich hätte die Datei nach 
Deiner Bitte heute auch auf einem fremden Server hinterlegt, wenn nicht 
auch Wolfgang schon eine Lösung angeboten hätte.


Und weiter kann man die Formeln ja praktisch kaum noch 
auseinanderziehen. Ferner funktionieren beide Teilabfragen ja auch - nur 
eben unter der Bedingung, dass das gesuchte Datum auch vorhanden ist. 
Ist das aber nicht vorhanden, gibt es ein "#NV", das ich dann mit der 
Fehlerabfrage unterbinden wollte.


Mir war dabei nur nicht klar (bzw. war ich der irrigen Annahme), dass 
ein "ODER" mehr oder minder auf jede der Bedingungen reagiert. D.h. ich 
dachte: ist nur eine Bedingung WAHR, dann "x", sonst "y" *und* sind 
beide Bedingungen WAHR, dann ebenfalls "x", sonst "y".
Mir war dabei nicht bewusst, dass eine ODER-Abfrage in Calc einem "XOR" 
(wie ich es aus Programmiersprachen kenne) arbeitet. Da lag mein Denkfehler.


Dennoch: herzlichen Dank für Deine Bemühungen, Horst.  ;)))

Liebe Grüße, Peter.


technik schrieb am 11.11.2015 um 16:21:

Hallo Semmel,

tut mir leid, aber mir ist das Beispiel nicht so richtig klar. Das 
geht mir auch oft so mit meinen eigenen Anfragen.

Mach doch eine Datei und lege sie irgendwo ab, dann gib uns den Link.

Ich habe bei Formeln mit Problemen das immer so gemacht, dass ich 
jeden einzelnen Item in ein Feld geschrieben habe, also immer weiter 
die Formel zerlegt, bis ich den Fehler gefunden habe.


Horst

Am 11.11.2015 um 13:58 schrieb Semmel:

Fehlerabfrage in CALC:

Ist eine „ODER“ Verknüpfung in Verbindung mit „ISTFEHLER“ nicht 
möglich oder wo liegt mein Bock?


Gegeben sind zwei Tabellenblätter. Im ersten befindet sich eine 
Übersichtstabelle, in der verschiedene Jahre waagerecht (Zeile 4) und 
die Monate senkrecht (Spalte 1, ab Zeile 4) eingetragen sind. Über 
diese Zuordnung von Monat und Jahr suche ich nun im Tabellenblatt 2 
(„Daten“) nach den entsprechenden Werten.


Weshalb aber gibt mir die folgende Formel ein #NV aus, wenn das 
entsprechende Datum nicht gefunden wird, *obwohl* ich das mit einem 
„ISTFEHLER“ versucht habe abzufangen?


=WENN(ODER(ISTFEHLER(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0));SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;1)<1);" 
";SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0))



„Ziehe“ ich die Formel auseinander und frage mit WENN (*ohne* ein 
„ODER“) ab, ob
a) ein Fehler besteht 
[=WENN(ISTFEHLER(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0));" 
";SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0))], dann 
klappt das und die Zelle bleibt wie gewünscht leer und


b) der gesuchte Wert kleiner 1 ist 
[=WENN(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;1)<1);" 
";SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0))], dann 
klappt auch das für sich genommen, wenn das gesuchte Datum besteht. 
Aber „es geht“ in dem Augenblick nicht mehr (Ergebnis: #NV), wenn das 
Datum erst gar nicht gefunden wird (was mir in dieser entzerrten 
Konstellation auch klar ist).


Weshalb aber kann ich das mit der eingangs beschriebenen „=WENN(ODER 
...“ -Abfrage nicht abfangen und erhalte (bei nicht gefundenem Datum) 
immer ein #NV?

Wo liegt mein Fehler?

Liebe Grüße, Peter.






Re: Fehlerabfrage in CALC mit "WENN-ODER"

2015-11-12 Diskussionsfäden Wolfgang Jäth
Am 12.11.2015 um 10:02 schrieb Semmel:
> 
> Mir war dabei nur nicht klar (bzw. war ich der irrigen Annahme), dass 
> ein "ODER" mehr oder minder auf jede der Bedingungen reagiert. D.h. ich 
> dachte: ist nur eine Bedingung WAHR, dann "x", sonst "y" *und* sind 
> beide Bedingungen WAHR, dann ebenfalls "x", sonst "y".

So ist es auch; Du hast nur irrigerweise vorausgesetzt, dass wenn "x"
WAHR ist, dann "y" gar nicht mehr überprüft wird.

> Mir war dabei nicht bewusst, dass eine ODER-Abfrage in Calc einem "XOR" 
> (wie ich es aus Programmiersprachen kenne) arbeitet. 

Nein, tut es nicht; XOR liefert TRUE, wenn beide Bedingungen
unterschiedlich sind (insbesondere liefert es auch FALSE, wenn beide
Bedingungen TRUE sind).

Wolfgang
-- 

-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org



Re: Fehlerabfrage in CALC mit "WENN-ODER"

2015-11-12 Diskussionsfäden Wolfgang Jäth
Am 12.11.2015 um 10:23 schrieb Semmel:
> 
> Wolfgang Jäth schrieb am 11.11.2015 um 18:04:
>> Am 11.11.2015 um 13:58 schrieb Semmel:
>>> Ist eine „ODER“ Verknüpfung in Verbindung mit „ISTFEHLER“ nicht möglich
>>> oder wo liegt mein Bock?
>> Also liefert ISTFEHLER das Ergebnis FALSCH zurück; das bedeutet, dass
>> die nächste Bedingung abgefragt werden muss, denn die könnte ja TRUE sein.
> 
> wie schon eben an Horst geschildert: da genau lag mein Denkfehler bzw. 
> meine irrige Annahme, weil ich dachte: "ist die eine ODER die andere 
> Bedingung zutreffend (ODER auch beide), dann ...". Ich hoffe, ich merke 
> mir diesen Unterschied bei Calc.  :)

Das ist auch so; nur werden halt grundsätzlich alle Bedingungen abgefragt.

> Ich will überhaupt nicht schleimen und ich werde das Folgende auch nur 
> einmal in dieser Liste sagen - und dann nie mehr. Aber wie schaffst Du 
> es immer wieder, Dich in die Konstrukte (bei zumeist nur kurzen 
> Schilderungen) so derart hinein zu versetzen?

Du kennst *meine* Formeln nicht ... 

Wolfgang
-- 
=WENN($A14=""; ""; WENN(AutoMakro.$C$19=7; V14*1000; MAX(1; MIN(10;
ABRUNDEN(WENN(V14<15; MAX(WENN($AutoMakro.$F$7=10; 9; 0);
((299,9+(200*V14))/(AutoMakro.$C$18*100))); WENN(V14>84; MAX(WENN(ODER(
$AutoMakro.$F$7=4; $AutoMakro.$F$7>=9); 60; 0); ((20099,9-(200*V14))/
(AutoMakro.$C$18*100))); (10*SIN(V14*PI()/100)

-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org



Re: Falschrechner

2015-11-12 Diskussionsfäden Jörg Schmidt
Hallo,

> From: Wolfgang Jäth [mailto:jawo.ml.hams...@arcor.de] 

> *Du* denkst *dezimal*. Der *Rechner* denkt *binär* (und zwar immer mit
> voller Genauigkeit). 

Sorry, aber genau das stimmt doch hier nicht. Die Rechenungenauigkeiten in Calc
gehen darauf zurück das Calc das gerade nicht tut sondern nur mit einer
Genauigkeit von (ich glaube) 15 Stellen rechnet. Excel übrigens auch.

Tipps (für Excel die sich aber auf Calc übertragen lassen) siehe:
http://www.excelformeln.de/tips.html?welcher=24
http://www.excel-ticker.de/in-excel-mit-sehr-grossen-zahlen-rechnen-teil-1-additio
n/


Gruß
Jörg


-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org



Re: Falschrechner

2015-11-12 Diskussionsfäden Josef Latt
Auch mit unendlich vielen Nachkommastellen gibt es Ungenauigkeiten.

Am 13.11.2015 um 08:02 schrieb Jörg Schmidt:
> Hallo,
> 
>> From: Wolfgang Jäth [mailto:jawo.ml.hams...@arcor.de] 
> 
>> *Du* denkst *dezimal*. Der *Rechner* denkt *binär* (und zwar immer mit
>> voller Genauigkeit). 
> 
> Sorry, aber genau das stimmt doch hier nicht. Die Rechenungenauigkeiten in 
> Calc
> gehen darauf zurück das Calc das gerade nicht tut sondern nur mit einer
> Genauigkeit von (ich glaube) 15 Stellen rechnet. Excel übrigens auch.
> 
> Tipps (für Excel die sich aber auf Calc übertragen lassen) siehe:
> http://www.excelformeln.de/tips.html?welcher=24
> http://www.excel-ticker.de/in-excel-mit-sehr-grossen-zahlen-rechnen-teil-1-additio
> n/
> 
> 
> Gruß
> Jörg
> 
> 
> -
> To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
> For additional commands, e-mail: users-de-h...@openoffice.apache.org
> 
> 

-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org



Re: Falschrechner

2015-11-12 Diskussionsfäden Oliver Brinzing

Hi,

> Gibt es keine Möglichkeit solche Fehler zu vermeiden, wenn man =(A7=48,55) 
rechnet?

mir fällt dazu nur folgendes ein:

=Kürzen(...;2) bzw. =Runden(...;2) verwenden

oder:

Menü Extras - Einstellungen - OpenOffice Calc - Berechnen:
->  [X] Genauigkeit wie angezeigt

Gruß
Oliver


-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org



Re: Falschrechner

2015-11-12 Diskussionsfäden Wolfgang Jäth
Am 12.11.2015 um 15:58 schrieb technik:
> 
> ich habe schon wieder so einen dummen Fehler, wo das Programm 
> anscheinend falsch rechnet.
> a+b-c=d aber dann ist d<>d; Abweichung 10E-13 aber für die Überprüfung 
> ergibt das eben ein Falsch.
> 
> Kommt das bei Euch auch raus oder rechnet mein Rechner falsch?

Ja; nein. Das sind technisch bedingte Rundungsfehler.

> Gibt es keine Möglichkeit solche Fehler zu vermeiden, wenn man 
> =(A7=48,55) rechnet?

| =(Runden(A7;2)=Runden(48,55;2))

(ggf. auch AB~/AUF~; wichtig ist, immer *beide* Vergleichswerte auch
*gleich* zu behandeln)

> Wäre einfacher als =(A7-48,55)<0,001 

Dumm nur, wenn A7 < 48,54 ist ...

> Ich weiß, dass es wohl ein Problem der Fließkommarundung ist, aber 
> trotzdem ist da irgendetwas schief, wenn der Rundungsfehler von 10E-13 
> bei zwei Nachkommastellen nicht abgefangen wird.

*Du* denkst *dezimal*. Der *Rechner* denkt *binär* (und zwar immer mit
voller Genauigkeit). Aber nicht jeder dezimal endliche Wert ist erstens
auch *binär* als /endlicher/ Wert darstellbar (genauso wenig wie es im
dezimalen Zahlenraum solche Werte gibt, z. B. 1/3), und zweitens muss
bei Rechenoperationen manchmal die Genauigkeit beschnitten werden, so
dass auch die Verknüpfung endlicher Werte manchmal einen nicht-endlichen
Wert ergeben kann.

Und bei der Subtraktion in A6 kommt halt nun mal 'nur' 48,54993
raus.

Wolfgang
-- 

-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org



Falschrechner

2015-11-12 Diskussionsfäden technik

Hallo,

ich habe schon wieder so einen dummen Fehler, wo das Programm 
anscheinend falsch rechnet.
a+b-c=d aber dann ist d<>d; Abweichung 10E-13 aber für die Überprüfung 
ergibt das eben ein Falsch.


Kommt das bei Euch auch raus oder rechnet mein Rechner falsch?

Gibt es keine Möglichkeit solche Fehler zu vermeiden, wenn man 
=(A7=48,55) rechnet?

Wäre einfacher als =(A7-48,55)<0,001 oder gar =ABS(A7-48,55)<0,001
Ich weiß, dass es wohl ein Problem der Fließkommarundung ist, aber 
trotzdem ist da irgendetwas schief, wenn der Rundungsfehler von 10E-13 
bei zwei Nachkommastellen nicht abgefangen wird.


48,55   
-7,25E-013  


510,46  +
22082,64+
22544,55-
48,55   =SUM
-7,24753590475302E-013  =Sum-48,55



Formel in a6: =A4+A5-A6

Oder die Datei
https://www.dropbox.com/s/pf372p4oo0rrf4s/falschrechner.ods?dl=0



Horst