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

Tibco Spotfire组合图表:无需新增计算列实现UCL计算

解决Tibco Spotfire组合图中无需新建计算列的UCL计算问题

要在不创建新计算列的前提下计算UCL,核心思路是把你原来两个度量的完整逻辑(包括条件判断)直接内联到UCL的公式中,这样就能复用相同的条件判断逻辑,同时完成UCL的计算。

先明确你原来的两个度量逻辑

首先拆解你给出的两个公式的核心逻辑:

  • Average度量:当当前X轴周期的Count([Value]) OVER (LastPeriods(1,[Axis.X])) = 1时,计算Count([W/O]) / Avg([A/C Type Monthly FH]) * 1000,否则返回0
  • 检测次数度量:当同样的条件满足时,计算Avg([A/C Type Monthly FH] / 1000),否则返回0

整合后的UCL表达式

把上述两个逻辑直接代入UCL公式,同时加入除以0的防护(避免计算报错),最终的自定义表达式如下:

If(
    // 保留原条件,同时避免除以0的错误
    Count([Value]) OVER (LastPeriods(1,[Axis.X])) = 1 AND Avg([A/C Type Monthly FH] / 1000) > 0,
    // 内联Average的计算
    (Count([W/O]) / Avg([A/C Type Monthly FH]) * 1000) 
    + 
    3 * Sqrt(
        // 分子是Average计算值,分母是检测次数计算值
        (Count([W/O]) / Avg([A/C Type Monthly FH]) * 1000) 
        / 
        (Avg([A/C Type Monthly FH] / 1000))
    ),
    // 不满足条件或存在计算风险时返回0(可根据需求改为Null)
    0
) as [UCL]

关键说明

  1. 条件复用:完全保留了你原来的Count([Value]) OVER (LastPeriods(1,[Axis.X])) = 1判断,确保UCL只在和另外两个图表相同的条件下计算
  2. 除以0防护:加入Avg([A/C Type Monthly FH] / 1000) > 0的判断,避免当检测次数为0时出现平方根内的除法错误
  3. 无额外计算列:所有计算逻辑都在一个表达式内完成,不需要创建中间计算列

如果你的Average或检测次数的核心计算逻辑和我理解的有偏差(比如Average实际是取Avg([Value])而非Count([W/O])/...*1000),只需要把对应部分替换成你实际的计算逻辑即可——核心就是把原来两个度量的完整逻辑(包括条件)直接嵌入UCL公式中。

内容的提问来源于stack exchange,提问作者L. Scheipers

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:41:30