Das grosse Archiv mit 582
VBA-freien Formellösungen und Tips
 
   
 
 ÜBER UNS   FORMELN   TIPS   LINKS   KONTAKT   NEWS   GäSTEBUCH   FORUM 
   
Übersicht   Sparbuch   Zauberbuch   Downloads der Bücher   Rätselbuch  
 
Datum/Zeit (1) ->

Ermittlung von Datumsdifferenzen mit DATEDIF (141)
 
 
Aufgabe
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

       A               B               C       
1 09.06.72  Parameter  Differenz  
2 24.12.01  "D"  10790  
3   "M"  354  
4   "Y"  29  
5   "YD"  198  
6   "YM"  6  
7   "MD"  15  
8 Alter: 29 Jahre 6 Monate 15 Tage 

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;))
Ab Excel 2003 soll anscheinend richtig gerechnet werden - ungeprüft.

Auf Anregung von Hajo Jahre+Monate+Tage zusammengefaßt (für's aktuelle Alter: statt 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";"")
Erläuterung
Absolut nichts Besonderes aber es nervt!
Bei DATEDIF muß das frühere Datum zuerst eingegeben werden; - vergesse ich oft/immer und dann gibt's ne Fehlermeldung - WF.
=DATEDIF(MIN(A1;A2);MAX(A1;A2);"y")
dann ist's logischerweise egal.



 
    zurück


 
powered by telltarget