【发布时间】:2022-01-25 16:13:18
【问题描述】:
我正在尝试检查图片中的以下时间是否在军事时间 0930 - 1430 的某个核心小时内。这会中断,因为您没有在 930 打卡,因此错过了半小时的核心时间。
目前我正在使用 min/max 来检查那些在本示例之前有效的列。任何想法都会很棒!
这是一个例子:
这是输出的样子(即使数学是错误的。
应该说 CR Missed=1.5(核心时间从 930 开始,打卡时间是 11)。
我正在使用的当前代码
=IF(AND(COUNTA(J8:J12)<>0,COUNTA(K8:K12)<>0),IF(AND($AQ$15>=MIN(J8:J12),$AR$15<=MAX(K8:K12)),"","CR Missed = "),"")
编辑:总和不相关(它只是添加时间)AQ=0930 和 AR=1430(“核心时间”的范围)
基本上,您可以在每一行中输入不同的时间,我试图确保您在 0930 和 1430 的所需时间之间“登录”。目前,最小/最大方程有效,但不涵盖所示示例我实际上错过了 30 分钟(在 0900 注销并在 1000 重新登录)。
我觉得我缺少一些逻辑或命令。抱歉,希望对您有所帮助。
来自评论并增加清晰度,添加了输出示例
- 可以有更多行;我最多有 5 个(只是隐藏)
- 时间不一定要按顺序排列,但通常是这样输入的。
- 不,这些在技术上是不同的时间码(请假/病假/常规),例如,您不会重叠病假和请假
已解决
感谢大家的帮助!
我最终使用的函数是 Ron 的示例,但有所不同。正如他的例子所示,在一个时间范围内工作了多少小时;我想显示有多少人失踪了;而且由于可能会发生多次签入/签出,因此我只覆盖了所有可用的插槽。
=ABS((5-(MAX(MIN(EndTime,K9)-MAX(StartTime,J9),0)*24))-(5-(MAX(MIN(EndTime,K10)-MAX(StartTime,J10),0)*24)))
因此,这将为我提供多次入住和退房所需时间间隔之间错过的小时数。
【问题讨论】:
-
您能否详细说明应该发生的事情,您的
IF声明目前是做什么的?总和是否相关?另外,AQ15 和 AR15 指的是什么? -
我更新了我的主要帖子,但基本上该代码应该显示“错过的核心时间”,如果您输入的时间不包括 0930-1430 间隔,如果您没有错过它们,那么它显示为空白
-
好的,所以 9:30 到 14:30 之间的每一分钟都需要被“RG”、“TS”和“LG”覆盖。而且因为 9:00 和 10:00 之间有间隔,所以 30 分钟不是“核心时间”。好的,我再试一次。
-
需要更多信息:是否可以多于(或少于)3 行时间?它们总是按时间顺序排列吗?一行的开始时间可以早于前一行的结束时间吗?
-
对不起,不够清晰 1.) 可以有更多的行;我最多有 5 个(只是隐藏) 2.)时间不必按顺序排列,但通常就是这样输入的。 3.) 不,这些在技术上是不同的时间代码(请假/生病/常规)例如,您不会重叠生病和请假