Darstellung von Zeiteinheiten in Formeln

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

georgy
**
Beiträge: 22
Registriert: Mi, 28.06.2006 17:22

Darstellung von Zeiteinheiten in Formeln

Beitrag von georgy »

Eine Zelle ist als [HH]:MM formatiert. Wenn ich dort z.B. den Wert 2:11 eintrage, erscheint er sowohl in der Zelle als auch oben in der Formelzeile als 2:11. Soweitsogut.

Die Probleme fangen an, wenn ich in die Zelle nicht 2:11 eintrage, sondern =2:11 . Dann wird der Zellinhalt als 2:11 angezeigt, oben in der Formelzeile steht jedoch =0,0909722222222222 . Ich weiss, dass calc intern diesen Wert als Bruchteil eines Tages darstellt, aber muss man das so sehr nach aussen tragen?

Am Schlimmsten wird es, wenn ich in die Zelle eine Formel eintrage, etwa =vrunden(f7+g12;0:15) . Dann erscheint der Zellinhalt zwar weiterhin gut lesbar, oben in der Formelzeile steht dann aber =vrunden(f7+g12;0,0104166666666667) . Und jetzt stelle man sich vor, ich will nach etlichen Monaten wissen, wie ich die Formel damals genau geschrieben hatte. Was dieses 0,0104166666666667 urspruenglich mal gewesen war, laesst sich bestenfalls mit try-and-error herausfinden. :-(

Gibts eine Moeglichkeit, oben in der Formelzeile die 0:15 anzeigen zu lassen?
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

Hallo

Referenziere doch innerhalb der Formel auf eine Zelladresse mit der Zeiteinheit, dann behälst du die Übersicht.

Gruß Karo
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Eine Zelle ist als [HH]:MM formatiert. Wenn ich dort z.B. den Wert 2:11 eintrage, erscheint er sowohl in der Zelle als auch oben in der Formelzeile als 2:11. Soweitsogut.
Meiner Meinung nach nicht. Bei Format-Code [HH]:MM sollte bei Eingabe von 2:11 in der Zelle 02:11 und in der Formelzeile 02:11:00 erscheinen. Wenn das bei Dir nicht so ist, nenne bitte Deine OOo-Version.
Die Probleme fangen an, wenn ich in die Zelle nicht 2:11 eintrage, sondern =2:11 . Dann wird der Zellinhalt als 2:11 angezeigt, oben in der Formelzeile steht jedoch =0,0909722222222222 . Ich weiss, dass calc intern diesen Wert als Bruchteil eines Tages darstellt, aber muss man das so sehr nach aussen tragen?
Du weist das 2:11 zum gewünschten Ergebnis führt und Du weißt das =2:11 eine andere Eingabe ist - und nun soll bei verschiedener Eingabe dieselbe Reaktion erfolgen? Du bist es doch der Calc mit Eingabe von =2:11 die Anweisung gibt genau das zu tun was es tut. Und nun suchst Du nach einer Lösung die hieße das Calc Deine Anweisung ignorieren soll?
Ich verstehe das nicht.
Gibts eine Moeglichkeit, oben in der Formelzeile die 0:15 anzeigen zu lassen?
Das sollte gehen:

=vrunden(f7+g12;"0:15")

(allerdings können, meiner Erfahrung nach, Rundungsdifferenzen auftreten, nicht bei der Formel sondern bei Deiner, es kann also sein das nun das Ergebnis zu 'genau' ist)



Gruß
Stephan
georgy
**
Beiträge: 22
Registriert: Mi, 28.06.2006 17:22

Beitrag von georgy »

Meiner Meinung nach nicht. Bei Format-Code [HH]:MM sollte bei Eingabe von 2:11 in der Zelle 02:11 und in der Formelzeile 02:11:00 erscheinen. Wenn das bei Dir nicht so ist, nenne bitte Deine OOo-Version.
Ja, das wird als 02:11:00 angezeigt (2.02, Linux); diese Art der Darstellung hatte ich als aehnlich genug zu 2:11 angesehen. Sorry, wenn das verwirrt haben sollte.
Du weist das 2:11 zum gewünschten Ergebnis führt und Du weißt das =2:11 eine andere Eingabe ist - und nun soll bei verschiedener Eingabe dieselbe Reaktion erfolgen? Du bist es doch der Calc mit Eingabe von =2:11 die Anweisung gibt genau das zu tun was es tut. Und nun suchst Du nach einer Lösung die hieße das Calc Deine Anweisung ignorieren soll?
Ja, =2:11 ist syntaktisch anders als 2:11, sollte aber intern identisch dargestellt werden, weil es beides das Gleiche repraesentiert, naemlich einen trivialen Ausdruck, der nur aus einer Konstante besteht. Deshalb erwarte ich, dass der Parser beides identisch abbildet und auch nach aussen identisch darstellt. Wenn ich den Parser schreiben muesste, dann wuerde ich NumConst als syntactic sugar (benutzerfreundliche Kurzform) fuer den Ausdruck =NumConst interpretieren lassen.
=vrunden(f7+g12;"0:15")
Cool! Danke, den Trick mit den Double-Quotes kannte ich noch nicht. Bisher war ich der Meinung gewesen, dass die Double-Quotes nur fuer die Textkonstanten da sind. Funktioniert das intern also etwa folgendermassen? "2. Argument von vrunden ist Text, erwarte aber Zahl. Also versuche ich, den Text als Zahl zu interpretieren und habe damit sogar Glueck." Oder habe ich die interne Logik immer noch nicht richtig verstanden?

Jedenfalls danke fuer den Tipp! Funktioniert Bestens.
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Ja, =2:11 ist syntaktisch anders als 2:11, sollte aber intern identisch dargestellt werden, weil es beides das Gleiche repraesentiert, naemlich einen trivialen Ausdruck, der nur aus einer Konstante besteht.
Nein, es geht hier im Konkreten nicht um logische Betrachtungen was ein Ausdruck repräsentiert sondern ausschließlich um eine implementierte Bedienfunktionalität. Die konkrete Implementierung mag Dir ja nicht gefallen, nur im Gesamtkonzept stehen ingesamt nur wenig Möglichkeiten zur Verfügung, so das es wenig sinnvoll wäre diese nicht einzeln zu nutzen und 2 verschiedene mit einer Funktion zu belegen.

Das dort 'Zahlen' stehen ändert nun einmal nichts daran das strengenommen das eine ein Wert und das andere eine Formel ist. Calc nutzt diesen Unterschied, Excel bringt eine Fehlermeldung bei =2:11, ob das logischer oder sinnvoller ist kann ja diskutiert werden, nur praktisch ist damit der Ausdruck =2:11 in Excel garnicht zu gebrauchen, ich sehe nicht das das von Nutzen wäre, denn so kannst Du nur 2:11 verwenden und das kannst Du in Calc eben auch (da aber zusätzlich das andere).
Funktioniert das intern also etwa folgendermassen? "2. Argument von vrunden ist Text, erwarte aber Zahl. Also versuche ich, den Text als Zahl zu interpretieren und habe damit sogar Glueck." Oder habe ich die interne Logik immer noch nicht richtig verstanden?
Das ist wiederum eine Frage der Implementierung die ich Dir nicht beantworten kann. Wie es umgesetzt ist kannst Du aus dem Quelltext von OOo ersehen, der Dir weil OpenOffice.org OpenSource ist zur Verfügung steht, z.B.:
http://live.prooo-box.org/openoffice.or ... src.tar.gz




Gruß
Stephan
Antworten