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行数据,按需调整
我正在尝试找到一种方法,根据他们的开始时间和结束时间,计算一天中每 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行数据,按需调整