将时间跨度转换为离散步骤

将时间跨度转换为离散步骤

我有一份 Excel 表,上面记录了一些工作(或任何项目/操作)及其开始和结束日期。现在,我需要知道一天中每一分钟有多少工作处于活动状态。

因此输入如下所示:

Jobname |        Start        |         End          
---------------------------------------------------      
JobA    | 04/10/2015 08:00:00 | 04/10/2015 09:00:00
JobB    | 04/10/2015 10:00:00 | 04/10/2015 10:00:59
JobC    | 04/10/2015 10:00:00 | 04/10/2015 11:00:00

输出应如下所示:

笔记:只是为了清楚起见添加了作业名称,在实际输出中,我只对每分钟活跃的作业数量感兴趣,而不是哪些作业处于活跃状态

Time                | Number of active jobs
---------------------------------------------------      
04/10/2015 00:00:00 | 0
[..]
04/10/2015 08:00:00 | 1 (JobA)
04/10/2015 08:01:00 | 1 (JobA)
[..]
04/10/2015 09:00:00 | 1 (JobA)
04/10/2015 09:01:00 | 0
[..]
04/10/2015 09:59:00 | 0
04/10/2015 10:00:00 | 2 (JobB, JobC)
04/10/2015 10:01:00 | 1 (JobC)
[..]
04/10/2015 11:00:00 | 1 (JobC)
04/10/2015 11:01:00 | 0
[..]
04/10/2015 23:59:00 | 0

有人能帮我如何使用 Excel 进行这种数据转换吗?谢谢!

答案1

活跃职位数量

您可以使用以下方法计算行数:

=COUNTIFS(Table1[Start],"<="&[@Time],Table1[End],">="&[@Time])

上述公式仅当数据范围为桌子(按 将范围转换为表格Ctrl+T)命名Table1(按 重命名Alt, m, n),并且您想要的输出范围也是一个表格。

如果不将范围转换为表格,则应该引用A1单元格或B:B整个列的范围。

时间

该列包含分钟。第一行输入的是您想要的第一个分钟。在后续行中,可以通过将一分钟添加到前面的行来计算分钟:

=A2+TIME(0,1,0)

评论

  1. 使用COUNTIFS可能非常慢的
  2. 我不确定增加一分钟是否会累积浮点错误任何案件。
  3. 如果您的数据确实与您输入的内容相似(分隔带有竖线),你可能还需要文本分列 Alt, A, E

相关内容