Hallo Bernd,
mit Formeln ist das schwer ranzukommen, aber mit VBA kann man das in einer simplen Doppelschleife lösen:
Hier der Code:
Sub ZeitenBerechnen()
lngletzte = Cells(Rows.Count, 3).End(xlUp).Row
For i = lngletzte To 2 Step -1
For k = i - 1 To 1 Step -1
If Cells(k, "C") = Cells(i, "C") And Cells(k, "O") <> Cells(i, "O") Then
Cells(i, "Q") = Cells(k, "L") + Cells(k, "M") - Cells(i, "L") - Cells(i, "M")
Exit For
End If
Next k
Next i
End Sub
Dann die Spalte Q noch mit dem Zahlenformat [hh]:mm:dd formatieren und fertig.
Ich glaube du hast dich in Spalte P an einigen Stellen verrechnet, da du die Anlagen durcheinander gebracht hast. Wirst du im Vergleich zwischen Spalte P und Q sehen. So hast du z.B. die Zeit zwischen Anlage 9 in Zeile 11 und Anlage 1 in Zeile 10 mit 158:23:00 ausgerechnet. Stattdessen muss die Zeit bis zum nächsten Auftreten derselben Anlage mit anderem Stillstandscode (Zeile 9 - Zeile 11) berechnet werden. Ich denke daher, dass mein Code stimmt. Probier ihn aus.
Damit ist dann auch das gelegentliche doppelte Auftreten von 0 und 1 erklärt. Es handelst sich schlicht um verschiedene Anlagen die gleichzeitig ausfallen oder nacheinander wieder in den Normalzustand gelangen.
Gruß Mr. K.
|