Microsoft Excel

Das Portal zum Thema Excel-Formeln

Gruppe: Datum/Zeit - BEITRAG: Fehler in der Funktion DATUM beheben und EDATUM-Ersatz *


Aufgabe
Die Funktion Datum () + X Monate liefert ausgehend von einem Monatsletzten falsche Ergebnisse
=DATUM(JAHR(A1);MONAT(A1)+2;TAG(A1)) bzw. =EDATUM(A2;2)
ergibt

       A               B               C               D       
1 31.12.2000  + 2 Monate  03.03.2001  statt 28.02.2001  
2 28.02.2001  + 2 Monate  28.04.2001  statt 30.04.2001 

Die folgende Lösung behebt den Fehler, der durch ungleich lange Monate im Monatsendbereich entsteht.

Lösung
das Datum steht in A1
die zu addierenden Jahre in A2
die zu addierenden Monate in A3
(negative Werte funktionieren auch)

=WENN(ODER(TAG(A1+1)=1;TAG(DATUM(JAHR(A1)+A2;MONAT(A1)+A3;TAG(A1))) < TAG(A1));DATUM(JAHR(A1)+A2;MONAT(A1)+A3+1;);DATUM(JAHR(A1)+A2;MONAT(A1)+A3;TAG(A1)))

Verkürzung von Peter Dorigo:
=DATUM(JAHR(A1)+A2;MONAT(A1)+A3+(TAG(A1+1)=1);(TAG(A1+1) <> 1)*MIN(TAG(A1);TAG(DATUM(JAHR(A1)+A2;1+MONAT(A1)+A3;))))

nochmals verkürzt von ???:
=MIN(DATUM(JAHR(A1)+A2;MONAT(A1)+A3+(TAG(A1+1)=1)+{1;0};TAG(A1)*{0;1}*(TAG(A1+1)>1)))




Erläuterung
Diese Formel ersetzt auch die Add-In-Funktion EDATUM.

Soll EDATUM exakt nachgebildet werden (28.02.2003 + 1 Monat = 28.03.2003 statt 31.03.) dann:
=DATUM(JAHR(A1)+A2;MONAT(A1)+A3;MIN(TAG(A1);TAG(DATUM(JAHR(A1)+A2;1+MONAT(A1)+A3;))))
oder
=MIN(DATUM(JAHR(A1)+A2;MONAT(A1)+A3+1;);DATUM(JAHR(A1)+A2;MONAT(A1)+A3;TAG(A1)))
zusammengefaßt von Franz Pölt:
=MIN(DATUM(JAHR(A1)+A2;MONAT(A1)+A3+{0;1};{1;0}*TAG(A1)))