Excel:以 30 分钟为间隔计算总计划

Excel: Count Total Schedules at 30 minute intervals

我正在尝试找到一种方法,根据他们的开始时间和结束时间,计算一天中每 30 分钟有多少人有空。

例如,如果有 4 个人在 7:00 上午进来,在 3:00 下午离​​开,3 个人在 8:00 上午进来,在 4:00 下午离​​开,那么这意味着;

7:00 AM = 4
7:30 AM = 4
8:00 AM = 7
8:30 AM = 7

等等。

当然,一旦 3:00 PM 来了,就会是这样的。

2:30 PM = 7
3:00 PM = 3
3:30 PM = 3

等等。

根据每个人的日程安排,我在 A 列 "Start Times" 和 B 列 "Exit Times"

这是一些示例时间表数据

In        Out
7:00 AM   3:00 PM
7:00 AM   1:00 PM
7:00 AM   3:00 PM
7:00 AM   3:00 PM
8:00 AM   1:00 PM
8:00 AM   2:00 PM
8:00 AM   4:00 PM
8:00 AM   4:00 PM
8:00 AM   4:00 PM
8:00 AM   4:00 PM
8:00 AM   4:00 PM
8:00 AM   2:00 PM
8:00 AM   3:00 PM
8:00 AM   4:00 PM
9:00 AM   4:00 PM
9:00 AM   5:00 PM
9:00 AM  5:00 PM
9:00 AM  5:00 PM
9:00 AM   5:00 PM
9:00 AM   5:00 PM
9:00 AM   5:00 PM
9:00 AM   5:00 PM
9:00 AM   5:00 PM
9:00 AM   5:00 PM
9:00 AM   5:00 PM
9:00 AM   5:00 PM
9:00 AM   5:00 PM
9:00 AM   5:00 PM
9:00 AM   5:00 PM
10:00 AM  6:00 PM
10:00 AM  6:00 PM
10:00 AM  6:00 PM
10:00 AM  6:00 PM
10:00 AM  6:00 PM

然后在 D 列上,我有以下格式的所有 24 小时 30 分钟间隔。

12:00 AM
12:30 AM
1:00 AM
1:30 AM
2:00 AM
2:30 AM
3:00 AM
3:30 AM
4:00 AM
4:30 AM
5:00 AM
5:30 AM
6:00 AM
6:30 AM
7:00 AM
7:30 AM
8:00 AM
8:30 AM
9:00 AM
9:30 AM
10:00 AM
10:30 AM
11:00 AM
11:30 AM
12:00 PM
12:30 PM
1:00 PM
1:30 PM
2:00 PM
2:30 PM
3:00 PM
3:30 PM
4:00 PM
4:30 PM
5:00 PM
5:30 PM
6:00 PM
6:30 PM
7:00 PM
7:30 PM
8:00 PM
8:30 PM
9:00 PM
9:30 PM
10:00 PM
10:30 PM
11:00 PM
11:30 PM

我可以手动执行此操作,但我试图通过简化操作来避免这种情况,只需将每个人的日程表复制粘贴到 A 列和 B 列中,然后将结果显示在 E 列中(D 旁边)

我一直在手动执行此操作,但是到达的人和时间表越多,继续手动计算会变得更加令人沮丧。

我不介意这是否可以使用公式或 VBA 来完成。

到目前为止,我唯一能做的就是计算每小时开始多少次 =COUNTIF(A:A, D2) 以及每小时结束多少次 =COUNTIF(B:B, D2)它只是让其余的手动工作变得更容易,但除此之外,我想不出一种方法来完成前面提到的所有事情。

提前致谢,

尝试在 E2 中使用 COUNTIFS 向下复制 - 假设所有班次都在同一天

=COUNTIFS(A:A,"<="&D2,B:B,">"&D2)

如果你有像 18:00-02:00 这样的午夜班次,那么试试这个版本

=SUMPRODUCT(((A:A00<=D2)+(B:B00>D2)+(A:A00>B:B00)=2)+0)

假设最多1000行数据,按需调整