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
...
我想做的是:
- 如果是第一个值,输入我选择的值
- 如果不是第一个值,则计算上一个Sales值与本次Sales值的差值
这是我想要实现的目标:
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).
我的情况是 table 如下所示:
Year Sales
2000 100
2001 225
2002 375
2003 490
...
我想做的是:
- 如果是第一个值,输入我选择的值
- 如果不是第一个值,则计算上一个Sales值与本次Sales值的差值
这是我想要实现的目标:
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).