Zeitraum in jeweils ganze Einheiten ausgeben /OpOf

Hallo!

habe inzwischen vieles zu Zeitraum umrechnen in Jahre ODER Monate ODER Tage gefunden…
was ich aber suche ist einen bestimmten Zeitraum, z.B.
von 11.07.07 bis 12.10.08 in ganzen Jahre, den Rest dann in ganzen Monate, den Rest falls größer gleich 7 in ganzen Wochen und den Rest falls vorhanden dann in ganze Tage umrechnen.

Und das dann in Open Office (v2.4.1).

Also bei 11.07.07 - 12.10.08 müsste als Ergebnis dieses erscheinen:

1 Jahr, 3 Monate und 2 Tage

Gruß
tikko

Hallo tikko!

Für Excel hätte ich DATEDIF anzubieten oder die Formel auf http://www.excelformeln.de/formeln.html?welcher=141 In OO müsste es ähnlich gehen, hab ich aber nicht zur Hand.

Gruß Alex

Hallo Alex!
Danke für deinen Tipp, aber leider unterstützt OO diese Formel nicht weder DATEDIF noch DATEDIFF wie manch anderer im Netz behauptet hat.

Ich habe was dieses gefunden:
Formel:
=JAHRE(A1;A2;0)&" Jahr(e) „&A2-DATUM(JAHR(A1)+JAHRE(A1;A2;0);MONAT(A1);TAG(A1))&“ Tag(e)"
Ergebnis:
1 Jahr(e) 93Tag(e)

warum funktioniert hier die Ausgabe der Monate nicht? Hmm…

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Danke für deinen Tipp, aber leider unterstützt OO diese Formel
nicht weder DATEDIF noch DATEDIFF wie manch anderer im Netz
behauptet hat.

Hi Tikko,

ich weiß nicht wer was genau behauptet hat, aber natürlich kennt OO die Makrofunktion Datediff, ich benutze sie ja grad in OO 2.4

Damit kann man sich die benutzerdefinierte Funktion Datedif selbst schreiben.

A1: 11.07.07
B1: 12.10.08

Leider ergibt dann in OO die Funktion

=Datedif(„ym“;A1;B1) 0

während das in Excel korrekt mit der Funktion

=Datedif(A1;B1;„ym“) 3

ergibt.

An sowas hänge ich noch fest.

Gruß
Reinhard

Leider ergibt dann in OO die Funktion

=Datedif(„ym“;A1;B1)
0

Hi Reinhard,
also wenn ich diese Formel einfüge, kommt es zum Fehler (Ungültiger Name)
Ich finde bei meiner OO Version überhaupt gar keine Hilfe zu Datedif.

Leider ergibt dann in OO die Funktion
=Datedif(„ym“;A1;B1) 0

also wenn ich diese Formel einfüge, kommt es zum Fehler
(Ungültiger Name)
Ich finde bei meiner OO Version überhaupt gar keine Hilfe zu
Datedif.

Hi Tikko,

ja, weil es die Funktion Datedif nicht gibt.

Gehe mal in OO auf Extras–Makros–Makros verwalten–Makro.
Im Fensterchen müßtest du links den Namen deiner OO-Datei sehen, ggfs. mit einem Pluszeichen davor, klick mal auf das Plus, dann müßte links „sTandard“ erscheinen, dann klicke rechts auf „Neu“.

In dem Modulfenster gibst du dann ein:

function Datedif(Zeitintervall,Ausgangsdatum,Enddatum)
Dim nutzer as Object
Dim reg_daten as Object
Dim profil(0) as new com.sun.star.beans.PropertyValue
nutzer = createUnoService(„com.sun.star.configuration.ConfigurationProvider“)
profil(0).Name = „nodepath“
profil(0).Value = „org.openoffice.UserProfile/Data“
reg_daten = nutzer.createInstanceWithArguments(„com.sun.star.configuration.ConfigurationAccess“, profil())
Datedif=datediff(Zeitintervall,Ausgangsdatum,Enddatum)
end function

Mit F1 kommst du in die Hilfe zu VB, dort such nach „datediff“ und du siehst die Hilfe zu „Datediff“. Der parameter „ym“ ist nicht aufgeführt.

Den Editor kannste dann schließen. In OO kannst du jezt diesen befehl benutzen:

=Datedif(„yyyy“;A1;B1)

Jetzt kommt http://excelformeln.de/formeln.html?welcher=141 ins Spiel, da gibts die u.a. nette Formel:

=„Alter: „&DATEDIF(A1;A2;„y“)&“ Jahr“&WENN(DATEDIF(A1;A2;„y“)
1;„e“;"")&", „&DATEDIF(A1;A2;„ym“)& "
Monat“&WENN(DATEDIF(A1;A2;„ym“)1;„e“;"")&", „&TAG(A2)-TAG(A1)+
(TAG(A1)>TAG(A2))*TAG(DATUM(JAHR(A1);MONAT(A1)+1:wink:)&“
Tag"&WENN(TAG(A2)-TAG(A1)+
(TAG(A1)>TAG(A2))*TAG(DATUM(JAHR(A1);MONAT(A1)+1:wink:)1;„e“;"")

wobei die für Excel gilt, d.h.
DATEDIF(A1;A2;„ym“) muß gewechselt werden in
DATEDIF("ym;A1;A2)

und
TAG(DATUM(JAHR(A1);MONAT(A1)+1:wink:) in
MONATSENDE(DATUM(JAHR(A1);MONAT(A1)+1;1);0)

dann bist du so weit wie ich und rätselst rum warum
DATEDIF("ym;A1;A2)
die 0 ergibt im Unterschied zu Excel.

Leider kenne ich kein OO-Forum wo man sowas nachfragen könnte.

Gruß
Reinhard

Datedif in Open Office
Hi Tikko,

sorry, falsche Funktion, nimm diese:

function Datedif(Zeitintervall,Ausgangsdatum,Enddatum)
Datedif=datediff(Zeitintervall,Ausgangsdatum,Enddatum)
end function

Gruß
Reinhard

Danke Reinhard für die ausführliche Beschreibung!

Werde das später durchgehen und ausprobieren. Melde mich morgen.
Wenn Du die Lsg findest, melde dich :smile:
Danke nochmal!

Gruß
tikko

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]