Seite 1 von 1
Mit Datediff das Lebensalter berechnen
Verfasst: Mi, 06.01.2016 11:23
von Helmut M.
Hallo,
ich habe aus Excel eine Datei in OOcalc importiert. Nun wird mir das berechnete Alter nicht mehr angezeigt.
Die Excelformel lautet:
=WENN(E1="";"";datedif(E1;$G$1;"Y"))
wobei in E1 das Geburtsdatum und in G1 ein Wahldatum stehen.
Funktionieren könnte
=(JAHRE(E1;DATWERT("2016.12.31");1))
wobei ich nicht das absolute Datum sondern den Zellenbezug benötige.
Wäre schön wenn mir jemand helfen könnte.
Vielen Dank!!
Re: Mit Datediff das Lebensalter berechnen
Verfasst: Mi, 06.01.2016 11:51
von nikki
Hallo,
steht eigentlich in der Programmhilfe:
JAHRE
Bestimmt die Jahresdifferenz zweier Daten.
Syntax
JAHRE(Anfangsdatum; Enddatum; Typ)
Anfangsdatum ist das erste Datum
Enddatum ist das zweite Datum
Typ berechnet den Differenztyp. Mögliche Werte sind 0 (Intervall) und 1 (in Kalenderjahren).
Beispiele:
Liefert das korrekte Datum zum Zeitpunkt des Enddatum.
Re: Mit Datediff das Lebensalter berechnen
Verfasst: Mi, 06.01.2016 12:32
von Stephan
hier ist eine, von mir geschriebene, benutzerdefinierte Funktion die DATEDIF() von MS Excel in OO Calc ersetzt:
Code: Alles auswählen
Function Datedif(Anfangsdatum, Enddatum, par)
If VarType(Anfangsdatum) = 8 Then 'String
Anfangdatum = DateValue(Anfangsdatum)
End If
If VarType(Enddatum) = 8 Then
Enddatum = DateValue(Enddatum)
End If
startdatum_jahr = YEAR(Anfangsdatum)
startdatum_monat = Month(Anfangsdatum)
startdatum_tag = Day(Anfangsdatum)
enddatum_tag = Day(Enddatum)
enddatum_monat = Month(Enddatum)
Select Case par
Case "D", "d"
Datedif = DateDiff("d", Anfangsdatum, Enddatum)
Case "Y", "y"
Datedif = DateDiff("yyyy", Anfangsdatum, Enddatum) - 1
Case "M", "m"
Datedif = DateDiff("m", Anfangsdatum, Enddatum) - 1
Case "YD", "yd"
'Jahre ignorieren:
tmp = enddatum_tag & "." & enddatum_monat & "." & startdatum_jahr
tmp2 = enddatum_tag & "." & enddatum_monat & "." & (startdatum_jahr + 1)
'relative Datumslage vergleichen
If DateDiff("d", Anfangsdatum, DateValue(tmp)) < 0 Then
Datedif = DateDiff("d", Anfangsdatum, DateValue(tmp2))
Else
Datedif = DateDiff("d", Anfangsdatum, DateValue(tmp))
End If
Case "MD", "md"
tmp = enddatum_tag & "." & startdatum_monat & "." & startdatum_jahr
tmp2 = enddatum_tag & "." & (startdatum_monat + 1) & "." & startdatum_jahr
If DateDiff("d", Anfangsdatum, DateValue(tmp)) < 0 Then
Datedif = DateDiff("d", Anfangsdatum, DateValue(tmp2)) + 1
Else
Datedif = DateDiff("d", Anfangsdatum, DateValue(tmp))
End If
Case "YM", "ym"
Datedif = (DateDiff("m", Anfangsdatum, Enddatum) - 1) - 12*(DateDiff("yyyy", Anfangsdatum, Enddatum) - 1)
Case Else
Datedif = "Falscher Parameter"
End Select
End Function
Gruß
Stephan
Re: Mit Datediff das Lebensalter berechnen
Verfasst: Mi, 06.01.2016 14:28
von Helmut M.
Vielen Dank Euch beiden für die Lösungen.
Ich habe mich für die einfachere Variante von Nikki entschieden. Funktioniert topp.
Viele Grüße
Helmut