Berechnung der Schichteinhaltungszeit für eine bestimmte Schicht mit VBA in Microsoft Excel

Anonim

In diesem Artikel erstellen wir eine benutzerdefinierte Funktion oder UDF, um die Schichteinhaltungszeit für die Agenten zu berechnen.

Die Rohdaten für dieses Beispiel bestehen aus der Agenten-ID sowie der Anmelde- und Abmeldezeit jedes Agenten für den Tag. Außerdem haben wir die Schichtbeginn- und Schichtendezeit definiert.

Wir haben die benutzerdefinierte Funktion „TimeInterval“ verwendet, um die Schichteinhaltungszeit zu berechnen. Diese Funktion verwendet vier Parameter als Eingabe.

Funktion TimeInterval(Login, Logout, ShiftStartTime, ShiftEndTime)

Die Startzeit der Schicht wird in Zelle C7 definiert und die Endzeit der Schicht wird in Zelle C8 definiert.

Logikerklärung

Um die Schichteinhaltungszeit zu berechnen, haben wir die Anmeldezeit in die Schichtbeginnzeit geändert. Wenn die Anmeldezeit vor der Schichtbeginnzeit liegt, wird die Schichtbeginnzeit als Anmeldezeit betrachtet. Wenn die Abmeldezeit später als die Endzeit der Schicht liegt, wird die Endzeit der Schicht als Abmeldezeit betrachtet. Der Unterschied zwischen der Anmelde- und Abmeldezeit ergibt nun die Schichteinhaltungszeit.

Bitte folgen Sie unten für den Code

 Option Explizite Funktion TimeInterval(Login As Double, Logout As Double, _ ShiftStartTime As Double, ShiftEndTime As Double) 'Überprüfen, ob die Anmeldezeit kürzer als die Abmeldezeit ist If Login > Logout Then TimeInterval = "Anmeldezeit sollte kleiner als die Abmeldezeit sein" Beenden Funktionsende Wenn 'Wenn die Anmeldung kürzer als die Startzeit der Schicht ist, dann wird die Anmeldezeit auf die Startzeit der Schicht geändert. Wenn Anmeldung ShiftEndTime Then Logout = ShiftEndTime TimeInterval = Logout - Login End Function 

Wenn Ihnen dieser Blog gefallen hat, teilen Sie ihn mit Ihren Freunden auf Facebook. Außerdem können Sie uns auf Twitter und Facebook folgen.

Wir würden uns freuen, von Ihnen zu hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns auf der E-Mail-Site