Zeiträume in Excel berechnen

noname99
Hallo,

ich möchte in Excel Zeiträume berechnen:

Zelle A1: Anfangsdatum, z. B.: 17.10.2006
Zelle B1: Enddatum, z. B.: 05.07.2008

Als Ergebnis sollte in Zelle C1 stehen: 1 Jahr 8 Monate 18 Tage
Alternativ: in C1: 1 Jahr, in D1: 8 Monate, in E1: 18 Tage

Ich selbst habe mir mittlerweile etliche Stunden den Kopf zerbrochen und kein befriegendes Ergebnis erhalten. Das größte Problem scheint mir die unterschiedliche Anzahl der Tage in einem Monat zu sein, z. B. 31, 30, 29 oder 28 Tage. Wer kann mir eine Lösung anbieten?


Tschau
urs
Hi,
B1-A1
rechnen und für die Ergebniszelle ein benutzerdefiniertes Zahlenformat anlegen:
J "Jahr/e" M "Monate" T "Tage"
noname99
Hallo Urs,

wenn´s so einfach wäre, wär´s toll. Aber da kommt leider bei mir ein falsches Ergebnis raus: 1 Jahr 9 Monate 18 Tage statt korrekterweise: 1 Jahr 8 Monate 18 Tage.

Grüße
noname99
Hallo,

ich kanns kaum glauben, ich hab´endlich die Lösung (hoffe ich):

=DATEDIF(A1;B1;"Y")&" Jahr(e) "&DATEDIF(A1;B1;"YM")&" Monat(e) "&DATEDIF(A1;B1;"MD")&" Tag(e)"

Stimmt diese Formel immer?

Gruß
noname99
Hi,

ich habe nun festgestellt, dass die Formel leider einen kleinen Fehler hat:
Wenn man z. B. als Anfangsdatum den 31.01.2007 und als Enddatum den 01.03.2007 eingibt, kommt folgendes raus: 0 Jahr(e) 1 Monat(e) -2 Tag(e) (also zwei Negativtage!?). Das richtige Ergebnis wäre 0 Jahr(e) 1 Monat(e) 1 Tag(e). Auch das Enddatum 01.05.2007 ergibt ein falsches Ergebnis: 0 Jahr(e) 3 Monat(e) 0 Tag(e). Richtig wäre: 0 Jahr(e) 3 Monat(e) 1 Tag(e).
Der Fehler tritt nur auf, wenn der Vormonat des Enddatums keine 31 Tage hat und im Anfangsdatum der 31. Tag eines Monats steht bzw. wenn im Enddatum der Monat März(03.) und im Anfangsdatum der 29./30./31. Tag eines Monats steht.
Folgende Formel löst jedoch das Problem:

=DATEDIF(A1;B1;"Y")&" Jahr(e) "&DATEDIF(A1;B1;"YM")&" Monat(e) "&WENN(UND(MONAT(B1)=3;TAG(A1)>28);TAG(B1);
WENN(UND(ODER(MONAT(B1)=5;MONAT(B1)=7;MONAT(B1)=10;MONAT(B1)=12);
TAG(A1)=31);TAG(B1);DATEDIF(A1;B1;"MD")))&" Tag(e)"

Ich weiß, es ist eine richtige Monsterformel, aber ich hoffe, dass damit alle Probleme zur Berechnung eines Zeitraumes gelöst sind. Sollte noch jemand ein weiteres Problem an der Formel finden oder vielleicht eine einfachere Lösung haben, dann nur raus damit und hier ins Forum rein.

Tschau
urs
Hallo noname,

für den Zeitraum 31.1. - 31.5. liefert Deine Formel 4 Monate + 31 Tage.

Teste mal dies:

DATEDIF(A1;B1;"y")&" Jahr(e)"&DATEDIF(A1;B1;"ym")&" Monat() "&TAG(B1)-TAG(A1)+(TAG(B1)<TAG(A1))*(MONATSENDE(B1;0)-DATUM(JAHR(B1);MONAT(
B1);1)+1)&" Tage"
noname99
Hallo Urs,

ja Du hast Recht, meine Formel liefert tatsächlich 4 Monate und 31 Tage und das ist Blödsinn, denn es sind genau 4 Monate. Und bei 31.01.07 bis 30.06.2007 stimmt die Anzahl der Monate nicht: 4 Monate 30 Tage statt genau 5 Monate.

Deine Formel löst nur das Problem für den Zeitraum 31.01.2007 – 31.05.2007, aber gib mal diesen Zeitraum ein: 31.01.2007 – 01.02.2007
Deine Formel liefert hier: 0 Jahr(e)0 Monat(e) -2 Tag(e)
Und somit wieder 2 Negativtage.
oder: 31.01.2007 – 30.06.2007
Ergebnis: 0 Jahr(e)4 Monat(e) 29 Tage statt: 0 Jahr(e)5 Monat(e) 0 Tag(e)

Im Moment fällt mir keine Lösung ein.


Tschau
urs
N'abend,

wir geben nicht auf ;-)

JAHR(B1)-JAHR(A1)-(MONAT(B1)<MONAT(A1)*1)&" Jahre "&MONAT(B1)-MONAT(A1)-(TAG(B1)<TAG(A1))*1+(B1=MONATSENDE(B1;0))*1&" Monate "&TAG(B1)-TAG(A1)+(MONAT(B1)>MONAT(A1))*(TAG(MONATSENDE(A1;0)))-(B1=MONATSE
NDE(B1;0))*(TAG(MONATSENDE(B1;0)))&" Tage"
noname99
Hallo Urs,

bei Deiner Formel kommen folgende falschen Ergebnisse raus:

31.01.2007 – 31.05.2007: 0 Jahre 5 Monate 0 Tage
29.11.2006 – 04.03.2007: 0 Jahre -9 Monate -25 Tage
18.07.2006 – 17.03.2007: 0 Jahre -5 Monate -1 Tage

Diese Formel löst fast alles:

=DATEDIF(A1;B1;"Y")&" Jahr(e) "&WENN(UND(B1=MONATSENDE(B1;0);A1=MONATSENDE(A1;0);MONAT(B1)>MONAT(A1));MON
AT(B1)-MONAT(A1);WENN(UND(B1=MONATSENDE(B1;0);A1=MONATSENDE(A1;0);MONAT(B1)
<MONAT(A1));MONAT(B1)-MONAT(A1)+12;DATEDIF(A1;B1;"YM")))&" Monat(e) "&WENN(UND(B1=MONATSENDE(B1;0);A1=MONATSENDE(A1;0));0;WENN(UND(MONAT(B1)=3;
TAG(A1)>28);TAG(B1);WENN(UND(ODER(MONAT(B1)=5;MONAT(B1)=7;MONAT(B1)=10;MONA
T(B1)=12);TAG(A1)=31);TAG(B1);DATEDIF(A1;B1;"MD"))))&" Tag(e)"

Bei Schaltjahren gibt es mit dieser Formel noch dieses kleine Problemchen:

29.04.2007 – 29.03.2008: 0 Jahr(e) 11 Monat(e) 29 Tag(e) statt 0 Jahr(e) 11 Monat(e) 0 Tag(e)
30.01.2008 – 31.03.2008: 0 Jahr(e) 2 Monat(e) 31 Tag(e) statt 0 Jahr(e) 2 Monat(e) 1 Tag(e)
29.02.2008 – 30.03.2008: 0 Jahr(e) 1 Monat(e) 30 Tag(e) statt 0 Jahr(e) 1 Monat(e) 1 Tag(e)

Das Schaltjahrproblem liegt in der Formel hier: TAG(A1)>28
Das ist zwar richtig für Nicht-Schaltjahre, aber bei Enddatum 29.03./30.03./31.03.Schaltjahr und Anfangsdatum 29./30.Irgendeinjahr falsch. Dann müsste es in der Formel so lauten: TAG(A1)>29



Tschau
noname99
Hallo,

jetzt habe ich (hoffe ich zumindest) die finale Formel:

=DATEDIF(A1;B1;"Y")&" Jahr(e) "&WENN(UND(B1=MONATSENDE(B1;0);A1=MONATSENDE(A1;0);MONAT(B1)>MONAT(A1));MON
AT(B1)-MONAT(A1);WENN(UND(B1=MONATSENDE(B1;0);A1=MONATSENDE(A1;0);MONAT(B1)
<MONAT(A1));MONAT(B1)-MONAT(A1)+12;DATEDIF(A1;B1;"YM")))&" Monat(e) "&WENN(UND(B1=MONATSENDE(B1;0);A1=MONATSENDE(A1;0);TAG(B1)<=TAG(A1));0;WENN
(UND(MONAT(B1)=3;TAG(A1)>TAG(MONATSENDE(B1;-1)));TAG(B1);WENN(UND(ODER(MONA
T(B1)=5;MONAT(B1)=7;MONAT(B1)=10;MONAT(B1)=12);TAG(A1)=31);TAG(B1);DATEDIF(
A1;B1;"MD"))))&" Tag(e)"

Bin gespannt, ob jetzt noch jemand einen Fehler findet. Ansonsten wäre ich für jede einfachere Lösung äußerst dankbar. Kaum zu glauben, dass man in Excel so eine einfache Aufgabenstellung nicht einfacher lösen kann.

Tschau
urs
Hi,
ich fürchte, das war noch nicht der Zieleinlauf...

31.1.07 - 28.2.07
1 Monat 28 Tage

31.1.07 - 28.2.08
1 Jahr 0 Monate 28 Tage

31.1.07 - 29.2.08
1 Jahr 1 Monat 29 Tage

Gruß, urs
noname99
Hallo Urs,

also bei mir stimmts. Du solltest vielleicht nochmal die letzte Formel von mir komplett kopieren und einfügen. Ich hab nämlich noch weitere Korrekturen gemacht.
Übrigens dieses von Dir genannte Beispiel stimmt doch:

31.1.07 - 28.2.08
1 Jahr 0 Monate 28 Tage

Gruß
urs
Hi,

ja, hast recht. Bei der Übernahme muss irgendwas verloren gegangen sein.

Deine Ergebnise sehen sehr gut aus. *Lob*

Ich bleibe auf der "Pirsch". Wenn ich was finde, erstatte ich Bericht. ;-)

Gruß, urs
urs
Hallo noname,

ich habe noch bisschen gebastelt - wenn ich nicht irre, macht Deine Formel doch den ein oder anderen Fehler:

30.1.08 - 31.3.08 = 2 M + 31 T ... richtig wären: 2 M + 1 T
29.2.08 - 30.3.08 = 1 M + 1 T ... richtig wären: 30 T
18.7.06 - 17.3.07 = 7 M + 27 T ... richtig wären: 7 M + 30 T
Differenzen von einem Tag auch bei
17.10.06 - 5.7.08
29.11.06 - 4.3.07

Versuche mal diese hier:

DATEDIF(A2;B2;"Y")&" Jahr(e) "&MONAT(B2)-MONAT(A2)+(MONAT(B2)<MONAT(A2))*12-((MONATSENDE(DATUM(JAHR(B2);
MONAT(B2);1);0)-B2)>(MONATSENDE(DATUM(JAHR(A2);MONAT(A2);1);0)-A2)*1)&" Monat(e) "&WENN(MONATSENDE(B2;0)-B2=MONATSENDE(A2;0)-A2;0;TAG(B2)-TAG(A2)+(ODER(TAG(
B2)<TAG(A2);MONATSENDE(B2;0)-B2>MONATSENDE(A2;0)-A2))*(MONATSENDE(A2;0)-DAT
UM(JAHR(A2);MONAT(A2);1)+1))&" Tag(e)"
Surfer
Ich hab mal nachgeschlagen und folgendes darüber gefunden:

Zeitdifferenzen zwischen 2 Datumsangaben lassen sich nur in Tagen berechnen, Versuche, die Anzahl der Jahre, Monate und Tage einer Zeitdifferenz mit Hilfe der Datumsfunktionen zu ermitteln, führen zu Fehlern.
noname99
Hallo Urs,

ich konnte mich erst jetzt wieder mit meinem Problem befassen.
Nun zu Deinen Ergebnissen:

30.1.08 - 31.3.08 = 2 M + 31 T ... richtig wären: 2 M + 1 T
Du hast Recht ist falsch.
29.2.08 - 30.3.08 = 1 M + 1 T ... richtig wären: 30 T
Da liegst Du falsch, ist doch richtig. 1 Monat (vom 29.02.08 bis 29.03.08) und 1 Tag(vom 29.03. bis 30.03.08)
18.7.06 - 17.3.07 = 7 M + 27 T ... richtig wären: 7 M + 30 T
Du hast Recht ist falsch.
Differenzen von einem Tag auch bei
17.10.06 - 5.7.08
Da liegst Du falsch, ist doch richtig. 1 Jahr 8 Monate 18 Tage
29.11.06 - 4.3.07
Da liegst Du falsch, ist doch richtig. 3 Monate und 4 Tage.

Deine angebotene Formel liefert jede Menge falsche Ergebnisse, z. b.: 30.10.2007 bis 30.06.2008 liefert bei Deiner Formel: 8 Monate und 1 Tag (falsch). Richtig: 8 Monate 0 Tage. Weiteres Beispiel: 01.12.2007 bis 30.06.2008: 5 Monate 29 Tage (falsch). Richtig: 6 Monate 29 Tage.

Ich probier mal weiter mit meinem Grundgerüst und biete bald eine neuen Lösungsvorschlag an.


Tschau
noname99
Hallo Urs,

nochmals ein Nachtrag:
der Zeitraum 18.07.2006 bis 17.03.2007 ergibt bei meiner alten Formel:
7 Monate und 27 Tage und das stimmt doch: Bis zum 18.02.2007 sind es 7 Monate und ab da (wenn man es an den Fingern abzählt) sind es 27 Tage. Meine Formel liefert also nur noch einen Fehler und den krieg ich bestimmt auch noch in den Griff.

Tschau
noname99
So, hier noch mal ein Versuch:

=DATEDIF(A1;B1;"Y")&" Jahr(e) "&WENN(UND(B1=MONATSENDE(B1;0);A1=MONATSENDE(A1;0);MONAT(B1)>MONAT(A1));MON
AT(B1)-MONAT(A1);WENN(UND(B1=MONATSENDE(B1;0);A1=MONATSENDE(A1;0);MONAT(B1)
<MONAT(A1));MONAT(B1)-MONAT(A1)+12;DATEDIF(A1;B1;"YM")))&" Monat(e) "&WENN(UND(B1=MONATSENDE(B1;0);A1=MONATSENDE(A1;0);TAG(B1)<=TAG(A1));0;WENN
(UND(MONAT(B1)=3;TAG(A1)>TAG(MONATSENDE(B1;-1));TAG(B1)<30);TAG(B1);WENN(UN
D(ODER(MONAT(B1)=5;MONAT(B1)=7;MONAT(B1)=10;MONAT(B1)=12);TAG(A1)=31);TAG(B
1);DATEDIF(A1;B1;"MD"))))&" Tag(e)"


Tschau
urs
Hi,

das Ganze ist auch eine "philosophische" Frage. ;-) Es kommt (wie so oft) darauf an, von wo man blickt:

29.2.08 - 30.3.08
Vom Monatsanfang aus betrachtet = 1 Monat und 1 Tag
... 29.2. - 29.3. = 1 Monat
... 29.2. - 30.3. = 1 Tag
Vom Monatsende aus gesehen = 30 Tage
... Ultimo Februar bis Ultimo März = 0 nicht erfüllt, es fehlt ein Tag
... ergo: 30 Tage

18.7. - 17.3.
Vom Monatsanfang aus betrachtet = 7 Monate und 27 Tage
... Ich habe nicht so viele Finger, aber ich kann bis 27 zählen.
Aber mein Zahlengefühl möchte hier gern 8 Monate zählen. Vom 18 ten bis zum 17 ten des Folgemonats ist mir einfach nach einem Monat.

Aber wie eingangs erwähnt: Da ist ein Philosophie-Forum nötig. :-)))

---

Und wenn wir die Worte von SURFER berücksichtigen: Meine Berechnung ist ebenso falsch wie Deine - immer.
noname99
Hallo Urs,

also Deine Ansicht kann ich nicht ganz nachvollziehen. Wenn am 17. bereits das 8. Monat voll wäre, dann hätte ja jemand, der am 18.03.1987 geboren wurde, bereits am 17.03.2007 seinen 20. Geburtstag. Ist aber nicht so. Das 20. Lebensjahr ist am 18.03.2007 vollendet. Und somit müsste auch der 8. Monat am 18.03. vollendet sein. Das hat alles nichts mit Philosophie zu tun, sondern mit der Fristberechnung nach §§ 187 ff BGB.


Tschau