In questo articolo creeremo una funzione personalizzata o UDF per calcolare il tempo di aderenza del turno per gli agenti.

I dati grezzi per questo esempio sono costituiti dall’ID agente insieme all’ora di accesso e disconnessione di ciascun agente per la giornata. Abbiamo anche definito l’ora di inizio e di fine turno.

ArrowRawData

Abbiamo utilizzato la funzione personalizzata “TimeInterval” per calcolare il tempo di aderenza del turno. Questa funzione accetta quattro parametri come input.

Funzione TimeInterval (Login, Logout, ShiftStartTime, ShiftEndTime)

L’ora di inizio del turno è definita nella cella C7 e l’ora di fine del turno è definita nella cella C8.

ArrowOutput

Spiegazione logica

Per calcolare l’ora di aderenza del turno, abbiamo modificato l’ora di accesso all’ora di inizio del turno. Se l’ora di accesso è precedente all’ora di inizio del turno, l’ora di inizio del turno verrà considerata come ora di accesso. Se l’ora di logout è in ritardo rispetto all’ora di fine del turno, l’ora di fine del turno sarà considerata come l’ora di logout. Ora, la differenza tra il tempo di accesso e quello di disconnessione darà il tempo di adesione del turno.

Segui sotto per il codice

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

Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.

Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]