Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1588to1592
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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?
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige