Fehler in der Funktion DATUM beheben und EDATUM-Ersatz * (6)
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)
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)))