Excel 具体加班计算
我正在做一个简单的时间表,应该计算超时间1和超时间2,我只是想不出一个好办法来解决它 正常工作日8小时,从07:00到17:00,不允许加班(例如07:00到16:00或08:00到17:00),但当时间超过8小时时,我希望在牢房中获得超过的小时数 我的业务规则是: 1) 在06:00到20:00之间超过8小时的任何工作都会被视为加班支付 2) 任何少于8小时的工作即使在20:00之后也不会产生任何超时2 3) 任何早于06:00或晚于20:00完成的工作均按超期费率支付报酬 示例1:从07:00工作到18:00将获得3小时的超时值1 例2:从14:00工作到22:00将产生0小时的超期2Excel 具体加班计算,excel,excel-formula,Excel,Excel Formula,我正在做一个简单的时间表,应该计算超时间1和超时间2,我只是想不出一个好办法来解决它 正常工作日8小时,从07:00到17:00,不允许加班(例如07:00到16:00或08:00到17:00),但当时间超过8小时时,我希望在牢房中获得超过的小时数 我的业务规则是: 1) 在06:00到20:00之间超过8小时的任何工作都会被视为加班支付 2) 任何少于8小时的工作即使在20:00之后也不会产生任何超时2 3) 任何早于06:00或晚于20:00完成的工作均按超期费率支付报酬 示例1:从07:0
例3:从05:00到21:00的工作时间将超过16小时和2小时(06:00前1小时,20:00后1小时)。这只是为了正确理解逻辑,并理解Excel将
07:00
视为等于7/24
的小数点
OT1
=IF(NOT(AND(Sheet1!$A2>=7/24,Sheet1!$B2<=17/24)),MIN(20/24,Sheet1!$B2)-Sheet1!$A2-9/24,0)
=IF(MIN(20/24,Sheet1!$B2)-Sheet1!$A2-9/24,MAX(B2-20/24,0),0)
如果数据布局巧妙,这是一个非常容易解决的问题。将A列作为时钟输入时间,B列作为时钟输出时间,将此公式用作辅助工具,以确定是否应使用时钟输入时间或06:00为基准:
=IF(A1层(A1,2)20/24,20/24,B1层(B1,2))
然后你减去这两个得到一天的分数,乘以24转换成小时,然后减去8得到超时小时。组合在一个超级公式中,它在C1中看起来是这样的:
OT1:
=IF(或(是空白的(A1),是空白的(B1)),“”,(如果(B1层(B1,2)>20/24,20/24,B1层(B1,2))-如果(A1层(A1,2)可能的重复是相关的,但不是重复。OP有可能的重复中没有的其他注意事项。这很好,但我如何添加6点钟之前的小时数?非常感谢您的帮助!我建议在另一个单元格中基于此原则,然后将早于0600的公式添加到上面的选项可获得您的总结果。单元格E1中的结果将是:如果(A1-FLOOR(A1,2)>=6/24,0,6-(A1-FLOOR(A1,2))*24)
。这将提供输入的早于0600的总小时数。几乎在那里:)当字段为空时(即未写入任何内容),我得到值6。是否有一个好方法?当然。在条件为空(A1)的情况下,用另一个IF语句包装整个内容。如下:IF(ISBLANK(A4),“”,IF(A4-FLOOR(A4,2)>=6/24,0,6-(A4-FLOOR(A4,2))
当我使用IF((IF(G4-FLOOR(G4;2)>20/24;20/24;G4)-(F4-FLOOR(F4;2)))*24-820/24;20/24;G4)-(F4层(F4;2))*24-8)
并且有01:00到17:00我将加班15小时,加班24小时,加班1应显示3小时。尝试使用之前的公式后,在反向,但无法使其工作。