我有一个数据集,开始时间在 B 列,结束时间在 C 列。我目前正在使用 sumproduct 公式 (=SUMPRODUCT(($B2<"07:00")*($C2>="07:59")))
确定 start/end
时间在时间范围内(i.e. 07:00 to 07:59, 08:00 to 08:59, etc.)
.在 sumproduct 公式中,时间只是示例(我将以数字格式填充时间)。
我之前已经看过 sumproduct 并且已经过尝试和测试,但是我还没有找到一个公式可以完成所有这些并说明开始时间是否在午夜之前但结束时间是在午夜之后。
该数据集用于从开始到结束运行的事件,如果事件在任何给定时间间隔内运行,我最终想通过放置 0/1 来确定该事件运行的时间范围。
迄今为止,我唯一的解决方法是应用 sumproduct 公式,然后过滤跨越午夜的事件并相应地调整公式。
对此的任何帮助将不胜感激。提前感谢您的宝贵时间。
最佳答案
首先,我认为您不需要 sumproduct,因为您不需要处理任何需要求和的范围,因此您可以将公式缩短为 ($B2>"07:00")*($C2<="07:59")
.注意我也颠倒了符号,所以它实际上是在 7:00-7:59 之间,除非 07:00 和 07:59 存储在一个单元格中,否则该公式也不起作用,因为正如所写的那样,它是将一个数字与一个数字进行比较文本字符串并且不会返回正确的值。
对于您的实际问题,您需要功能的第二部分
=if(end<start,(B2<end)+(B2>start),(B2>start)*(B2<=end))
如果结束时间小于开始时间,则假定它已超过午夜,因此您的时间需要在开始时间之后或结束时间之前。如果它不在午夜左右,它必须在它们两者之间。
关于excel - 开始/结束时间在范围内(并跨越午夜),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24392280/