Excel中计算含重叠的停机时段总时长的公式是什么?
停机时长去重叠计算方案
原始停机数据
| Outage Start | Outage End | Outage (mins) |
|---|---|---|
| 05/10/2021 15:00 | 05/10/2021 18:00 | 180 |
| 06/10/2021 16:00 | 06/10/2021 18:00 | 120 |
| 06/10/2021 17:00 | 06/10/2021 19:00 | 120 |
| 07/10/2021 16:00 | 07/10/2021 18:00 | 120 |
| 25/10/2021 08:00 | 25/10/2021 09:32 | 92 |
直接对第三列求和得到632分钟,因为6月10日的两条记录重叠了60分钟,所以正确总时长应为572分钟,以下是Excel实现方案:
方案1:全版本通用(辅助列法,操作简单)
- 选中所有数据,按*Outage Start(停机开始时间)*列升序排序,确保早发生的停机记录排在前面
- 假设你的开始时间存在A列,结束时间存在B列,数据从第2行到第6行,新增辅助列C,在C2单元格输入公式:
=MAX(0,B2-MAX(A2,N(B1)))*1440
- 将C2公式下拉到C6,对C列求和即可得到去重叠后的总停机时长
公式说明:N(B1)是为了兼容第一行公式,B1是表头时N函数会返回0,不会影响计算;MAX(A2,N(B1))会取当前行开始时间和上一行结束时间的最大值,自动跳过重叠时段
方案2:Excel 365/2021及以上版本(无需辅助列,单公式直接出结果)
直接在空白单元格输入以下公式即可自动计算:
=LET( st,SORT(A2:A6), et,SORTBY(B2:B6,A2:A6), pre_et,DROP(VSTACK(0,et),-1), SUM(MAX(0,et-IF(st>pre_et,st,pre_et))*1440) )
公式说明:自动按开始时间排序所有记录,计算每一行排除与上一行重叠后的有效时长,直接汇总得到最终结果
内容的提问来源于stack exchange,提问作者steviemac2000
相关产品推荐
相关产品推荐

