You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel中是否有函数可按给定数据分组统计运行时长以计算TTF?

故障间隔分组计算TTF方案

首先先明确你的原始统计数据如下:

DateRunningSBPMDT
1-jan2400
2-jan00024
3-jan2400
4-jan2400
5-jan024

核心计算逻辑

判定规则: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值(小时)对应区间
1241月1日-1月2日
2481月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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 14:54:02