Wie ist es möglich die exakte Anzahl von Jahren zwischen 2
Datumsangaben zu errechnen?
Eine Datumsangabe entspricht eine Zahl.
Tag 1 ist der 01.01.1900. Ab da an wird jeder Tag
durchgezählt, somit entspricht der 01.02.1900 der 32. Tag, daher ist der Wert
von diesem Datum der Wert 32.
Die Berechnung 12.02.2014 - 16.08.1974 ergibt den Wert 14425
Warum? Weil tatsächlich folgendes berechnet wird:
41682 - 27257 = 14425
Was bedeutet nun der Wert 14425?
Es handelt sich um die Anzahl der Tage die zwischen den 2
Datumsangaben liegen.
Und wie viel Jahre liegen nun dazwischen?
Eine Möglichkeit ist, den Wert durch die Anzahl der Tag im
Jahr zu teilen, also:
14425 / 365 = 39,52
Unsere Person mit Geburtsdatum 16.08.1974 ist also am
12.02.2014 ca. 39 und halb Jahre alt. Am 01.09.2014 ist die Person 40 Jahre
alt, bzw. über 40 Jahre alt.
Leider ist die Teilung durch 365 etwas ungenau, da nicht jedes
Jahr 365 Tage hat.
Eine häufig angewandte Lösung ist das subtrahieren der Jahreswerte:
Jahr(01.09.2014) - Jahr(16.08.1974) = 40
Am 01.09.2014 ist die Person also 40 Jahre alt.
Die gleiche Berechnung vor dem 16.08.1974 ergibt auch 40:
Jahr(01.05.2014) - Jahr(16.08.1974) = 40
Jedoch ist die Person am 01.05.2014 nicht 40, sondern 39 Jahre alt.
Manche Menschen sind dann sehr beleidigt ;-)
Also das subtrahieren der Jahreswerte errechnet nicht das
tatsächliche Alter in Jahren, sondern das Alter welches die Person
in einem gewissen Jahr wird oder bereits geworden ist.
Um das exakte Alter in Jahren auszurechnen, müssten wir ggf.
den Wert 1 von unserer Berechnung abziehen, sollte der Geburtstagstag der
Person im aktuellen noch nicht erreicht sein. Dies könnte wiederum mit einer Wenn-Funktion realisiert
werden.
Aber warum kompliziert, wenn es doch einfach und effizient
geht:
Jahr(12.02.2014 - 16.08.1974)-1900 = 39
Jahr(01.09.2014 - 16.08.1974)-1900 = 40
Dieser Rechnenweg ist allgemein gültig und kann somit sowohl
in Excel, Access, Word usw. eingesetzt werden.
Alter in Jahren in einer Access-Abfrage berechnen:
SELECT Year(Date-[GebDatum])-1900 AS [AlterExakt] FROM ...
Dabei ist zu beachten, das das Feld [GebDatum] ein Datumsfeld ist und das Geburtsdatum der Person enthält.
Alter in Jahren mit Excel berechnen:
=Jahr(Heute()-A1)-1900
Dabei ist zu beachten, das in Zelle A1 das Geburtsdatum steht und die Formel-Zelle mit dem Zahlenformat "Standard" (bzw. kein Datumsformat) formatiert ist.
Übrigens, in Excel findet man oft die Lösung mit der Funktion DATEDIF
DATEDIF(16.08.1974;12.02.2014;"y") liefert
tatsächlich 39 und DATEDIF(16.08.1974;01.09.2014;"y") den Wert 40.
Es funktioniert, der Hacken an dieser Funktion ist, das sie undokumentiert
ist und somit ist nicht sichergestellt ob diese auch noch in zukünftigen
Excel-Version noch existiert.
Also warum auf eine „unsicher“ Funktion zurückgreifen, wenn
es dafür einen einfachen Lösungsweg gibt?!