Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 具体加班计算_Excel_Excel Formula - Fatal编程技术网

Excel 具体加班计算

Excel 具体加班计算,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

我正在做一个简单的时间表,应该计算超时间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小时的超期2


例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小时。尝试使用之前的公式后,在反向,但无法使其工作。