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

Formula to check if working out of hours

我想知道是否有人在 'out of hours' 期间没有工作。

否则答案将是"No"。

有 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"))

如果有人可以建议如何更改公式以在周六和周日使用 'out of hours'?

不胜感激。

=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。希望以上公式有效。

由于您的 WEEKDAY(B2) 是从 1 点(星期日)到 7 点(星期六),您可以使用 CHOOSE 到 select Start/End 时间为您的 "In-Hours"期:

开始:=Choose(Weekday(B2),9,8,8,8,8,8,8)

结束:=Choose(Weekday(B2),17,21,21,21,21,21,17)

所以,如果HOUR(C2)>=开始,而HOUR(C2)<结束那么你就是"In-Hours"("No"),否则你就是"Out of Hours"("Yes")

=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")

当然,我会建议用一对VLOOKUP替换CHOOSE,并隐藏一个sheet,其中您列出工作日和 Start/End-of-Hours 小时。 (如果 老板 决定更改营业时间,更新起来会容易得多!)