回覆列表
  • 1 # 使用者6332509815417

    可以的,這個公式不難,而且你已經把條件都說出來的。

    具體實現方式如下:

    1-先將日期和時間拆分出來

    這一步使用到的函式都比較簡單,就是Left(),Right(),Mid(),將字串割開,當然也可以是用“資料”-“分列”

    2-計算加班時間

    設定單元格格式入土所示

    加班時間=(中午打卡-早上打卡)+(下午打卡-中午打卡)-上班時間

    =(H3-G3)+(I3-H3)-J3

    3-加班時間

    按照你說的8點上班然後15:20下班,上班週期是9小時20分,因此要減去這9小時20分

    4-最後得出,加班時間為1:27分鐘

    5-按照你的要求,超過15分鐘按0.25小時計算

    要先提取出加班時長的小時和分鐘

    取出小時用Hour()函式,取出分鐘用Minute()函式

    獲取小時

    =HOUR(((H3-G3)+(I3-H3)-J3))

    獲取分種

    =MINUTE((H3-G3)+(I3-H3)-J3)

    根據你提出的條件還需要新增一個公式 =if(分鐘<30 and 分鐘>15,0.25小時,0)

    最後就得到加班的時間。當你把這所有邏輯都理解了,你可以一步到位直接算出加班小時

    公式如下:

    =HOUR(((H3-G3)+(I3-H3)-J3))+IF(AND(MINUTE(((H3-G3)+(I3-H3)-J3))>15,MINUTE(((H3-G3)+(I3-H3)-J3))<30),0.25,0)

    其實個人理解,應該是用加班時間/60來按區間取值,如果加班40分鐘是0.5小時還是算0.6小時,還是0.7小時呢 ?

    分割線---------------------------------------------------------------------------------------

    我仔細研究了一番,如果你所有的資料格式都固定,確實可以自定義個一個VBA 的Function()

    就像在表格中使用SUM函式的方式一樣。

  • 中秋節和大豐收的關聯?
  • 勇士隊今年能奪冠嗎?為什麼?