Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Excel: Zeiträume auf einzelne Monate aufteilen

Excel: Zeiträume auf einzelne Monate aufteilen
14.11.2017 23:17:03
Fabian
Hallo liebe Community,
ich wende mich heute neu an Euch, weil ich bei einem größeren Projekt nicht weiter komme und da ich in der Vergangenheit hier schon häufig Hilfe finden konnte, versuch ich mal mein Glück. Danke in jedem Fall an alle, die hier bis heute kräftig mithelfen!
Folgendes Problem. In einem Bereich stehen jeweils in einer Spalte Beginn und Ende eines Zeitraumes. Daten können beliebig sein und auch der Zeitraum ist variabel:
Spalte A |Spalte B
Beginn |Ende
19.10.2016 |18.04.2017
19.04.2017 |18.10.2017
19.10.2017 |18.04.2018
Daraus benötige ich die Zeiträume der einzelnen Monate mit dem aktuellen Monat oben in der Liste mit laufender Nummer versehen. Das Ergebnis soll so aussehen:
Spalte A|Spalte B |Spalte C
lfd. M |Beginn |Ende
14 |01.11.2017 |30.11.2017 - aktueller Monat als erster Wert der Liste
13 |19.10.2017 |30.10.2017 - Split mit gleicher laufender Nummer
13 |01.10.2017 |18.10.2017 - Split mit gleicher laufender Nummer
12 |01.09.2017 |30.09.2017
11 |01.08.2017 |31.08.2017
10 |01.07.2017 |31.07.2017
09 |01.06.2017 |30.06.2017
08 |01.05.2017 |31.05.2017
07 |19.04.2017 |30.04.2017 - Split mit gleicher laufender Nummer (hier 7)
07 |01.04.2017 |18.04.2017 - Split mit gleicher laufender Nummer (hier 7)
06 |01.03.2017 |31.03.2017
05 |01.02.2017 |28.02.2017
04 |01.01.2017 |31.01.2017
03 |01.12.2016 |31.12.2016
02 |01.11.2016 |30.11.2016
01 |19.10.2016 |31.10.2016 - Erster Monat mit laufender Nummer 1 in Spalte A
Grundsätzlich soll also immer der erste und letzte eines Monats angezeigt werden, sofern nicht Beginn und Ende des Zeitraums etwas anderes vorgibt. Wenn zusätzlich ein Projektende eingetragen ist, sollen darüber hinaus noch 2 weitere volle Monate hinzugefügt werden. Solange kein Projektende angegeben ist, wird immer der aktuelle Monat mit neuer laufender Nummer hinzugefügt - auch wenn dafür kein Zeitraum vorhanden ist.
Ich würde mich sehr freuen, wenn ihr ein paar Tipps zur Vorgehensweise hättet und bedanke mich schon mal!
fabian
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel: Zeiträume auf einzelne Monate aufteilen
14.11.2017 23:19:01
Fabian
https://www.herber.de/bbs/user/117676.xlsx
Hier hab ich noch ne Beispieldatei angefertigt, die das oben nochmal etwas "sauberer" darstellt.
Aber warum
15.11.2017 05:48:54
lupo1
a) rückwärts, und
b) ohne Einhaltung der 2 Monate nach Projektende, und
c) falls c) so beabsichtigt ist, warum nicht bis 4/2018?
Anzeige
AW: Aber warum
15.11.2017 07:22:49
Fabian
1) aktueller Monat soll oben sein. Alles andere ist meistens irrelevant, sobald vorbei aber benötigt für weitere Berechnungen.
2) die zwei Monate nach Ende sollen immer da sein, aber erst, wenn es aktuell ist und ein Ende definitiv feststeht.
3) 04/2018 möchte ich erst sehen, wenn April ist.
Für etwas mehr praxisnähe:
Die Zeiträume sind Bewilligungszeiträume vom Jugendamt.
Die müssen hier nach Monaten aufgeteilt werden. Anschließend kann damit eine Dokumentation ausgewertet werden. Da nie klar ist, was in der Zukunft ist, soll diese auch nicht sichtbar sein und damit ich meinen aktuellen Monat nicht suchen muss, soll er einfach oben sein.
Ich hätte gerne auch die Bewilligungen andersrum aufgebaut und die neuste nach oben gesetzt. Das scheiterte aber an einer technischen Umsetzung für folgende Bearbeitungen. Die Dokumentationeintröge sind ebenfalls so sortiert: Neu = oben.
Anzeige
AW: weitere Anmerkungen und Fragen ...
15.11.2017 12:46:24
...
Hallo Fabian,
... nebensächlich: in Deiner Datei in C22 liegt offensichtlich ein Schreibfehler vor.
Aber hauptsächlich: Wenn Du Deine Auflistung dazu nutzen willst, dass Du rechts davon Daten, Informationen etc. zugeordnet erfassen willst, kann eine Formellösung nur dann zum Einsatz gelangen, wenn Deine Termine in B2:C4 fix sind und dort keine Ergänzungstermine und Streichungen vorgenommen werden. Ist das gewährleistet? Wenn ja, dann wäre noch darauf hinzuweisen, das bei Deiner spez. Auflistung (von unten nach oben) diese zwingend in einer fixen Zeile (z.B. 50) beginnen muss, damit unterhalb der Zeile 6 noch genügend "Luft" für die Aufsplittung der Termine bis zwei Monate nach dem Projektende bleibt. Über den Autofilter können die "leeren" Zellen ausgefiltert werden.
Es wäre aber für eine Formellösung günstiger mit dem ältesten Termin in Zeile 7 zu beginnen und nach unten hin die Aufsplittung vorzunehmen. Mittels zusätzlichem HYPERLINK() kann man jederzeit den aktuellen Monat in dieser Liste finden.
Gruß Werner
.. , - ...
Anzeige
AW: weitere Anmerkungen und Fragen ...
15.11.2017 17:24:49
Fabian
Hab jetzt ein bissl mit jemandem gebastelt, der VBA deutlich besser beherrscht als ich und das ist die derzeitige Lösung, die noch zwei oder drei kleinere Fehler hat. Ich hätte es nur gerne ohne VBA gelöst. Nicht wundern: In der Original-Datei ist diese Auswertung in Tabelle 2 und N:N bezieht sich z.b. auf eine Hilfsspalte, in der Daten zusammengetragen werden. Meine Beispiel-Datei war stark vereinfacht, um nicht vom eigentlichen Thema abzulenken.
Public Function MakeList()
Dim StartDate   As Date
Dim StartM      As Long
Dim StartY      As Long
Dim EndDate     As Date
Dim EndM        As Long
Dim EndY        As Long
Dim i           As Long
Dim ersteZ      As Long
Dim letzteZ     As Long
Dim WriteLine   As Long
Dim rng         As Range
Dim ws          As Worksheet
Dim arrList     As Object
Dim arr         As Variant
Set arrList = CreateObject("System.collections.arraylist")
Set ws = ThisWorkbook.Sheets(1)
If ws.Range("D5") = "" Then
Me.Range("C10:C71").ClearContents
Me.Range("D10").ClearContents
Exit Function
End If
StartDate = ws.Range("D5")
StartM = Month(StartDate) + 1
StartY = Year(StartDate)
If IsDate(ws.Range("H5")) Then
EndDate = DateSerial(Year(ws.Range("H5")), Month(ws.Range("H5")) + 3, 0)
EndM = Month(EndDate)
EndY = Year(EndDate)
Else
EndDate = Date
EndM = Month(EndDate)
EndY = Year(EndDate)
End If
If StartM > 12 Then StartM = StartM - 12: StartY = StartY + 1
If EndM > 12 Then EndM = EndM - 12: EndY = EndY + 1
'Standardeinträge
While StartY 

Private Sub Worksheet_Activate()
Call MakeList
End Sub

Anzeige
AW: weitere Anmerkungen und Fragen ...
15.11.2017 20:31:56
Niclaus
Hallo Fabian
Ich hätte es nur gerne ohne VBA gelöst.
Ich habe da etwas gebastelt ohne VBA. Werner hat ja bereits auf die Probleme hingewiesen, vor allem, dass die Reihenfolge im Aufsplittungsbereich absteigend sortiert sein sollte.
Es gibt in meiner Tabelle2 einen gelb markierten Bereich (bedingte Formatierung). Der muss ausgeblendet werden! Das Ausblenden (und vor allem das Einblenden) lässt sich (glaube ich) einfach mit VBA lösen.
Meine Tabelle2 ist auf gut zwei Jahre ausgerichtet. Das lässt sich erweitern. Zusätzliche Zeilen müssen aber oben eingefügt werden, zwischen den jetzigen Zeilen 6 und 7. Die Formeln können dann nach oben kopiert werden. - Diese Formeln sind sehr komplex. Ich verstehe sie jetzt schon nicht mehr, obwohl ich sie erst heute Nachmittag geschrieben habe ;-))
Grüsse Niclaus
https://www.herber.de/bbs/user/117695.xlsx
Anzeige
AW: weitere Anmerkungen und Fragen ...
16.11.2017 08:36:48
Fabian
Guten Morgen Niclaus,
das ist schon ein sehr guter Ansatz von Dir. Ich versuche das zu verwenden und zu verbessern.
Die ganze Tabelle in den nachfolgenden Spalten ist dynamisch soweit, dass sie sich immer auf die Datumswerte in den Spalten vorne stützt und berechnet dann damit die Einträge und Stunden, die in dem Zeitraum dokumentiert wurden.
Allerdings ist die handgeschriebene 1 leider noch das K.O.-Kriterium. Ich überlege die ganze Zeit, wie ich das über die Anzahl der laufenden Monate plus die Wechsel der Zeiträume, die nicht auf den Monatsersten fallen, berechnen kann. Habe ich diese Zahl, weiß ich welcher laufende Monat in Zeile 1 steht und kann einfach jede Zeile einen abziehen. Dann muss nur für wechselnde Zeiträume ggf eine doppelte Zahl eingetragen werden.
Über die Zahl der laufenden Monate, sehe ich hier vielleicht die einzige Möglichkeit, das wirklich von oben nach unten aufzubauen und nicht auf die "1" angewiesen zu sein.
Anzeige
AW: weitere Anmerkungen und Fragen ...
16.11.2017 10:15:45
Niclaus
Hallo Fabian
"die handgeschriebene 1 leider noch das K.O.-Kriterium. Ich überlege die ganze Zeit, wie ich das über die Anzahl der laufenden Monate plus die Wechsel der Zeiträume, die nicht auf den Monatsersten fallen, berechnen kann."
Ich hoffe, ich verstehe Dich richtig. Schau Dir im Printscreen I4:J4 an (Projektphasen). - Grüsse Niclaus
Userbild
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Excel: Zeiträume auf einzelne Monate aufteilen


Schritt-für-Schritt-Anleitung

Um Zeiträume in Excel auf einzelne Monate aufzuteilen, folge diesen Schritten:

  1. Daten vorbereiten: Stelle sicher, dass deine Daten in zwei Spalten organisiert sind – Spalte A für den Beginn und Spalte B für das Ende des Zeitraums.

    Beispiel:

    Spalte A    | Spalte B
    Beginn      | Ende
    19.10.2016  | 18.04.2017
  2. Hilfsspalten erstellen: Füge zwei zusätzliche Spalten ein, um die laufenden Nummern und die aufgeteilten Monate anzuzeigen.

  3. Formel zur Berechnung der Monate: Verwende die folgende Formel in der ersten Zeile der Hilfsspalte (z.B. Spalte C), um den ersten Monat zu berechnen:

    =DATUM(JAHR(A2);MONAT(A2);1)
  4. Aufteilen der Zeiträume: Erstelle eine Schleife oder benutze eine Formel, um die Monate zwischen dem Start- und Enddatum aufzulisten. Dies kann manuell oder durch VBA erfolgen.

  5. Aktuellen Monat oben platzieren: Sortiere die Liste so, dass der aktuelle Monat immer an oberster Stelle erscheint.


Häufige Fehler und Lösungen

  • Falsches Datumsformat: Stelle sicher, dass deine Datumsangaben in Excel im richtigen Format vorliegen. Manchmal kann ein falsches Format zu unerwarteten Ergebnissen führen.

  • Fehlende Monate: Wenn einige Monate nicht angezeigt werden, überprüfe, ob die Start- und Enddaten korrekt sind und ob die Formeln richtig angewendet wurden.

  • Schreibfehler in Formeln: Überprüfe auf Schreibfehler, insbesondere bei der Anwendung von Funktionen und Formeln. Ein kleiner Fehler kann die gesamte Berechnung beeinflussen.


Alternative Methoden

  1. VBA-Lösung: Wenn Du mit VBA vertraut bist, kannst du ein Makro schreiben, um die Monate automatisch zu generieren. Hier ist ein grundlegendes Beispiel:

    Public Function MakeList()
       ' VBA Code hier einfügen
    End Function
  2. Power Query: Eine weitere Möglichkeit ist die Verwendung von Power Query, um die Daten zu transformieren und die Zeiträume zu splitten. Diese Methode ist besonders nützlich für komplexere Datenanalysen.


Praktische Beispiele

Hier ist ein Beispiel für die Aufteilung eines Zeitraums:

  • Gegebene Daten:

    Spalte A    | Spalte B
    19.10.2016  | 18.04.2017
  • Aufgeteilte Monate:

    lfd. M | Beginn       | Ende
    14     | 01.11.2016  | 30.11.2016
    13     | 01.10.2016  | 31.10.2016
    12     | 01.09.2016  | 30.09.2016
    ...

Diese Daten können dann für die Dokumentation oder weitere Berechnungen verwendet werden.


Tipps für Profis

  • Dynamische Bereiche: Nutze dynamische Bereiche, um sicherzustellen, dass neue Daten automatisch in die Berechnung einfließen.

  • Bedingte Formatierung: Setze bedingte Formatierungen ein, um bestimmte Zeiträume hervorzuheben oder um die Übersichtlichkeit zu erhöhen.

  • Verwendung von Tabellen: Verwende Excel-Tabellen, um die Daten besser zu verwalten und die Formeln anzuwenden.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der aktuelle Monat immer oben steht? Du kannst die Liste sortieren, indem du eine Hilfsspalte erstellst, die den aktuellen Monat identifiziert und die Daten entsprechend anordnet.

2. Ist es möglich, diese Aufgabe ohne VBA zu lösen? Ja, es ist möglich, die Aufgabe vollständig mit Excel-Formeln zu lösen. Es kann jedoch etwas komplex werden, insbesondere bei der Berechnung der Monate.

3. Was ist der Vorteil von Power Query? Power Query bietet eine benutzerfreundliche Oberfläche zur Datenbearbeitung und kann große Datenmengen effizient verarbeiten. Es eignet sich hervorragend, um wiederkehrende Aufgaben zu automatisieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige