【发布时间】:2013-10-25 18:25:58
【问题描述】:
我有一个谜题,我多年来一直在尝试解决,但它完全超出了我的能力范围。
我有一个包含 3 列的电子表格。 A 列是教师 ID 号,B 列是他们的课程开始日期,C 列是他们的课程结束日期。每个讲师 ID 有多个课程。
我基本上是想回答这个问题,这位讲师在任何给定时间教授的最大课程数量是多少。 本质上,我需要为每个 ID 号找到最大、并发、重叠日期范围的数量。
问题是,虽然我知道如何找到重叠的日期范围,但我不知道如何计算并发课程的数量。
例如。 教师 115 列出了以下日期范围:
9/10/13 / 11/04/13 9/17/13 / 11/11/13 11/05/13 / 12/30/13 11/12/13 / 1/20/14虽然 2013 年 5 月 11 日的课程与 2013 年 9 月 17 日的课程和 2013 年 11 月 12 日的课程有重叠,但它们之间并没有重叠……所以这位讲师最多只教 2随时上课。
有没有办法编写一个函数来为每个 ID 返回最大数量的并发重叠日期范围?
编辑不是来自 OP 以从评论中传输详细信息:
我可以用几何方法解决这个问题,但我不知道如何在 VBA 函数中解决这个问题(我对编程还是很陌生)。如果我要在代码之外解决这个问题,我会为每个 ID 创建一个表,每天创建一个列。然后,我会为每个日期范围创建一行,在与范围重叠的每一列中标记一个 1。然后我会总结每天的总重叠。然后我会使用一个简单的 MAX 函数来返回最大数量的连续重叠。有没有办法在函数内部执行此操作而无需 Excel 物理绘制这些表?
【问题讨论】:
-
我可以用几何方法解决这个问题,但我不知道如何在 VBA 函数中做到这一点(我对编程还是很陌生)。如果我要在代码之外解决这个问题,我会为每个 Id 创建一个表,为每一天创建一个列。然后,我会为每个日期范围创建一行,在与范围重叠的每一列中标记一个 1。然后我会总结每天的总重叠。然后我会使用一个简单的 max 函数来返回最大数量的连续重叠。有没有办法在函数内部执行此操作而无需 excel 物理绘制这些表?
标签: excel date-range vba