Obliczanie czasu przestrzegania zmiany dla danej zmiany za pomocą VBA w programie Microsoft Excel

Anonim

W tym artykule utworzymy niestandardową funkcję lub UDF do obliczania czasu przestrzegania zmiany dla agentów.

Surowe dane dla tego przykładu składają się z identyfikatora agenta oraz czasu logowania i wylogowania każdego agenta w danym dniu. Zdefiniowaliśmy również czas rozpoczęcia i zakończenia zmiany.

Użyliśmy niestandardowej funkcji „TimeInterval” do obliczenia czasu przestrzegania zmiany. Ta funkcja przyjmuje jako dane wejściowe cztery parametry.

Funkcja TimeInterval (logowanie, wylogowanie, ShiftStartTime, ShiftEndTime)

Czas rozpoczęcia zmiany jest zdefiniowany w komórce C7, a czas zakończenia zmiany jest zdefiniowany w komórce C8.

Wyjaśnienie logiczne

Aby obliczyć czas przestrzegania zmiany, zmieniliśmy czas logowania na czas rozpoczęcia zmiany. Jeśli czas logowania jest wcześniejszy niż czas rozpoczęcia zmiany, czas rozpoczęcia zmiany będzie uważany za czas logowania. Jeśli czas wylogowania jest opóźniony niż czas zakończenia zmiany, czas zakończenia zmiany zostanie uznany za czas wylogowania. Teraz różnica między czasem logowania a czasem wylogowania da czas przestrzegania zmiany.

Proszę postępować zgodnie z poniższym kodem!

 Option Explicit Function TimeInterval(Login As Double, Logout As Double, _ ShiftStartTime As Double, ShiftEndTime As Double) 'Sprawdzanie, czy czas logowania jest krótszy niż czas wylogowania If Login > Logout Then TimeInterval = "Czas logowania powinien być krótszy niż czas wylogowania" Exit Funkcja End Jeśli 'Jeżeli logowanie jest krótsze niż czas rozpoczęcia zmiany, zmień czas logowania na czas rozpoczęcia zmiany If Login ShiftEndTime Then Logout = ShiftEndTime TimeInterval = Logout - Funkcja zakończenia logowania 

Jeśli podobał Ci się ten blog, podziel się nim ze znajomymi na Facebooku. Możesz również śledzić nas na Twitterze i Facebooku.

Chcielibyśmy usłyszeć od Ciebie, daj nam znać, jak możemy poprawić naszą pracę i uczynić ją lepszą dla Ciebie. Napisz do nas na stronie e-mail