Google Sheets工时表计算:扣除午餐、添加加班及小数小时转换
解决Excel工时表计算(小数小时+加班+午餐扣除)问题
我来帮你搞定这个工时计算的问题,核心是把时间差转换成小数小时再运算,这样后续加加班、求和都方便多了。
1. 基础工时(扣除午餐)的小数转换
你之前的公式得到时间格式,是因为Excel里时间差默认按「天」存储(比如8小时就是8/24≈0.333天)。要转成小数小时,直接把时间差乘以24就行,再减去0.5小时的午餐时间:
假设你的ShiftStart在A列,Shiftend在B列,基础工时(扣除午餐)的公式是:
=(B2 - A2)*24 - 0.5
比如A2是07:30,B2是15:30,计算过程是(8小时)*24/24 - 0.5 = 8 - 0.5 = 7.5,直接得到小数形式的7.5小时。
2. 计算每日总工时(基础+加班)
把上面的基础工时和C列的Overtime(已为小数,比如0.5)相加,就是TotalHours:
=((B2 - A2)*24 - 0.5) + C2
对应你的示例:
- 第一行:
(8-0.5)+0.5 = 8 - 第二行:
7.5 + 0.75 = 8.25 - 以此类推,完全匹配你给出的结果。
3. 设置单元格格式,确保显示小数
别忘了把TotalHours列的单元格格式改成「数字」或「常规」(右键单元格→设置单元格格式→数字选项卡选数字,保留2位小数即可)。如果设成时间格式,8会显示成08:00,这就是你之前遇到的问题。
4. 求和月度/周总工时
直接用SUM函数对TotalHours列求和就行,比如你的示例里总周工时:
=SUM(D2:D7)
会自动算出52.25,完全符合需求。
额外提示:跨天班次也能处理
如果你的班次有跨天的情况(比如22:00到次日06:00),这个公式依然有效,Excel会自动计算跨天的时间差,乘以24后得到正确的小时数,再扣除午餐、加加班就好。
内容的提问来源于stack exchange,提问作者Ken Pollard
相关产品推荐
相关产品推荐

