簡體   English   中英

在Excel中計算加班時間

[英]calculating overtime hours in excel

我正在嘗試制作如下計算加班時間的電子表格:如果任務在下午2點之后開始,則將小時計算為一個小時;如果任務在凌晨12點之后開始,則將小時計算為2小時。我編寫了以下公式在E欄中:

 =IF(AND(B5>G1;B5<G2);D5*D1;D5*D2)

但是我得到錯誤的結果,我哪里出錯了?

謝謝

在此處輸入圖片說明

您的公式的問題是您正在考慮將午夜12:00 AM。 或24:00。 如果查看G2,您將在Excel中看到12:00 AM或(24:00),它存儲為0。您的邏輯檢查是檢查是否小於零。 假設您從不處理負時間,則結果將始終為假,因為任何時間都不小於零。

我會稍微更改您的布局,並添加沒有加班的班次3。 當某人早上9點開始時會發生什么?

如果您必須保持原樣,我將在單元格D5中將您的公式更改為:

=HOUR(C5-B5)

然后確保單元格D1,D2,D5和E5都是通用格式,因為它們只是數字而不是實際時間。

下一組G2等於08:00

將E5中的公式更改為:

=IF(B5<G2,D5*D2,IF(B5>=G1,D5*D1,D5))
or
=D5*IF(B5<G2,D2,IF(B5>=G1,D1,1))

看看是否能進一步解決您的問題。

需要注意的一件事是,Excel以十進制格式存儲時間,這確實會讓您失望。 當您在一個單元格中看到12:00 PM時,您可能會認為自己正在處理12,但是excel在該單元格中實際存儲的是0.5,因為這是一天的一半。 如果將24:00作為公式的輸入提供,則Excel公式將其視為0。 VBA不會接受。 有效的Excel時間范圍是從00:00到23:59。

現在已經說過,如果您嚴格按照8小時制輪班,並且只關心開始時間,則可以簡單地執行if語句,說IF(開始時間=班次1開始時間,然后乘以班次1比率IF(開始時間=班次2的開始時間,然后乘以班次2的比率(無特殊比率))

如果您正在查看實際的開始時間,並且一個人開始一個班次但在下一個班次結束時,還有其他需要考慮的事情?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM