nicht überlappende Datums-Intervalle in neuer Spalte ausgeben

03/08/2011 - 15:05 von André Jochim | Report spam
Hallo,

ich bin gerade am Tüfteln, wie ich aus einer Reihe von sich teilweise
überlappenden Zeitintervallen eine Spalte mit neuen Intervallgrenzen
bekomme, die sich nicht mehr überlappen.

z.B. von (A) bis (B)

A B
1 01.01.11 31.03.11
2 01.02.11 28.02.11
3 01.01.11 30.04.11
4 01.05.11 30.09.11
5 01.01.11 30.09.11

Im ersten Schritt habe ich in einer neuen Spalte die Daten sortiert,
wobei doppelte Werte nicht ausgegeben werden.

C
1 01.01.11
2 01.02.11
3 28.02.11
4 31.03.11
5 30.04.11
6 01.05.11
7 30.09.11

Wie kann ich daraus jetzt z.B. mit Hilfe einer Matrix-Formel zu
folgendem Ergebnis kommen, das 5 aufeinander folgende, geschlossene
Intervallgrenzen (Grenzwerte sind jeweils Inhalt des Intervalls)
darstellt:

D
1 01.01.11 Intervall 1 (Anfang)
2 31.01.11 Intervall 1 (Ende)
3 01.02.11 Intervall 2 (Anfang)
4 28.02.11 Intervall 2 (Ende)
5 01.03.11 Intervall 3 (Anfang)
6 31.03.11 Intervall 3 (Ende)
7 01.04.11 Intervall 4 (Anfang)
8 30.04.11 Intervall 4 (Ende)
9 01.05.11 Intervall 5 (Anfang)
10 30.09.11 Intervall 5 (Ende)

Irgendwie habe ich noch keine Idee, da zum Teil ja neue Grenzwerte
generiert werden müssen, die in der sortierten Liste noch nicht drin
sind.

Hat einer von Euch vielleicht eine Idee?

André

Traumferienwohnung gesucht? (4**** nach DTV)
Urlaub in der Mecklenburgischen Seenplatte...
www.urlaub-in-sorgenlos.de
 

Lesen sie die antworten

#1 Bernhard Sander
03/08/2011 - 16:05 | Warnen spam
Hallo André,

ich bin gerade am Tüfteln, wie ich aus einer Reihe von sich teilweise
überlappenden Zeitintervallen eine Spalte mit neuen Intervallgrenzen
bekomme, die sich nicht mehr überlappen.

z.B. von (A) bis (B)

A B
1 01.01.11 31.03.11
2 01.02.11 28.02.11
3 01.01.11 30.04.11
4 01.05.11 30.09.11
5 01.01.11 30.09.11

Im ersten Schritt habe ich in einer neuen Spalte die Daten sortiert,
wobei doppelte Werte nicht ausgegeben werden.

C
1 01.01.11
2 01.02.11
3 28.02.11
4 31.03.11
5 30.04.11
6 01.05.11
7 30.09.11

Wie kann ich daraus jetzt z.B. mit Hilfe einer Matrix-Formel zu
folgendem Ergebnis kommen, das 5 aufeinander folgende, geschlossene
Intervallgrenzen (Grenzwerte sind jeweils Inhalt des Intervalls) darstellt:

D
1 01.01.11 Intervall 1 (Anfang)
2 31.01.11 Intervall 1 (Ende)
3 01.02.11 Intervall 2 (Anfang)
4 28.02.11 Intervall 2 (Ende)
5 01.03.11 Intervall 3 (Anfang)
6 31.03.11 Intervall 3 (Ende)
7 01.04.11 Intervall 4 (Anfang)
8 30.04.11 Intervall 4 (Ende)
9 01.05.11 Intervall 5 (Anfang)
10 30.09.11 Intervall 5 (Ende)

Irgendwie habe ich noch keine Idee, da zum Teil ja neue Grenzwerte
generiert werden müssen, die in der sortierten Liste noch nicht drin sind.



Mal als Denkansatz, hab's aber nicht durchgetestet:
beim Umsortieren in Spalte C vermerke dahinter in Spalte D, ob es ein Anfangs-
oder ein Ende-Datum ist.
C D
1 01.01.11 A
2 01.02.11 A
3 28.02.11 E
4 31.03.11 E
5 30.04.11 E
6 01.05.11 A
7 30.09.11 E

Dann muss man wohl mit VBA in einer Schleife durchprüfen, ob 2 Anfànge oder 2
Enden direkt untereinanderstehen.
Bei 2 Anfangsdaten muss ein Ende-Datum eingefügt werden, das am Tag vor dem
zweiten Anfangsdatum liegt.
Bei 2 Endedaten muss ein Anfangs-Datum eingefügt werden, das am Tag nach dem
ersten Ende-Datum liegt.
C D
1 01.01.11 A
31.01.11 E


2 01.02.11 A
3 28.02.11 E
01.03.11 A


4 31.03.11 E
01.04.11 A


5 30.04.11 E
6 01.05.11 A
7 30.09.11 E

Bei Dir liegen die Intervalle so, dass kein Tag zwischen dem ersten Anfangsdatum
und dem letzten Endedatum ausgelassen wird. Da musst Du noch prüfen, was los
ist, wenn ein Zeitraum zwischendrin nicht von den Intervallen erfasst wird.

Gruß
Bernhard Sander

Ähnliche fragen