Problem Verarbeitung Wochentagen - Addition v. Tag
18.01.2008 12:39:00
bjoern
ich habe eine kleine Denkblockade und hoffe, dass Ihr mir hier helfen könnt.
Ich muss für Datensätze eine Datum erstellen, zu dem der Datensatz gültig ist.
Dazu habe ich folgende Informationen
Spalte B: Datum der Datensatzerstellung (z.B. 18.01.2007)
Spalte E: Tage, die es benötigt, bis das Datensatz Gültigkeit erlangt (0,1,2,3)
=> Der erste Schritt ist ja "einfach" eindach zum Datum der Spalte B die Tage aus Spalte E addieren.~f~
Im zweiten Schritt gilt es dann für das "neue" Datum, die Wochenende zu berücksichtigen, und die Gültigkeit dann auf einen Montag bzw. Dienstag zu setzen.
~f~=> Auch "einfach": Habe entsprechend eine Wenn-Funktion mit Wochentag genutzt, und wenn das neue Datum auf einen Samstag oder Sonntag fällt, einfach zwei Tage addiert - weil am Wochenende schafft ja keiner ; -))~f~
Jetzt kommen wir zu dem Problem:
Es gibt noch zwei Uhrzeitstempel:
Spalte C: Zeitstempel der Datensatzerstellung (z. B. 10:30 Uhr)
Spalte D: Zeitstempel, bis zu dem der Datensatz erstellt sein musss (z. B. 12:30 Uhr)
Es gibt ferner noch einen Sicherheitspuffer von 15 Minuten zum Zeitstempel in Spalte D. Wenn der Datensatz nicht mindestens 15 Minuten vor dem Zeitstempel in der Spalte D erstellt wurde, kann er erst am nächsten Tag berücksichtigt werden. Entsprechend muss das "neue" Datum in einem solchen Fall nochmals um einen Tag nach hinten verschoben werden.
Als Ergebnis habe ich dann folgende Formel in der Spalte G erstellt:
~f~=WENN(WOCHENTAG(B64+E64;2)<WOCHENTAG(B64;2);WENN(WOCHENTAG((WENN((D64-C64)>=0,0104166666666666; B64+E64;B64+E64+1));2)>5;(WENN((D64-C64)>=0,0104166666666666;B64+E64;B64+E64+1))+2;(WENN((D64-C64) >=0,0104166666666666;B64+E64;B64+E64+1)))+2;WENN(WOCHENTAG((WENN((D64-C64)>=0,0104166666666666; B64+E64;B64+E64+1));2)>5;(WENN((D64-C64)>=0,0104166666666666;B64+E64;B64+E64+1))+2;(WENN((D64-C64) >=0,0104166666666666;B64+E64;B64+E64+1))))
Diese funktioniert einwandfrei, bis auf eine Einschränkung:
Wenn
a.) das Datum in Spalte B auf einen Freitag fällt (z. B. 18.01.08),
b.) es zwei Tage dauert bis zum Erreichen der Gültigkeit braucht (Spalte E) und
c.) der Zeitstempel , bis zum dem der Datensatz hätte erstellt werden müssen (Spalte D; Bsp.: 09:30) nicht mindestens 15 Minuten nach der Datensatzerstellung (Spalte C; Bsp.: 10:30) liegt
erhalte ich statt erwartet (18.01. + 2 Tage (Spalte E) + 1 Tag (weil nach Vorgabezeit erstellt) + 2 Tage für Wochenende =) 23.01.08 den 21.01.2008
Wenn für den Beispielsfall die Spalte E um einen Tag nach unten oder oben geändert wird, erhalte ich mit meiner Formel jeweils das korrekte Datum (22.01. bzw. 24.01.).
Auch in den Fällen, in dem der Datensatz rechzeitig vor der Stichzeit erstellt wurde, stimmen die Datumsangaben unabhängig von den Tagen, bis die Gültigkeit erlangt wird, wenn ich die oben genannte Formel nutze.
Es muss daher irgendwie mit dem Sonntag zusammenhängen. Aber ich weis leider nicht weiter.
In der Hoffnung, dass mit meine Angaben hier einer eine Lösung für mich findet,
bedanke ich mich vorab.
Grüße
bjoern