Datedif in OO Calc benutzen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Cunew. Musik
Beiträge: 7
Registriert: Mi, 31.01.2018 14:10

Datedif in OO Calc benutzen

Beitrag von Cunew. Musik » Mi, 31.01.2018 16:58

Hallo zusammen! Ich bin neu hier und leider gleich zu Beginn in ein Fettnäpfchen getreten. Ich habe einen alten Thread verlängert. Deshalb mache ich es jetzt hoffentlich richtig und schreibe hier weiter.

Unter http://oooforum.de/viewtopic.php?f=2&t= ... 05#p273572 fand ich eine Möglichkeit die unter Excel benutzte Formel mit der Datedif-Funktion auch für OO Calc nutzen zu können. Leider bringt mir die bereits auf jener Seite von Stephan gelieferte Antwort einen Script-Fehler und die auf jener Seite hinterlegte Beispeildatei http://oooforum.de/download/file.php?id ... e24746ac05 nur den Wert #WERT! ein.
Meine Musikkameraden benutzen zum Teil Openoffice. Und da wollte ich versuchen ob ich das hinbekomme. Es ist Spielerei bitte nicht gleich meckern. Falls das so nicht funktioniert oder erheblich mit Arbeit verbunden ist, können wir das auch lassen. Interessiert hätte mich es jedoch sehr! Ich habe euch meine Beispieldatei angehängt. In Spalte H ist die unter Excel vewendeten Formel.

Vielen Dank für die Bemühungen.
Dateianhänge
Beispiel.ods
(19.27 KiB) 15-mal heruntergeladen

Benutzeravatar
lorbass
********
Beiträge: 4059
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Datedif in OO Calc benutzen

Beitrag von lorbass » Mi, 31.01.2018 17:57

Cunew. Musik hat geschrieben:
Mi, 31.01.2018 16:58
die auf jener Seite hinterlegte Beispeildatei […] nur den Wert #WERT! ein.
Bei mir ergibt die Funktion DATUMDIF() in Stephans datedif-beispiel.ods den Wert 6605, in deiner Beispiel.ods den Wert 60 Jahre, 11 Monate, 25 Tage, 17 Stunden, 12 Minuten und 32 Sekunden. Der Fehlerwert #WERT! taucht hier nicht auf. Änderungen habe ich nicht vorgenommen.

Ich habe keine Idee, warum du Fehlermeldungen erhältst. Experimentiere vielleicht mal mit der Formatierung der Zellen. Oder untersuche die Funktion mit dem Funktions-Assistenten (Menüwal Einfügen → Funktion oder Kurzwahl Strg+K oder Button f(x)).

Übrigens: Sekunden, Minuten und i.d.R. auch noch Stunden in Altersangaben wie in deinem Beispiel finde ich irgendwie fehl am Platze.

Gruß
lorbass

Mondblatt24
****
Beiträge: 169
Registriert: So, 14.05.2017 16:11

Re: Datedif in OO Calc benutzen

Beitrag von Mondblatt24 » Mi, 31.01.2018 18:52

Hallo,
Datedif-Funktion auch für OO Calc nutzen zu können
das Problem, die Funktion Datumdif() gibt es in Open Office Calc nicht.

Gruß Peter.
Win.10 x64__ LO 5.4.5; LO 6.0.1; AOO Portable 4.1.5
Fragen, die zur Zufriedenheit beantwortet wurden, können im Betreff des Eröffnungspost mit dem Zusatz [GELÖST] versehen werden.

Stephan
********
Beiträge: 10280
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Datedif in OO Calc benutzen

Beitrag von Stephan » Mi, 31.01.2018 20:11

Leider bringt mir die bereits auf jener Seite von Stephan gelieferte Antwort einen Script-Fehler
Unter welchen Umständen, d.h. was tuar Du das dieser Fehler resultiert?
und die auf jener Seite hinterlegte Beispeildatei http://oooforum.de/download/file.php?id ... e24746ac05 nur den Wert #WERT! ein.
mutmaßlich weil die Makroausführung nicht aktiviert ist.
Aktiviere Extras-Einstellungen-OpenOffice-Sicherheit-Makrosicherheit und dort die Option "mittel" oder "niedrig". Bei "mittel" musst Du dann noch jedesmal bei Öffnen der Datei die Makroausführung im erscheinenden Dialog explizit bestätigen.

DEine Hier angehängte Datei funktioniert im Übrigen nicht weil sie die benutzerdefinierte Funktion nicht enthält, obwohl ich im anderen Thread ja bereits erklärt hatte wo diese hingehört.

Der Fehler ERR:511 resultiert dem ersten Anschein nach durch die falsche Verwendung der Funktion DAtum in der der Parameter ür den Tag fehlt.

Beispielsweise funktioniert der erste TEil der Funktion einwandfrei:

=DATEDIF(D5;JETZT();"y")&" Jahr"&WENN(DATEDIF(D5;JETZT();"y")<>1;"e";"")&", "&DATEDIF(D5;JETZT();"ym")& " Monat"&WENN(DATEDIF(D5;JETZT();"ym")<>1;"e";"")&", "&TAG(JETZT())-(TAG(D5)+WENN(REST(1-D5;1)<REST(1-JETZT();1);1;0))



Gruß
Stephan
Dateianhänge
Beispiel-mit-Funktion.ods
(20.39 KiB) 17-mal heruntergeladen

Cunew. Musik
Beiträge: 7
Registriert: Mi, 31.01.2018 14:10

Re: Datedif in OO Calc benutzen

Beitrag von Cunew. Musik » Do, 01.02.2018 15:33

Erst mal vielen Dank für die Bemühungen.

zuerst einmal zur Antwort von lorbass. Wie schon in meiner Frage beschrieben. Es ist eine Spielerei. Das Ganze ist ein Countdown. Und genau wie du beschrieben hast sollte das aussehen.
Hast du eine andere Ausgabe von Open Office? Und das meine ich nicht irgendwie zweideutig, dazu habe ich viel zu wenig Ahnung. Und helfenden irgendwie komisch kommen geht auch nicht.
Aber bei mir ist die Kurzwahl STRG+K ohne Reaktion. STRG +F2 ist die Kurzwahl bei mir.

Nun zur Antwort von Stephan:

Genauso ist es jetzt bei mir auch. Der erste Teil der Formel funktioniert. Und was heißt nun bitte "die falsche Verwendung der Funktion DAtum in der der Parameter ür den Tag fehlt"?
Kann ich das irgendwie ändern?

Stephan
********
Beiträge: 10280
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Datedif in OO Calc benutzen

Beitrag von Stephan » Do, 01.02.2018 15:51

Und was heißt nun bitte "die falsche Verwendung der Funktion DAtum in der der Parameter ür den Tag fehlt"?
Kann ich das irgendwie ändern?
Es heißt das die Funktion DATUM() 3 Parameter (Jahr, Monat, Tag) benötiget und Du nur zwei hingeschrieben hast. Ergänze also den dritten Parameter und es wird laufen.


Gruß
Stephan

Cunew. Musik
Beiträge: 7
Registriert: Mi, 31.01.2018 14:10

Re: Datedif in OO Calc benutzen

Beitrag von Cunew. Musik » Do, 01.02.2018 18:28

Danke für die Antwort. Nur habe ich dabei das Problem, dass ich das nicht kann. Da die in Excel verwendete Formel ebenfall aus dem Forum stammt. Ich habe schon gesucht, ich sitzte ja nun schon wieder ne Weile. Aber ich bekomm es nicht hin. Bedeutet das sehr viel Arbeit, wenn ich dich darum bitten würde?

Stephan
********
Beiträge: 10280
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Datedif in OO Calc benutzen

Beitrag von Stephan » Do, 01.02.2018 19:12

Wenn es (für mich) einfach wäre hätte ich es gestern bereits getan. Ich habe jetzt eben wieder längere Zeit probiert und kann nur sagen das ich mit der Formel in H5:

=DATEDIF(D5;JETZT();"y")&" Jahr"&WENN(DATEDIF(D5;JETZT();"y")<>1;"e";"")&", "&DATEDIF(D5;JETZT();"ym")& " Monat"&WENN(DATEDIF(D5;JETZT();"ym")<>1;"e";"")&", "&TAG(JETZT())-(TAG(D5)+WENN(REST(1-D5;1)<REST(1-JETZT();1);1;0))+(TAG(D5)>TAG(JETZT()))*TAG(DATUM(JAHR(D5);MONAT(D5)+1;TAG(D5)))&" Tag"&WENN(TAG(JETZT())-TAG(D5)+(TAG(D5)>TAG(JETZT()))*TAG(DATUM(JAHR(D5);MONAT(D5)+1;TAG(D5)))<>1;"e";"")&", "&(TEXT(JETZT()-D5;"hh"))&" Stunden, "&TEXT(JETZT()-D5;"mm")&" Minuten und "&TEXT(JETZT()-D5;"ss")&" Sekunden"

zwar die vollständige Anzeige bekomme:

60 Jahre, 11 Monate, 0 Tag, 19 Stunden, 12 Minuten und 47 Sekunden

diese aber wohl nicht stimmt, weil MS Excel mit der Originalformel mir sagt:

60 Jahre, 11 Monate, 23 Tage, 19 Stunden, 04 Minuten und 43 Sekunden



Vielleicht kann jemand anderes helfen?


Gruß
Stephan

t20r51
*
Beiträge: 13
Registriert: Do, 18.02.2010 10:22

Re: Datedif in OO Calc benutzen

Beitrag von t20r51 » Do, 01.02.2018 20:53

Moin Stephan,

Deine Formel etwas abgewandelt funktioniert:

DATUMDIF(D5;JETZT();"y")&" Jahr"&WENN(DATUMDIF(D5;JETZT();"y")<>1;"e";"")&", "&DATUMDIF(D5;JETZT();"ym")& " Monat"&WENN(DATUMDIF(D5;JETZT();"ym")<>1;"e";"")&", "&DATUMDIF(D5;JETZT();"yd")&" Tage, "&(TEXT(JETZT()-D5;"hh"))&" Stunden, "&TEXT(JETZT()-D5;"mm")&" Minuten und "&TEXT(JETZT()-D5;"ss")&" Sekunden"

Gruß

Michael

t20r51
*
Beiträge: 13
Registriert: Do, 18.02.2010 10:22

Re: Datedif in OO Calc benutzen

Beitrag von t20r51 » Do, 01.02.2018 21:00

Moin,

falls jemand Wert auf die Worte "Tage" oder "Tag" legt.

DATUMDIF(D5;JETZT();"y")&" Jahr"&WENN(DATUMDIF(D5;JETZT();"y")<>1;"e";"")&", "&DATUMDIF(D5;JETZT();"ym")& " Monat"&WENN(DATUMDIF(D5;JETZT();"ym")<>1;"e";"")&", "&WENN(DATUMDIF(D5;JETZT();"yd")>1;DATUMDIF(D5;JETZT();"yd")&" Tage, ";DATUMDIF(D5;JETZT();"yd")&" Tag, ")&(TEXT(JETZT()-D5;"hh"))&" Stunden, "&TEXT(JETZT()-D5;"mm")&" Minuten und "&TEXT(JETZT()-D5;"ss")&" Sekunden"

Mfg

Michael

Stephan
********
Beiträge: 10280
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Datedif in OO Calc benutzen

Beitrag von Stephan » Do, 01.02.2018 21:17

Danke, aber leider stimmt das Ergebnis nicht, denn für den 05.02.1957 erhalte ich:

60 Jahre, 11 Monate, 361 Tage, 21 Stunden, 12 Minuten und 38 Sekunden

und hierin ist falsch das dort noch 361 Tage stehen (die müssen in Monate umgerechnet sein) und auch stimmt die reine Summe von Tagen+Monaten+Jahren nicht, denn die Differenz von heute und dem 05.02.1957 sind 22276 Tage, was nicht 60*360 + 11*30 + 361 entspricht.


Gruß
Stephan

t20r51
*
Beiträge: 13
Registriert: Do, 18.02.2010 10:22

Re: Datedif in OO Calc benutzen

Beitrag von t20r51 » Do, 01.02.2018 21:30

Moin Stephan,

dumm, das stimmt.... ich hatte das mit dem 6.1.1963 getestet.

mfg

Michael

Cunew. Musik
Beiträge: 7
Registriert: Mi, 31.01.2018 14:10

Re: Datedif in OO Calc benutzen

Beitrag von Cunew. Musik » Fr, 02.02.2018 18:10

Nun habt ihr euch alle für mich den Kopf zerbrochen und nichts stimmt. Wohl auch meine Ausgangsformel nicht. Nach anderen Rechnern fehlen in dieser Ausgangsformel 5 Tage. Es wird das Beste sein ich haue das Ding auf den Acker. Falls nicht doch noch jemand eine Idee hat möchte ich mich bei euch für eure Bemühungen bedanken.

Gruß
Cunew. Musik

Stephan
********
Beiträge: 10280
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Datedif in OO Calc benutzen

Beitrag von Stephan » Sa, 03.02.2018 10:57

Es wird das Beste sein ich haue das Ding auf den Acker. Falls nicht doch noch jemand eine Idee hat möchte ich mich bei euch für eure Bemühungen bedanken.
Das Ganze ist doch reine Fleissarbeit.

Nehmen wir an das Geburtstagsdatum stünde in A1 und in A2 stünde =JETZT() und wir wollten gleich ohne DATEDIF() auskommen.

Die Jahre sind dann (in C1 eingetragen):

=JAHRE(A1;A2;0)

daraus nun das Datum ermitteln, welches diese Anzahl von Jahren hinter dem Geburtstagsdatum liegt (in C3 eingetragen):

=DATUM(JAHR(A1)+C1;MONAT(A1);TAG(A1))

daraus nun die Monate (in C5 eingetragen):

=MONATE(C3;A2;0)

jetzt wieder ein 'Zwischendatum' berechnen (in C7 eingetragen):

=DATUM(JAHR(C3);MONAT(C3)+C5;TAG(C3))

nun die Tage (in C9 eingetragen):

=GANZZAHL(TAGE(A2;C7))

nun den REst-Bruchteil der Tage (in C11 eingetragen):

=TAGE(A2;C7)-C9

daraus die Stunden ermitteln (in C13):

=C11/(1/24)

und die Anzahl an ganzen Stunden abtrennen (in C15):

=GANZZAHL(C13)

den Bruchteilsrest der Stunden bestimmen (in C17):

=C13-C15

das in Minuten umrechnen (in C19):

=C17*60

davon ganze Minuten abtrennen (in C21):

=GANZZAHL(C19)

die Bruchteilsminuten bestimmen (in C23):

=C19-GANZZAHL(C19)

das in SEkunden umrechnen (in C25):

=C23*60

die Ganzzahl der SEkunden ausrechnen (in C27):

=GANZZAHL(C25)


fertig.

Jetzt, ebenfalls stufenweise, den Text zusammenbauen:

in E1: =C1&" Jahre, "
in E5: =E1&C5&" Monate, "
in E9: =E5&C9&" Tage, "
in E15: =E9&C15&" Stunden, "
in E21: =E15&C21&" Minuten, "
in E27: =E21&C27&" Sekunden"


Und nun musst Du nur noch, beginnend von E27, immer in den Formeln für die Zellangaben die Formeln aus den bestreffenden Zellen einsetzen bius nur noch A1 und A2 dastehen. In E27 müssen also zunächst E21 und C27 durch die dortigen Formeln ersetzt werden, das gibt:

=(E15&C21&" Minuten, ")&(GANZZAHL(C25))&" Sekunden"

nun sind hierrin zu ersetzen E15, C21, C25, das ergibt:

=((E9&C15&" Stunden, ")&(GANZZAHL(C19))&" Minuten, ")&(GANZZAHL(C23*60))&" Sekunden"

nun sind hierrin zu ersetzen E9, C15, C19, C23:

...

und immer so weiter bis eine lange Formel resultiert die nur noch A1 und A2 enthält.

Abschliessend kann A2 noch durch JETZT() ersetzt werden und mittels WENN()-Funktion die Untersxcheidung zwischen "Monat"/"Monate" ... eingebaut werden.


Das ist Einiges an Fleißarbeit, aber nichts was viel DEnken erfordert.


Gruß
Stephan
Dateianhänge
Herleitung.ods
(10.53 KiB) 9-mal heruntergeladen

mikeleb
******
Beiträge: 648
Registriert: Fr, 09.12.2011 16:50

Re: Datedif in OO Calc benutzen

Beitrag von mikeleb » So, 04.02.2018 19:54

Hallo,
als Spielerei und Ergänzung: Für die Bruchteile eines Tages könnte man auch folgende Zahlenformatierung verwenden:

Code: Alles auswählen

HH " Stunden "MM" Minuten "SS" Sekunden"
Gruß,
mikeleb

Antworten