Excel 周六班次 penalty payment 加班费核算公式求助
周六加班Penalty津贴Excel公式实现
直接可用公式
仅计算12点后出勤总时长(小时单位)的公式:
=MAX(0, MIN(A4 - A3, TIME(23,59,59)) - MAX(A2, TIME(12,0,0))) * 24
如果需要直接得出Penalty Payment金额,假设小时费率存储在B1单元格,公式如下:
=MAX(0, MIN(A4 - A3, TIME(23,59,59)) - MAX(A2, TIME(12,0,0))) * 24 * 0.5 * B1
公式逻辑说明
MAX(A2, TIME(12,0,0)):取班次实际开始时间和周六12点的较大值,作为penalty时段的起始计算点MIN(A4 - A3, TIME(23,59,59)):先扣除休息时长得到班次实际工作结束时间,再和周六24点取较小值,作为penalty时段的结束计算点- 两者的差值用
MAX(0, 差值)处理,避免班次全在12点前时出现负数结果 - 乘以24是将Excel默认的「天」单位时间差转换为小时单位
- 乘以0.5对应penalty费率比正常费率高出的50%部分
示例验证
按照参考场景:周六9点开始8小时班次,A1=8,A2=9:00,A3=1(满足>5小时规则),A4=18:00
代入公式计算:penalty时段起始为12:00,结束为18:00-1=17:00,时长5小时,对应penalty payment为50.5小时费率,和示例描述完全一致。
边界场景兼容
- 班次全在12点前:公式返回0,无penalty津贴
- 班次跨12点:仅计算12点后的实际出勤时长
- 班次12点后才开始:全时段有效出勤时长都计入penalty核算
内容的提问来源于stack exchange,提问作者Melissa B
相关产品推荐
相关产品推荐

