具体条件如下:1.假设下班时间为D1,当D1>22:00时,执行D1-22:00.
2.补贴时间是:22:00—次日7:00
3.执行时间减法后要将返回的结果转换成小数。
以上3个条件要同时在一个单元格内实现。
假设下班时间是24:30,当下班时间超过22点的时候,就有24:30-22:00=2:30的补贴工时。然而补贴工时是在22:00到次日7:00才会有的,也就是说不在这个时间段内没有工时补贴,没有工时补贴则记为0:00小时。但是算出来的结果又要换算成小数,也就是说2:30要换算成2.5小时。请各位高手帮帮忙哈。
假设数据如下图所示:
则在C2单元格输入公式:
=IF(IF(B2<(DATEVALUE(TEXT(A2,"yyyy-mm-dd"))+TIME(22,0,0)),0,B2-(DATEVALUE(TEXT(A2,"yyyy-mm-dd"))+TIME(22,0,0)))*24<9,IF(B2<(DATEVALUE(TEXT(A2,"yyyy-mm-dd"))+TIME(22,0,0)),0,B2-(DATEVALUE(TEXT(A2,"yyyy-mm-dd"))+TIME(22,0,0)))*24,9)
结果就是补贴工时
3个条件要在同一个单元格内实现。问题有补充,麻烦你帮我解答一下啦
追答假设E列为晚班补贴工时
在E1输入公式:
=if(or(d1>=--"22:00",d1<=--"7:00"),round(24*mod(d1-"22:00",1),2),)
下拉填充
这个表达式可行,但是还有点疑问。就是当某天我休息的时候,在上班和下班的单元格中填写:“休息”的时候就产生了错误,这个又该如何避免呢?
再加个判断语句,公式改成:
=if(isnumber(d1),if(or(d1>=--"22:00",d1=--"22:00",d1<=--"7:00"),round(24*mod(d1-"22:00",1),2),))