Calcular el tiempo de cambio para la adhesión turno dado con VBA en Microsoft Excel
En este artículo, crearemos una función personalizada o UDF para calcular el tiempo de cumplimiento de turno de los agentes.
Los datos sin procesar para este ejemplo consisten en la identificación del agente junto con la hora de inicio y cierre de sesión de cada agente para el día. También hemos definido la hora de inicio y finalización del turno.
Hemos utilizado la función personalizada «TimeInterval» para calcular el tiempo de cumplimiento del turno. Esta función toma cuatro parámetros como entrada.
Función TimeInterval (Iniciar sesión, Cerrar sesión, ShiftStartTime, ShiftEndTime)
La hora de inicio del turno se define en la celda C7 y la hora de finalización del turno se define en la celda C8.
Explicación lógica
Para calcular el tiempo de cumplimiento del turno, hemos cambiado el tiempo de inicio de sesión para cambiar el tiempo de inicio. Si la hora de inicio de sesión es anterior a la hora de inicio del turno, la hora de inicio del turno se considerará como hora de inicio de sesión. Si la hora de cierre de sesión es posterior a la hora de finalización del turno, la hora de finalización del turno se considerará como hora de cierre de sesión. Ahora, la diferencia entre el tiempo de inicio de sesión y el de cierre de sesión dará tiempo de cumplimiento del turno.
Siga el código a continuación
Option Explicit Function TimeInterval(Login As Double, Logout As Double, _ ShiftStartTime As Double, ShiftEndTime As Double) 'Checking whether login time is less than logout time If Login > Logout Then TimeInterval = "Login time should be less than logout time" Exit Function End If 'If login is less than shift start time then changing login time to shift start time If Login < ShiftStartTime Then Login = ShiftStartTime 'If logout is greater than shift end time then changing logout time to shift end time If Logout > ShiftEndTime Then Logout = ShiftEndTime TimeInterval = Logout - Login End Function
Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]