如何基于分钟级时间戳在Excel中按班次统计运行/停机时长
Excel按班次统计设备运行/停机时长及区间解决方案
一、数据预处理
确保时间戳列(假设为A列)是Excel可识别的日期时间格式,设备状态列(假设为B列)统一为“运行”/“停机”这类明确标识,避免模糊值。
二、新增班次划分列
在C列添加公式,自动判断每条数据所属班次:
=LOOKUP(MOD(A2,1),{0,7/24,15/24,1},{"夜班(23:00-7:00)","白班(7:00-15:00)","中班(15:00-23:00)"})
下拉填充整列,MOD(A2,1)提取时间部分,7/24对应7:00,15/24对应15:00,精准匹配班次区间。
三、标记连续状态区间
添加3个辅助列识别连续状态的起止时间:
- 状态组列(D列):标记连续相同状态的分组
下拉填充,相同连续状态会被分配同一组号。=IF(B2=B1,D1,D1+1) - 区间开始时间(E列):
仅在状态组变化时记录开始时间。=IF(D2<>D1,A2,"") - 区间结束时间(F列):
因为是分钟级数据,结束时间为当前时间+1分钟,仅在状态组即将变化时记录。=IF(D2<>D3,A2+TIME(0,1,0),"") - 区间时长(G列):
格式化为“小时:分钟”或直接以小时为数值(方便后续汇总)。=F2-E2
四、统计各班次时长与区间
方式1:数据透视表(直观高效)
- 选中所有数据,插入数据透视表。
- 行字段:班次、状态、区间开始时间、区间结束时间
- 值字段:区间时长(选择“求和”)
- 调整布局即可得到各班次下,每个运行/停机区间的时长及总时长。
方式2:公式直接汇总
用SUMIFS计算各班次各状态的总时长:
=SUMIFS(G:G,C:C,"白班(7:00-15:00)",B:B,"运行")
替换班次和状态关键词,即可得到对应总时长。
五、输出格式参考
整理成表格形式(可按需调整):
| 班次 | 设备状态 | 时间区间 | 单段时长 | 班次内总时长 |
|---|---|---|---|---|
| 白班(7:00-15:00) | 运行 | 2024/05/01 7:02 - 2024/05/01 9:15 | 2小时13分 | 6小时45分 |
| 白班(7:00-15:00) | 停机 | 2024/05/01 9:16 - 2024/05/01 10:03 | 47分 | 1小时15分 |
| 中班(15:00-23:00) | 运行 | 2024/05/01 15:00 - 2024/05/01 20:30 | 5小时30分 | 7小时20分 |
内容的提问来源于stack exchange,提问作者Nikhil
相关产品推荐
相关产品推荐

