Calcular los tiempos de doble sala

Calcular los tiempos de doble sala

Mi esposa usa Excel para realizar un seguimiento de las horas de trabajo de su equipo, pero todo esto es trabajo manual. ¿Hay alguna manera de permitir que Excel calcule cuando más de 2 personas trabajan en el mismo turno?

Lo complicado es que los turnos de las personas comienzan a diferentes horas pero a veces se superponen.

Los datos son los siguientes (hay muchos más empleados, pero esto muestra la distribución general):

ingrese la descripción de la imagen aquí

Respuesta1

La idea más simple (también lejos de cualquier optimización o calidad del código):

1) supongamos que podemos ignorar el breve descanso durante (por ejemplo, 10:00-14:00 14:15-18:00 es lo mismo que 10:00-18:00). esto lo hago en variablecambiotomando la primera y la última vez en una celda (y eliminando el colon).

2) cree una matriz de "minutos" en un día del 1 al 2400 (por lo que casi la mitad de la matriz no se usa en absoluto)

3) por cada "minuto" calcula cuántas personas estaban trabajando

Agregamos 1 al inicio del turno; de esta manera no contamos las superposiciones de límites (por ejemplo, si "A" comienza y "B" termina a las 12:00, esto no será una superposición)

Function shiftOverlaps(r As Range) As Integer
    Dim shiftStart As Integer
    Dim shiftEnd As Integer
    Dim shift As String
    Dim wholeDay(1 To 2400) As Integer

    shiftOverlaps = 0        

    For Each c In r
        shift = Replace(Left(Trim(c.Value), 5) & " " & Right(Trim(c.Value), 5), ":", "")
        If shift <> " " Then
            shiftStart = Left(shift, 4) + 1
            shiftEnd = Right(shift, 4)
            For i = 1 To 2400
                If i >= shiftStart And i <= shiftEnd Then
                    wholeDay(i) = wholeDay(i) + 1
                    If wholeDay(i) > shiftOverlaps Then
                        shiftOverlaps = wholeDay(i)
                    End If
                End If
            Next i
        End If
    Next c

    shiftOverlaps = shiftOverlaps - 1

End Function

Resultado de tu ejemplo

información relacionada