我试图找出某人是否在“非工作时间”工作。
如果是星期六,而不是在上午8点到下午5点之间的答案 将是“是”
如果是星期天,而不是在上午9点到下午5点之间的答案 将是“是”。
否则答案是“否”。
有4列:1。人名(A)2。日期(B)3。时间(C)4。非工作时间(D)
我已经复制了下面的公式,该公式在星期一到星期五正常工作,但我正在努力解决周末的第二部分问题。
=IF(OR(WEEKDAY(B2)=1,WEEKDAY(B2)=7),"Yes",IF(AND(C2>=8/24,C2<21/24),"No","Yes"))
如果有人可以建议如何更改公式以适应周六和周日的“非工作时间”?
非常感谢。
答案 0 :(得分:0)
由于您的WEEKDAY(B2)
将从1(星期日)到7(星期六),您可以使用CHOOSE
选择“工作时间”期间的开始/结束时间:
开始:=Choose(Weekday(B2),9,8,8,8,8,8,8)
结束:=Choose(Weekday(B2),17,21,21,21,21,21,17)
因此,如果HOUR(C2)
为>=
开始,HOUR(C2)
为<
结束,那么您就是“小时“(”否“),否则你是”超时“(”是“)
=IF(AND(HOUR(C2)>=CHOOSE(WEEKDAY(B2),9,8,8,8,8,8,8), HOUR(C2)<CHOOSE(WEEKDAY(B2),17,21,21,21,21,21,17)),"No","Yes")
当然,我建议用一对CHOOSE
替换VLOOKUP
s,并在其中列出工作日和开始/结束的隐藏工作表小时数。 (如果 The Boss 决定改变小时数,那么更容易更新!)
答案 1 :(得分:-1)
=IF(WEEKDAY(B2)=7,IF(OR(C2<TIMEVALUE("8:00"),C2>TIMEVALUE("17:00"))=TRUE,"Yes","No"),IF(WEEKDAY(B2)=1,IF(OR(C2<TIMEVALUE("9:00"),C2>TIMEVALUE("17:00"))=TRUE,"Yes","No"),IF(WEEKDAY(B2)<>1,IF(OR(C2<TIMEVALUE("8:00"),C2>TIMEVALUE("21:00"))=TRUE,"Yes","No"),"No")))
您必须使用嵌套的ifs。希望以上公式可行。