Herbers Excel-Forum - das Archiv
Vergleich zweier Zeiträume(Stunden)
Betrifft: Vergleich zweier Zeiträume(Stunden)
von: Klaus M.
Geschrieben am: 02.01.2007 10:16:14
Hallo Forum,
ein frohes neues Jahr !
Ich stelle die Frage nicht in der Hoffnung, dass mir jemand die Arbeit
abnimmt,
das bekomme ich schon hin.
Nur manchmal sehe ich hier die tollsten Lösungen, die mit 2 Zeilen meine
eigenen 50 Zeilen Code ersetzen. Evtl. klappt es ja auch bei folgendem
Problem.
Ich muß 2 Zeiträume(Stunden) vergleichen. Der Vorgabezeitraum kann dabei
auch
über Mitternacht gehen.
Als Beispiel sei der Zeitraum A von 20 h bis 6 h gegeben.
Nun gibt es ja folgende Möglichkeiten für den Zeitraum B :
B beginnt und endet vollständig vor A, in A, nach A
B beginnt vor oder mit A, endet in A
B beginnt in A, endet mit oder hinter A
B beginnt vor A und endet hinter A
(etwas vergessen..? )
Da ich eine VBA-Lösung brauche um eine Function zu "bauen",
sehe ich schon 2 Seiten If - Verschachtelungen vor mir....
Sollte jemand zu diesem Thema eine kurze und knackige Lösung haben,
wäre ich sehr daran interessiert ;-)
Vielen Dank und Gruß
Klaus
Betrifft: AW: Vergleich zweier Zeiträume(Stunden)
von: Matthias G
Geschrieben am: 02.01.2007 10:25:30
Hallo Klaus,
eine Beispieldatei:
https://www.herber.de/bbs/user/39315.xls
Kern ist die Funktion ZeitIn(), die ich hier nochmal einstelle:
' Beginn, Ende: Zeitraum
' Z1, Z2: überschneidung mit diesem Zeitraum
Function ZeitIn(Beginn As Date, Ende As Date, Z1 As Date, Z2 As Date) As Date
' Über Nacht: Ende +24 Std.
If Z2 < Z1 Then Z2 = Z2 + 1
If Ende < Beginn Then Ende = Ende + 1
If Beginn <= Z1 Then
If Ende <= Z1 Then ZeitIn = 0
If Ende > Z1 And Ende <= Z2 Then ZeitIn = Ende - Z1
If Ende > Z2 Then ZeitIn = Z2 - Z1
ElseIf Beginn > Z1 And Beginn <= Z2 Then
If Ende <= Z2 Then ZeitIn = Ende - Beginn
If Ende > Z2 Then ZeitIn = Z2 - Beginn
ElseIf Beginn > Z2 Then
ZeitIn = 0
End If
End Function
Gruß Matthias
Betrifft: AW: Vergleich zweier Zeiträume(Stunden)
von: Klaus
Geschrieben am: 02.01.2007 10:45:28
Hallo Matthias,
gaaaanz klasse ;-)
Genau das gesuchte, herzlichen Dank dafür.
Betrifft: Problem (?)
von: Klaus
Geschrieben am: 03.01.2007 23:46:44
Hallo Matthias,
in der Hoffnung, dass Du in alten Beiträgen stöberst...
Wenn im Spätdienst der Zeitraum 0:00 bis 06:00 eingegeben wird, sollten
dann nicht in der Spalte F die 6 Stunden auftauchen ?
Wir rechnen tageweise ab, die zweite Nachtdiensthälfte geginnt halt um 0:0 Uhr;
als ergebnis werden keine Stunden ausgeworfen ( der Vorgabezeitraum ist 21 - 06 )
Alle anderen scheinen zu stimmen.
Hast Du eine Idee ?
Gruß, Klaus
Betrifft: AW: Problem (?)
von: Matthias G
Geschrieben am: 03.01.2007 23:54:29
Hallo Klaus,
du musst als Zeitraum 24:00 bis 6:00 eingeben:
|
Tabelle1 |
| A | B | C | D | E | F | 1 | Spätdienst | | | So | Sa | Mo-So | 2 | | Zeitraum | 0-24 Uhr | 12-24 Uhr | 20-6 Uhr |
---|
3 | | von | bis | 00:00 | 12:00 | 24:00 | 4 | | | | 24:00 | 24:00 | 06:00 | 5 | Dienst: | 21:00 | 6:00 | 3:00 | 3:00 | 06:00 | Formeln der Tabelle | D5 : =zeitin(B5;C5;D3;D4)
E5 : =zeitin(B5;C5;E3;E4)
F5 : =zeitin(B5;C5;F3;F4)
|
|
|
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen Excel Jeanie HTML 3.0 Download
Denn 0:00 bis 6:00 überschneidet sich nicht mit dem Zeitraum 21:00 bis 6:00.
(0-6 Uhr ist früh, 21-6 Uhr abends und nächster Tag)
Gruß Matthias
Betrifft: kein Problem
von: Klaus
Geschrieben am: 04.01.2007 17:04:05
Hallo Matthias,
natürlich hast Du recht und alles ist gut.
Offensichtlich hatte sich um die Uhrzeit und nach div. Stunden
am Rechner ein Teil des Kleinhirns schon zur Ruhe begeben ;-)
Nochmals Danke
Klaus