2.3k Aufrufe
Gefragt in Tabellenkalkulation von
Guten Tag,

vorab wünsche ich Euch ein gesundes neues Jahr und weiterhin tolle Lösungsideen für uns.

Ich möchte heute die Anzahl der kompletten Monate zwischen zwei Datumsdifferenzen ermitteln. Dazu habe ich bereits folgende geniale Formel im Internet gefunden.

WENN(ODER(A$1>JAHR(B2);A$1<JAHR(A2));0;MAX(0;WENN(JAHR(B2)=A$1;MONAT(B2)-1;12)-WENN(JAHR(A2)=A$1;MONAT(A2);0)))

A1 = 2012
A2 = 01.08.2011
B2 = 31.05.2012

Die Formel liefert mir das Ergebnis 4. Richtig ist jedoch 5, denn im Jahr 2012 sind es genau 5 komplette Monate.

Könnt Ihr mir helfen? Die Formel darf immer nur die Anzahl der kompletten Monate anzeigen, muss also immer den Zeitraum vom ersten bis zum letzten Tag des Monats erfassen.

Viele Grüße

Offi

11 Antworten

0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo Offi,

dass ein Monat zu wenig angezeigt wird, liegt an ..MONAT(B2)-1... Aber das ist eigentlich noch dein geringstes Problem, denn selbst wenn du -1 entfernst, würde auch bei einem Datum 01.05.2012 in B2 der Mai 2012 als Monat gezählt.

Dafür gibt es eine andere Funktion.

=DATEDIF(A2;B2+1;"m")
würde z.B. die Anzahl der vollen Monate zwischen dem Anfangsdatum in A2 und dem Enddatum in B2 ausgegeben.

=DATEDIF(DATUM(A$1;1;1);B2+1;"m") würde die Anzahl der vollen Monate ab dem 01.01. des in A1 angegebenen Jahres bis zum Enddatum in B2 ausgeben.

Eventuell reicht dir das schon als Anregung zur Umstellung deiner Formel, ansonsten müsstest du mal etwas genauer erläutern, was da eigentlich wann berechnet werden soll, denn so richtig steige zumindest ich nicht dahinter.

Gruß
Kalle
0 Punkte
Beantwortet von
Hallo Kalle,

danke für die schnelle Antwort. Leider lösen Deine Vorschläge nicht mein Problem.
Ich möchte z.B. anteiligen Urlaub berechnen. Lt. Bundesurlaubsgesetz hat man auf jeden vollen Monat (immer vom ersten bis zum letzten Tag im Monat) Anspruch auf Erholungsurlaub. Beginnt man also z.B. am 17.09.2011 seine Arbeit und beendet diese am 31.05.12, dann hat man für 2011 Anspruch auf 3 (volle) Monate und 2012 auf 5 (volle) Monate. Betrachte ich nur den Zeitraum 2012 so muss als Ergebnis eine 5 rauskommen. Bei der obigen Formel ist das Ergebnis jedoch 4.
Die Formel funktioniert immer dann nicht, wenn in B2 als Datum der letzte Kalendertag des Monatsangegeben ist und demzufolge mitrechnen muss.
z.B. 05.04.12 bis 28.07.12 = 2 (hier stimmt die Formel)
05.04.12 bis 31.07.12 = 2 --> richtig ist aber 3 (hier stimmt die Formel nicht).

Gruß
Offi
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

versuch es mal mit der Formel

=WENN(ODER(A$1>JAHR(B2);A$1<JAHR(A2));0;WENN(A1=JAHR(A2);DATEDIF(A2;DATUM(A1;12;31)+1;"m");WENN(A1=JAHR(B2);DATEDIF(DATUM(A1;1;1);B2+1;"m");0)))

Gruß

Helmut
0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo Offi,

Urlaubstage lt. Tarif beziehen sich z.B. immer auf Werktage, also auf alle Tage, außer den Sonn- und Feiertagen. Das entspricht einer 6-Tage-Arbeitswoche und ein (gesetzlicher Mindest-)Urlaubsanspruch von 24 Tagen müsste z.B. auf 24/6=4 arbeitsfreien Samstage angerechnet werden.

Für die Lohnabrechnung zugelassene Programme rechnen deshalb i.d.R. selbständig die tariflichen WT-Urlaubstage auf tatsächlich vereinbarte Arbeitstage pro Woche um. Beispielsweise mit Urlaubsanspruch/6*5 bei einer vereinbarten und heute üblichen 5-AT-Woche. Die o.a. 24 Urlaubstage würden sich darüber zwar auf 20 reduzieren, müssten dann aber auch nur noch auf die vereinbarten 5 Wochen-Arbeitstage angerechnet werden.

Das nächste 'Problem' besteht darin, dass eigentlich nur in der s.g. Wartezeit (erste 6 Monate) ein anteilig erworbener Urlaubsanspruch erworben wird, der, je nach Vereinbarung, in dieser Zeit auch zu gewähren oder auch nicht zu gewähren ist. Bei einem vorzeitigem Ende der Wartezeit wäre der 'Rest' des erworbenen Anspruchs jedoch in der Zeit bis zum offiziellen Ende des Beschäftigungsverhältnisses als bezahlter Urlaub zu gewähren, oder entsprechend zu vergüten.

Nach diesen ersten 6 Monaten hat jeder AN jedoch auch einen gesetzlichen Anspruch auf die Gewährung von Urlaub, welcher erst noch mit den bis zum Jahresende ausstehenden Monaten erworben werden soll. Deine Tabelle müsst also auch zwischen einem gesetzlichem Anspruch auf Gewährung von Urlaub und einem ausschließlich zeitabhängigem Urlaubsanspruch unterscheiden können.

Eine ggf. angefallene zeitanteilige 'Überziehung' des bisher gewährten Urlaubs wird beim Ausscheiden eines Mitarbeiters in den entsprechenden Schlussmeldungen aufgeführt, damit der nächste AG oder auch das AA einen zeitanteilig überzogenen Urlaub nicht nochmals gewährt.

Falls du das jetzt nicht nur mal so für dich selbst machen, sondern deine Tabelle in einer arbeitsrechtlich relevanten Umgebung nutzen willst, ist es leider nicht nur mit der Ermittlung der Anzahl der Monate getan.

Gruß
Kalle
0 Punkte
Beantwortet von
Hallo Helmut,

leider funktioniert die Formel nicht so, wie es brauche. Wenn
A1 = 2012
A2 = 05.04.12 und
B2 = 31.07.12 ist, dann kommt bei Deiner Formel 8 raus. Aber danke für den Vorschlag.

Hallo Kalle,
danke für die gesetzlichen Ausführungen. Die sind mir jedoch alle bestens bekannt. Darum hatte ich in meiner Originalanfrage auch dazu nichts geschrieben. Mir geht es lediglich darum, innerhalb eines beliebigen Zeitraums bezogen auf ein klar definiertes Jahr die Anzahl der vollen Monate zu ermitteln. Und wie bereits geschrieben, die oben dargestellte Formel kommt meiner Vorstellung schon recht nahe, nur funtionoeirt sie leider nicht, wenn z.B. in B2 der letzte Kalendertag des Monats steht und dieser Monat dann mitgerechnet werden muss.

Gruß
Offi
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

das Problem war aus deiner Aufgabenstellung so nicht ersichtlich und daher von mir nicht berücksichtigt, aber versuch es mal hiermit

=WENN(ODER(A$1>JAHR(B2);A$1<JAHR(A2));0;WENN(UND(A1=JAHR(A2);A1=JAHR(B2));DATEDIF(A2;B2+1;"m");WENN(A1=JAHR(A2);DATEDIF(A2;DATUM(A1;12;31)+1;"m");WENN(A1=JAHR(B2);DATEDIF(DATUM(A1;1;1);B2+1;"m");0))))

Gruß

Helmut
0 Punkte
Beantwortet von
Hallo Helmut,

vielen Dank, aber leider klappt es immer noch nicht.
Wenn ich bei deiner Formel z.B. eingebe:
A1 = 2012, A2 = 04.05.12 und B2 = 02.08.12 dann ergibt das 2 (richtig), gebe ich bei B2 =03.08.12 dann ergibt das 3 (falsch). Die 3 darf erst rauskommen, wenn in B2 der 31.08.12 steht.

Gruß
Offi
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
hallo,

der Anfangstag in A2 ist der erste Arbeitstag und der Endetag in B2 ist das der letzte Arbeitstag oder ?

Daraus ergibt sich für mich im letzten Fall A1 = 2012, A2 = 04.05.12 und B2 = 03.08.12, da dies aus meiner Sicht 3 volle Monate sind.

In allen anderen Fällen, brauche ich noch eine Erläuterung wie es genau zu rechnen ist.

Gruß

Helmut
0 Punkte
Beantwortet von
Hallo Helmut,

erstmal danke für deine Ausdauer. Zum besseren Verständnis habe ich mal eine Beispieldatei hochgeladen.

http://www.file-upload.net/download-7016822/Datumsdifferenzen_05.01.13.xlsx.html

Gruß

Offi
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

ich glaube jetzt haben wir es und ich weiss auch worum es dir ging

=WENN(ODER(A$1>JAHR(B2);A$1<JAHR(A2));0;WENN(UND(A$1=JAHR(A2);A$1=JAHR(B2));DATEDIF(DATUM(JAHR(A2);MONAT(A2)+WENN(TAG(A2)>1;1;0);1);B2+1;"m");WENN(A$1=JAHR(A2);DATEDIF(A2;DATUM(A$1;12;31)+1;"m");WENN(A$1=JAHR(B2);DATEDIF(DATUM(A$1;1;1);B2+1;"m");0))))

versuch es mal damit

Gruß

Helmut
...