说出单元格 A3 ='< 12:00 PM' 和 B3 ='< 39'
此公式将返回&#39; <&#39; , 6小时工作。
=IF(ISERROR((TIMEVALUE(B3)-TIMEVALUE(A3))*24),"0",(TIMEVALUE(B3)-TIMEVALUE(A3))*24)
但是,我希望公式减去休息时间以便工作一段时间。 比如说:
4.5小时=无变化
5-7小时=减去0.5小时(30分钟)
7+小时=减去1小时
我可以在上面的代码中添加什么来实现这个目标?
答案 0 :(得分:2)
Does this formula work as you want:
=IF(ISERROR((TIMEVALUE(B3)-TIMEVALUE(A3))*24),"0",(TIMEVALUE(B3)-TIMEVALUE(A3))*24)-LOOKUP((TIMEVALUE(B3)-TIMEVALUE(A3))*24,{0,0;5,0.5;7,1})
答案 1 :(得分:0)
您可以使用嵌套的if语句 - 这很邋but但您可以复制并粘贴到同一个单元格中(但可能会根据数据的开始位置更改行号):
=如果(IF(ISERROR((TIMEVALUE(B1)-timevalue(A1))* 24), “0”,(TIMEVALUE(B1)-timevalue(A1))* 24)&LT; 4.5,如果(ISERROR ((TIMEVALUE(B1)-timevalue(A1))* 24), “0”,(TIMEVALUE(B1)-timevalue(A1))* 24)中,如果(和(如果(ISERROR((TIMEVALUE(B1)-timevalue (A1))* 24), “0”,(TIMEVALUE(B1)-timevalue(A1))* 24)大于5,如果(ISERROR((TIMEVALUE(B1)-timevalue(A1))* 24),” 0" ,(TIMEVALUE(B1)-timevalue(A1))* 24)&LT; 7)中,如果(ISERROR((TIMEVALUE(B1)-timevalue(A1))* 24), “0”,(TIMEVALUE(B1) -timevalue(A1))* 24)-0.5,如果(IF(ISERROR((TIMEVALUE(B1)-timevalue(A1))* 24), “0”,(TIMEVALUE(B1)-timevalue(A1))* 24 )&GT; = 7,如果(ISERROR((TIMEVALUE(B1)-timevalue(A1))* 24), “0”,(TIMEVALUE(B1)-timevalue(A1))* 24)-1,如果(ISERROR( (TIMEVALUE(B1)-timevalue(A1))* 24), “0”,(TIMEVALUE(B1)-timevalue(A1))* 24))))
更简洁的方法是为每个中断间隔创建额外的列(例如,列C仍然计算未调整的工作时间,但如果列C介于5和7之间,则添加等于-0.5的列D,并添加如果列C大于7,则列E等于-1,然后列F添加列C,D和E)