我试图找到一种方法来计算一天中每隔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点到了,它就会是这样的。
2:30 PM = 7
3:00 PM = 3
3:30 PM = 3
等等。
根据每个人的日程安排,我有一个列是“开始时间”,B一个列是“退出时间”
下面是一些示例计划数据
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),这只是让剩下的手工工作变得更容易,但除此之外,我想不出一种方法来完成前面提到的所有工作。
提前感谢,
1条答案
按热度按时间5vf7fwbs1#
尝试在E2中使用
COUNTIFS
复制下来-假设所有班次都在同一天=COUNTIFS(A:A,"<="&D2,B:B,">"&D2)
如果你有像
18:00-02:00
一样过午夜的轮班,那么试试这个版本=SUMPRODUCT(((A$2:A$1000<=D2)+(B$2:B$1000>D2)+(A$2:A$1000>B$2:B$1000)=2)+0)
假设最多有1000行数据,根据需要进行调整