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!!
Mit Datediff das Lebensalter berechnen
Moderator: Moderatoren
Re: Mit Datediff das Lebensalter berechnen
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.
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:
Code: Alles auswählen
=(JAHRE(A1;$G$1;0))
Gruß
---------------------------------------------------------
Win.10 Prof. 64-bit, AOO 4.1.7, LO 6.3.4 (x64)
---------------------------------------------------------
Win.10 Prof. 64-bit, AOO 4.1.7, LO 6.3.4 (x64)
Re: Mit Datediff das Lebensalter berechnen
hier ist eine, von mir geschriebene, benutzerdefinierte Funktion die DATEDIF() von MS Excel in OO Calc ersetzt:
Gruß
Stephan
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
Stephan
Re: Mit Datediff das Lebensalter berechnen
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
Ich habe mich für die einfachere Variante von Nikki entschieden. Funktioniert topp.
Viele Grüße
Helmut