Excel中是否有函数可按给定数据分组统计运行时长以计算TTF?
故障间隔分组计算TTF方案
首先先明确你的原始统计数据如下:
| Date | Running | SB | PM | DT |
|---|---|---|---|---|
| 1-jan | 24 | 0 | 0 | |
| 2-jan | 0 | 0 | 0 | 24 |
| 3-jan | 24 | 0 | 0 | |
| 4-jan | 24 | 0 | 0 | |
| 5-jan | 0 | 24 |
核心计算逻辑
判定规则:DT>0的日期为故障节点,两个相邻故障节点之间的所有有效运行时长(Running列非空有效值)求和即为该段的TTF,首次故障前的运行时长为第一段TTF。
方案1:电子表格(Excel/WPS/Google Sheets)实现
适合少量数据快速计算:
- 新增辅助列
故障分组标记:从首行数据开始,当本行DT>0时,分组序号+1,否则继承上一行的分组序号,首行如果DT=0则默认标记为1。
示例公式(假设数据从第2行开始,DT在E列,辅助列在F列):F2=IF(E2>0,MAX(F$1:F1)+1,F1) - 新增
有效运行时长列:将Running列的空值转为0,公式:G2=IF(ISNUMBER(B2),B2,0) - 最后按
故障分组标记列对有效运行时长列求和,过滤掉故障当天(DT>0)的行数据即可得到各段TTF。
用你的样例数据计算结果如下:
| 故障分组 | TTF值(小时) | 对应区间 |
|---|---|---|
| 1 | 24 | 1月1日-1月2日 |
| 2 | 48 | 1月3日-1月5日 |
方案2:Python Pandas实现
适合批量处理大量数据:
import pandas as pd import numpy as np # 可替换为从csv/excel导入数据 df = pd.DataFrame({ 'Date': ['1-jan', '2-jan', '3-jan', '4-jan', '5-jan'], 'Running': [24, 0, 24, 24, np.nan], 'DT': [0, 24, 0, 0, 24] }) # 处理空值,转换Running列为数值格式 df['Running'] = pd.to_numeric(df['Running'], errors='coerce').fillna(0) # 生成故障分组标识:每次DT>0时分组号加1 df['fault_group'] = df['DT'].gt(0).cumsum().shift(1, fill_value=0) # 分组求和,排除故障当天的运行时长 ttf_result = df[df['DT'].eq(0)].groupby('fault_group')['Running'].sum().reset_index() ttf_result.columns = ['故障分组编号', 'TTF(小时)'] print(ttf_result)
运行后输出结果和电子表格计算结果完全一致。
内容的提问来源于stack exchange,提问作者chinna venkat
相关产品推荐
相关产品推荐

