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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于检查是否在工作时间工作的公式相关的知识,希望对你有一定的参考价值。

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

  • 如果周一到周五,不是在上午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"))

如果有人可以建议如何改变公式,以便在周六和周日使用“非工作时间”?

这将不胜感激。

答案
=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为您的“工作时间”期间选择开始/结束时间:

开始:=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")

当然,我建议用一对CHOOSEs替换VLOOKUPs,并在其中列出工作日和开始/结束时间小时的隐藏工作表。 (如果老板决定改变小时数,那么更容易更新!)

以上是关于用于检查是否在工作时间工作的公式的主要内容,如果未能解决你的问题,请参考以下文章

无法从 onListItemClick 开始片段

当单元格被公式更改时,VBA 代码不运行

Facebook状态回调不适用于片段

带有复选框和自定义适配器的 ListView,片段无法正常工作

将 Excel 条件格式公式调整为选定范围

用于检查值是不是存在的 Excel 公式,否则不显示任何内容 - 也使用条件格式