Anzahl Monat in Zeitraum zählen
#1
Hallo ins Forum,

ich habe eine kniffelige Frage für euch. Bin gespannt, ob ihr mir helfen könnt. Smile

ich möchte die Anzahl der Monate in bestimmten Zeiträumen zählen. Die Zeiträume sind jeweils durch ein Beginndatum und ein Enddatum definiert.

Bei der Zählung der Monate gelten folgende Einschränkungen: Zum einen muss ein zu zählender Monat komplett im jeweiligen Zeitraum liegen. Zum anderen will ich nur Monate zählen, die im Jahr 2022 liegen. Die Zeiträume können sich über mehrere Jahre erstrecken.

Nehmen wir an, dass ein Zeitraum am 01.04.2021 beginnt und am 08.11.2023 endet. Die richtige Anzahl der Monate wäre dann 10. 
Hier die Begründung: Von dem Zeitraum ist hier nur der Teil vom 01.01.2022 bis zum 08.11.2022 interessant (da ich ja nur 2022 betrachte). Zum anderen ist der November nicht mitzuzählen, da dieser nicht komplett im Zeitraum liegt (der November endet ja erst am 30.11.2022).

Hier ein paar Beispieldaten im CSV-Format:

Name;Beginn;Ende
Charlie;01.04.2021;08.11.2022
Alan;19.09.2021;31.08.2022
Jake;26.02.2021;23.02.2022
Berta;06.05.2022;03.06.2022
Judith;04.07.2022;09.08.2022
Evelyn;23.04.2022;24.02.2023

Eine Excel-Tabelle mit den Beispieldaten findet ihr im Anhang.

Habt ihr eine Idee?

Viele Grüße
zachy


Angehängte Dateien Thumbnail(s)
   

.xlsx   Beispieldaten.xlsx (Größe: 8,9 KB / Downloads: 13)
Antworten Top
#2
D2: =DATEDIF(MAX(B2;"1.1.2022");MIN(C2;"31.12.2022")+1;"M")

Es geht dabei nicht um vollständige (also nur "nicht angeknabberte") Kalendermonate, sondern um die abgerundete Dauer in Monaten. Genauer hast Du Dich hier nicht ausgedrückt. Dem letzten Tag zähle ich 1 hinzu, damit 2.4.2022-1.9.2022 auch 5 Monate ergibt und nicht etwa nur 4.

D2: =DATEDIF(MAX(MONATSENDE(B2-1;0)+1;"1.1.2022");MIN(MONATSENDE(C2+1;-1);"31.12.2022")+1;"M")

Volle Kalendermonate (also nicht "Dauer").
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • zachy
Antworten Top
#3
Hi,

m.E. reicht das:

Code:
=DATEDIF(MAX(B2;"1.1.2022");MIN(C2+1;"31.12.2022");"M")
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#4
Dann gib mal =DATEDIF("1.1.22";"31.12.22";"M") ein und erhalte leider nur 11 statt 12. Daher muss man Enddatum+1 nehmen.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Antworten Top
#5
Hi,

gutes Argument. Da Datedif so arbeitet, ginge auch das:

Code:
=DATEDIF(MAX(B2;"31.12.2021");MIN(C2+1;"1.1.2023");"M")
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#6
Das ist aber dann unnötig verbreitert und lässt keine nachträgliche Verfeinerung des DATEDIF-Intervalls zu.

DATEDIF und das einfache Excel-Intervall wirken inklusiv-exklusiv, NETTOARBEITSTAGE hingegen beidseitig-inklusiv. 

a) Letzteres ist für viele Menschen einfacher zu verstehen. 
1.1.20-31.12.20
1.1.21-31.12.21

b) Ersteres ist mathematisch sauberer, weil Anschlussdatümer nur einfach genannt werden müssen. Außerdem fehlt nie ein Teil in der Intervallkette.
1.1.20
1.1.21
1.1.22
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Antworten Top
#7
Hallo LCohen,

vielen Dank für deine Antwort!

Deine erste Formel ist genau die Antwort die ich gesucht habe!  Thumbsupsmileyanim

Viele Grüße
zachy
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste