我遇到的情况是,我的表格如下所示:
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])))
)
但是,这是我的公式返回的内容:
Year Sales NewColumn
2000 100 50
2001 225 <seems to be blank>
2002 375 150
2003 490 115
...
现在,我对此感到困惑:查看第一个节点时Previous
语句将返回null。所以如果我跑([Sales] - Sum([Sales]) over (Previous([Year])))
,我会得到:
Year Sales
2000
2001 225
2002 375
2003 490
...
...但是当我将这个逻辑与if
语句结合起来时,似乎所有事情都被“移位”了一行。关于我(明显)误解在这里的任何想法?为什么Previous
的焦点显然会向下移动一行?
(为清楚起见,这可以延伸到我之前的SO帖子:link)
答案 0 :(得分:0)
问题在于你的if语句。它排除了Sum([Sales])over(Previous([Year]))的行集,其中Sum([Sales])over(Previous([Year]))不为null。
我会使用SN([Sales] - Sum([Sales])超过(Previous([Year])),Sum([Sales])超过([Year])* 0.5。