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

Spotfire中按类型计算同比差值及预算与实际值差值

Spotfire 计算列实现需求方案

1. 按Type分组计算当年与上年同类型差值

针对每个Value列(例如[Value1]),创建计算列时使用以下公式:

[Value1] - Sum([Value1]) OVER (Partition By [Type] Order By [Year] Rows Between 1 Preceding And 1 Preceding)
  • 逻辑说明:Partition By [Type]限定仅在同类型分组内计算,Order By [Year]按年份排序,Rows Between 1 Preceding And 1 Preceding精准定位上年的同类型数据,用当前值减去上年值得到差值。
  • 可选优化(处理无上年数据的第一年):
If(Count([Year]) OVER (Partition By [Type] Order By [Year]) > 1, [Value1] - Sum([Value1]) OVER (Partition By [Type] Order By [Year] Rows Between 1 Preceding And 1 Preceding), NULL)

2. 每年Actual行显示Budget与Actual的差值

针对每个Value列(例如[Value1]),创建计算列时使用以下公式:

If([Type] = "Actual", Sum([Value1]) OVER (Partition By [Year]) - [Value1], NULL)
  • 逻辑说明:Partition By [Year]获取当年所有Type的Value总和,减去当前Actual行的Value,即可得到当年Budget与Actual的差值(因当年仅包含Budget和Actual两行,总和减Actual即为Budget值,再减Actual就是两者差值)。Budget行返回NULL,若需要可改为0。
  • 更直观的写法(确保每年每个Type仅一行数据时适用):
If([Type] = "Actual", (Sum([Value1]) OVER (Partition By [Year] Having [Type] = "Budget")) - [Value1], NULL)

多Value列批量处理技巧

如果存在多个Value列,无需手动逐个编写公式:

  • 先创建第一个计算列,右键复制该列后,仅修改公式中的列名(如把[Value1]替换为[Value2]),即可快速生成其他列的计算逻辑。

内容的提问来源于stack exchange,提问作者Phic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 11:32:34