Spotfire:Sum() OVER (Previous()) 在与 If() 语句一起使用时消隐第二个节点

Spotfire: Sum() OVER (Previous()) blanking out second node when used with If() statement

我的情况是 table 如下所示:

Year   Sales
2000   100
2001   225
2002   375
2003   490
...

我想做的是:

这是我想要实现的目标:

Year   Sales   NewColumn
2000   100     50        <For now, use Sales * 0.5>
2001   225     125
2002   375     150
2003   490     115
...

这是我在自定义列中使用的自定义表达式:

If(
  Sum([Net Sales]) over (Previous([Year])) is null,
  (Sum([Net Sales]) over ([Year])) * 0.5,
  ([Sales] - Sum([Sales]) over (Previous([Year]))) 
)

不过,这是我的公式returns:

Year   Sales   NewColumn
2000   100     50      
2001   225     <seems to be blank>
2002   375     150
2003   490     115
...

现在,我对这一点感到困惑:在查看第一个节点时,Previous 语句将 return 为空。所以如果我 运行 ([Sales] - Sum([Sales]) over (Previous([Year]))) 我会得到:

Year   Sales
2000   
2001   225
2002   375
2003   490
...

... 但是当我将此逻辑与 if 语句结合使用时,似乎一切都在 "shifted" 下一行。关于我(显然)在这里误解了什么有什么想法吗?为什么 Previous 的焦点明显向下移动了一行?

(为清楚起见,这扩展了我之前的 SO post 此处:

问题出在您的 if 语句上。它从 Sum([Sales]) over (Previous([Year])) 不为空的计算中排除 Sum([Sales]) over (Previous([Year])) 为空的行集。

我会使用 SN([Sales] - Sum([Sales]) over (Previous([Year])),Sum([Sales]) over ([Year]) * 0.5).