Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
600to604
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
600to604
600to604
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Time Overlap

Time Overlap
26.04.2005 12:18:01
Marc
Hallo. Ich hab folgendes Problem zu lösen und seh noch keinen praktischen Ausweg:
Ich möchte berechnen, um wieviele Stunden sich zwei Zeitbereiche überlappen, wobei der 1. Bereich einen fixen Corridor darstellt (i.e. 23:00h bis 6:00h - 'Nachtarbeit'), der 2. Bereich ein beliebiger Zeitraum (effektive Arbeitszeit eines Mitarbeiters) ist, der mit dem 1. Bereich vollständig, teilweise (am Anfang oder am Schluss) oder aber auch gar nicht überlappen kann.
Bsp.:
..........Start....Stop....Overlap
Korridor:.23:00....06:00
MA 1:.....07:45....14:30...0.0
MA 2: 14:10 24:00 1.0
MA 3: 23:30 05:20 5.83
MA 4: 03:30 11:20 2.5
MA 5: 22:00 07:00 7.0
Könnt Ihr mir da weiterhelfen? - Herzlichen Dank! - marc

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Time Overlap
26.04.2005 12:29:22
Herbert
Hallo Marc,
das ist die Lösung deines Problems
 
 ABCDE
1Nachtschicht:BeginnEnde  
2 23:0006:00  
3     
4Arbeitszeit:    
5BeginnEndeGesamtdavon Nacht-Std.Ind.-Std. Nacht
607:4514:3006:4500:000,00
714:1000:0009:5001:001,00
823:3005:2005:5005:505,83
903:3011:2007:5002:302,50
1022:0007:0009:0007:007,00
Formeln der Tabelle
C6 : =REST(B6-A6;1)
D6 : =MAX(;MIN(B6+(A6>B6);MAX((B$2>C$2);C$2))-MAX(A6;B$2))+MAX(;MIN(B6;MAX((B$2>C$2);C$2))-MAX(;B$2))*(A6>B6)+MAX(;MIN(B6+(A6>B6);MIN((B$2>C$2);C$2))-MAX(A6;))+MIN(B6;MIN((B$2>C$2);C$2))*(A6>B6)
E6 : =D6*24
C7 : =REST(B7-A7;1)
D7 : =MAX(;MIN(B7+(A7>B7);MAX((B$2>C$2);C$2))-MAX(A7;B$2))+MAX(;MIN(B7;MAX((B$2>C$2);C$2))-MAX(;B$2))*(A7>B7)+MAX(;MIN(B7+(A7>B7);MIN((B$2>C$2);C$2))-MAX(A7;))+MIN(B7;MIN((B$2>C$2);C$2))*(A7>B7)
E7 : =D7*24
C8 : =REST(B8-A8;1)
D8 : =MAX(;MIN(B8+(A8>B8);MAX((B$2>C$2);C$2))-MAX(A8;B$2))+MAX(;MIN(B8;MAX((B$2>C$2);C$2))-MAX(;B$2))*(A8>B8)+MAX(;MIN(B8+(A8>B8);MIN((B$2>C$2);C$2))-MAX(A8;))+MIN(B8;MIN((B$2>C$2);C$2))*(A8>B8)
E8 : =D8*24
C9 : =REST(B9-A9;1)
D9 : =MAX(;MIN(B9+(A9>B9);MAX((B$2>C$2);C$2))-MAX(A9;B$2))+MAX(;MIN(B9;MAX((B$2>C$2);C$2))-MAX(;B$2))*(A9>B9)+MAX(;MIN(B9+(A9>B9);MIN((B$2>C$2);C$2))-MAX(A9;))+MIN(B9;MIN((B$2>C$2);C$2))*(A9>B9)
E9 : =D9*24
C10 : =REST(B10-A10;1)
D10 : =MAX(;MIN(B10+(A10>B10);MAX((B$2>C$2);C$2))-MAX(A10;B$2))+MAX(;MIN(B10;MAX((B$2>C$2);C$2))-MAX(;B$2))*(A10>B10)+MAX(;MIN(B10+(A10>B10);MIN((B$2>C$2);C$2))-MAX(A10;))+MIN(B10;MIN((B$2>C$2);C$2))*(A10>B10)
E10 : =D10*24
 

Gruß Herbert
Anzeige
AW: Time Overlap
27.04.2005 10:53:34
Marc
Herzlichen Dank für die super schnelle Antwort (die ich leider erst heute gesehen habe)! In der Zwischenzeit hab ich auch schon eine eigene Lösung gefunden, die ganz anders aussieht - falls es dich interessiert:
Overlap = AboveZero(B-a) - AboveZero(B-b) - AboveZero(A-a); where [A, B] is the actual working time, [a, b] is the corridor, and AboveZero is a Routine defined as:

Function AboveZero(Int1 As Integer) As Integer
AboveZero = Int1 / 2 + Abs(Int1) / 2
End Function

Liebe Grüsse und nochmals herzlichen Dank! marc

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige