用于检查是否在工作时间工作的公式

时间:2018-03-05 10:23:12

标签: excel excel-formula excel-2016

我试图找出某人是否在“非工作时间”工作。

  • 如果是星期一到星期五,不是在上午8点到晚上9点之间,那么答案就是“是”
  • 如果是星期六,而不是在上午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"))

如果有人可以建议如何更改公式以适应周六和周日的“非工作时间”?

非常感谢。

2 个答案:

答案 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。希望以上公式可行。