计算 powerpivot 的增加百分比

calculate percentage increase in powerpivot

这是我的table

公司----年份----价格

A------------2001----50

A------------2002----75

B------------2001----15

我想使用以下公式计算附加列中的价格上涨百分比

2002 年 A 的 %chg=(75-50)/50

所以我的新 table 看起来像这样 公司----年份----价格---%chg

A------------2001----50-----0

A------------2002----75------0.5

B------------2001----15-----

由于我是 powerpivot 和 DAX 的新手,所以我不知道如何使用筛选函数来执行此操作。

请帮助我。提前致谢

这有点棘手,因为 Power BI 不适合迭代计算。请注意,建议的解决方案可能会导致大数据集出现性能问题:

首先创建一个名为 PriorYear 的新列:

=CALCULATE(Max([Year]),FILTER(Table1,EARLIER([year]) > [year] && EARLIER([Company]) = [Company]))

之后创建一个名为 PriorPrice:

的列
=CALCULATE(Max([price]),Filter(Table1,EARLIER([PriorYear]) = [Year] && EARLIER([Company]) = [Company]))

最后创建一个名为 PriceRatio 的列:

=IFERROR([price]/[PriorPrice]-1,0)

解释: Earlier() 是这个函数的一个不恰当的名字,因为它的工作原理与 ThisRowsValue() 非常相似。您需要 Max([price]),因为您无法对列求值。您需要对其应用一些算术。由于只会有一个匹配值,因此算术可以是一切(也可以是 Min()Sum())。