Am 28.02.2019 um 17:54 schrieb Ruediger Lahl:
> Gegeben sind zwei verschiedene Datums * meinetwegen in A1 [20.07.17] und
> in A2 [27.08.18]
>
> In A3 soll nun die Differenz errechnet werden und in Jahre Monate und
> Tage angezeigt werden. Wäre in dem Fall [1Jahr, 1Monat, 7Tage].
So scheints zu gehen:
=TEXTVERKETTEN(",
";WAHR;WENN(DATEDIF(A1;A2;"y");DATEDIF(A1;A2;"y")&WENN(DATEDIF(A1;A2;"y")=1;"
Jahr";"
Jahre");"");WENN(DATEDIF(A1;A2;"ym");DATEDIF(A1;A2;"ym")&WENN(DATEDIF(A1;A2;"ym")=1;"
Monat";"
Monate");"");WENN(WENN(TAG(A2)>=TAG(A1);TAG(A2)-TAG(A1);A2-MIN(DATUM(JAHR(A1)+DATEDIF(A1;A2;"y");MONAT(A1)+DATEDIF(A1;A2;"ym");TAG(A1));A2-TAG(A2)));WENN(TAG(A2)>=TAG(A1);TAG(A2)-TAG(A1);A2-MIN(DATUM(JAHR(A1)+DATEDIF(A1;A2;"y");MONAT(A1)+DATEDIF(A1;A2;"ym");TAG(A1));A2-TAG(A2)))&WENN(WENN(TAG(A2)>=TAG(A1);TAG(A2)-TAG(A1);A2-MIN(DATUM(JAHR(A1)+DATEDIF(A1;A2;"y");MONAT(A1)+DATEDIF(A1;A2;"ym");TAG(A1));A2-TAG(A2)))=1;"
Tag";" Tage");""))
> Die Lösung muss Excel 2010-tauglich sein und möglichst ohne VB auskommen.
Ich habe mit "Excel für Office 365" getestet. Einzelschritte sind:
v =A1 # Startdatum "von"
b =A2 # Enddatum "bis"
dj =DATEDIF(v;b;"y") # volle Jahre
ej =WENN(dj=1;" Jahr";" Jahre") # zugehörige Einheit
djt =WENN(dj;dj&ej;"") # Text Teil "Jahre"
dm =DATEDIF(v;b;"ym") # volle Monate
em =WENN(dm=1;" Monat";" Monate") # zugehörige Einheit
dmt =WENN(dm;dm&em;"") # Text Teil "Monate"
vt =TAG(v) # Tag "von"
vj =JAHR(v) # Jahr "von"
vm =MONAT(v) # Monat "von"
bt =TAG(b) # Tag "bis"
# verbleibende Tage lt. Definition (s. unten):
dt =WENN(bt>=vt;bt-vt;b-MIN(DATUM(vj+dj;vm+dm;vt);b-bt))
et =WENN(dt=1;" Tag";" Tage") # zugehörige Einheit
dtt =WENN(dt;dt&et;"") # "Text Teil "Tage"
# Teiltexte zusammenführen für Schönheitspreis:
jmt =TEXTVERKETTEN(", ";WAHR;djt;dmt;dtt)
Diese Einzelschritte kann man als benannte Formeln festlegen, dann sind
die Berechnungen verborgen und die textlichen Wiederholungen minimiert:
http://www.excelmexel.de/HTMLExcel/formelnbenennen.htm
http://bitablage.de/redoute/Ruediger.xlsx
Zur hier viel diskutierten Theorie einige Beispiele: Wer am 21.08.1969
geboren ist, ist meines Erachtens
- am 20.09.1969 30 Tage alt
- am 21.09.1969 1 Monat alt
- am 21.07.1970 11 Monate alt
- am 31.07.1970 11 Monate, 10 Tage alt
- am 01.08.1970 11 Monate, 11 Tage alt
- am 20.08.1970 11 Monate, 30 Tage alt
- am 28.02.2019 49 Jahre, 6 Monate und 7 Tage alt
- am 01.03.2019 49 Jahre, 6 Monate und 8 Tage alt
Diese Methode wird etwas eigenartig, wenn das Startdatum am Monatsende
liegt: Wer am 30. bzw. 31.01.2019 geboren ist, ist er nach meiner Formel
am 28.02.2019 29 Tage bzw. 28 Tage alt; am 01.03.2019 ist das Ergebnis
für beide Startdatums gleich: 1 Monat, 1 Tag. Das entspricht der
Feststellung, dass am 29.02. Geborene nur alle vier Jahre richtig
Geburtstag haben.
Hier noch zwei Links zum selben Problem, auf die ich zurückgegriffen
habe: Die Lösung am Ende dieser Seite:
https://support.office.com/en-us/article/calculate-the-difference-between-two-dates-8235e7c9-b430-44ca-9425-46100a162f38
ist kaputt und funktioniert nur, wenn das Startdatum am Monatsanfang
ist. Hier
http://www.excelformeln.de/formeln.html?welcher=141
ist das korrigiert, passt aber auch nicht zur obigen Definition.
--
Kai Borgolte, Bonn