从时间列表中查找同时进行的活动数量

从时间列表中查找同时进行的活动数量

我有一份包含地点、开始时间和结束时间的活动列表。我想找出每个地点同时进行的活动数量。我找到了使用 sumproduct 来计算给定活动与多少其他活动重叠的方法,但这种方法得出的数字不正确,因为这些活动可能不会同时重叠。

答案1

作为起点,您可以使用以下数组公式对每小时的活动进行分类或计数

=MMULT(RANDARRAY(1,COUNT(startrange),1,1,TRUE),BITAND({8,9,10,11,12,13,14,15,16,17}<=endrange,{8,9,10,11,12,13,14,15,16,17}>=startrange))

这将输出一个 1x10 数组(代表 8h00 到 17h00 的时间)并计算每小时发生的事件数。起始范围结束范围仅是小时数的开始和结束时间的列引用(其中=HOUR(B2)B2 是 Excel 时间序列号)。

按小时计算更有意义,否则您必须将每个计划的活动相互比较。如果三项活动相互重叠,则将计为 6 项同时进行的活动。要将其扩展到仅针对选定地点进行计数,请说“place1”:

=MMULT(RANDARRAY(1,COUNT(startrange),1,1,TRUE),BITAND({8,9,10,11,12,13,14,15,16,17}<=endrange*(places="place1"),{8,9,10,11,12,13,14,15,16,17}>=startrange))

地点所有位置的列引用(长度相等结束范围起始范围)。

附言:在 Excel 365 之前的版本中,您必须使用 CTRL+SHIFT+ENTER 输入公式,以向 Excel 表明这是一个数组公式。

相关内容