这是我的表
公司---- ----年份价
一个---------- 2001 ---- 50
一个---------- 2002 ---- 75
乙---------- 2001 ---- 15
我想使用以下公式计算额外列中的%价格增长
2002年A的%chg =(75-50)/ 50
所以我的新表看起来像这样 公司---- ----年份价格---%CHG
一个---------- 2001 ---- 50 ------ 0
一个---------- 2002 ---- 75 ------的 0.5
乙---------- 2001 ---- 15 -----
由于我是powerpivot和DAX的新手,我不知道如何使用过滤器功能来执行此操作。
请帮帮我。提前致谢
答案 0 :(得分:0)
这有点棘手,因为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()
)。