Es soll die Differenz von 2 Datumswerten in Jahren, Monaten und Tagen ausgegeben werden.
Dies geht mit der in der Online-Hilfe undokumentierten Funktion DATEDIF
Lösung
in A1 steht das Ausgangsdatum; - in A2 das Enddatum.
Bis auf Teil-Tage (Parameter "MD") kann man hierfür die undokumentierte Funktion DATEDIF verwenden.
Differenz in Tagen: =DATEDIF(A$1;A$2;"D")
Differenz in Monaten: =DATEDIF(A$1;A$2;"M")
Differenz in Jahren: =DATEDIF(A$1;A$2;"Y")
Differenz in Tagen im selben Jahr: =DATEDIF(A$1;A$2;"YD")
Differenz in Monaten im selben Jahr: =DATEDIF(A$1;A$2;"YM")
Differenz in Tagen im selben Jahr/Monat: =DATEDIF(A$1;A$2;"MD")
Die letzte Formel rechnet oft falsch, da ein Monat immer mit 31 Tagen angesetzt wird.
stattdessen:
=TAG(A2)-TAG(A1)+(TAG(A1)>TAG(A2))*TAG(DATUM(JAHR(A1);MONAT(A1)+1;))
Definitionsfrage: was ist ein kompletter Monat? (13.07.2013)
Bei 05.06.2013 bis 23.07.2013 sagt DATEDIF(A1;A2;"M") eins. Das ist weder ein ganzer Juni noch ein ganzer Juli - also null. Andererseits ist bei DATEDIF der 01.07.2013 bis 31.07.2013 null. Bei Beginndatum (morning) bis Endedatum (evening) wäre das eins. Dann:
=MAX(0;DATEDIF(A1;A2;"M")-(TAG(A2)>=TAG(A1))+(MONAT(A1)<>MONAT(A1-1))+(MONAT(A2)<>MONAT(A2+1)))
ohne DATEDIF (Josef B):
=MAX(0;(JAHR(A2+1)-JAHR(A1-1))*12+MONAT(A2+1)-MONAT(A1-1)-1)
Auf Anregung von Hajo Jahre+Monate+Tage zusammengefaßt - für's aktuelle Alter:
Geburtsdatum in A1 / in A2 =HEUTE()
="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;))&" Tag"&WENN(TAG(A2)-TAG(A1)+(TAG(A1)>TAG(A2))*TAG(DATUM(JAHR(A1);MONAT(A1)+1;))<>1;"e";"")