【发布时间】:2015-09-10 15:00:05
【问题描述】:
我有两列日期/时间,需要找出在特定时间重叠的最大数量。
用例是这样的:这些是电话呼叫的开始时间和结束时间,我正在寻找同时通话的数量。
Column A Column B
8/06/15 00:17:00 8/06/15 00:19:00
8/09/15 00:20:00 8/09/15 00:30:00
8/09/15 00:25:00 8/09/15 00:40:00
8/09/15 00:35:00 8/09/15 00:50:00
8/09/15 00:45:00 8/09/15 00:55:00
8/09/15 00:46:00 8/09/15 00:52:00
预期结果:
Column A Column B Max Simultaneous
8/06/15 00:17:00 8/06/15 00:19:00 0
8/09/15 00:20:00 8/09/15 00:30:00 1
8/09/15 00:25:00 8/09/15 00:40:00 1
8/09/15 00:35:00 8/09/15 00:50:00 2
8/09/15 00:45:00 8/09/15 00:55:00 2
8/09/15 00:46:00 8/09/15 00:52:00 2
我正在尝试的公式是这样的:
=SUMPRODUCT((A$2:A$35006<=B2)*(B$2:B$35006>=A2))
问题在于,它计算了重叠的总数,即使在任何一点它们本身都没有重叠 - 大大增加了预期的结果。
我之前问得不好:
【问题讨论】:
-
您能详细说明一下吗?与您的用例相比,我不明白您想要的结果。
-
通过用例来思考是有帮助的。我有一个电话列表,我正在尝试确定我需要多少条电话线。通话在不同时间开始和结束,当它们重叠时,我需要另一条线。
-
让我直截了当地说:从 1 到 3 有一个电话,然后从 2 到 4 有另一个电话(所以有一个重叠)。下一个是从 2.5 到 5(3 个重叠)。下一个 6 到 7(不再重叠)。如果是这样,那么您预期结果中的第二行是错误的。
-
请进一步解释。 Max Simultaneous 计数似乎并不一致,即使在用例中也是如此。
-
第二行 [00:20:00 到 00:30:00] 与第三行从 00:25:00 到 00:30:00 相交,留下 1 个重叠。第三行 [00:25:00 到 00:40:00] 与第二行相交直到 00:30:00,然后再次与第四行从 00:35:00 开始相交,但由于第二行不相交对于第四行,第三行一次只有 1 个重叠。
标签: excel excel-formula date-range vba