在 DAX 中计算 Adstock:如何添加上面单元格的值?
Calculate Adstock in DAX: how to add value of cell above?
在 Power BI 中,我需要构建一个所谓的 AdStock 度量值:这是今天的值加上昨天衰减的值。在 Excel 中简单明了,就像这样:
但是我如何在 DAX 中执行此操作?
不幸的是,如果 AdSpend 在某个时候减少,第一个答案的解决方案是不正确的,结果从索引 4 开始就不正确:
它应该是这样的:
计算列:
AdStock :=
VAR AdStockRate = 0.5
VAR ThisIndex = [Index]
RETURN
[AdSpend]
+ SUMX (
FILTER ( Table1 , [Index] < ( ThisIndex - [Index] ) ),
[AdSpend] * AdStockRate ^ [Index]
)
根据需要修改 table 名称(此处为表 1)。
请注意,我这里有 hard-coded AdStockRate (0.5),当然它可以用动态参考替换。
或者,作为衡量标准:
AdStock :=
VAR AdStockRate = 0.5
VAR ThisIndex =
MIN ( Table1[Index] )
VAR AdSpend =
MIN ( Table1[AdSpend] )
RETURN
AdSpend
+ SUMX (
FILTER ( ALL ( Table1 ), Table1[Index] < ThisIndex ),
Table1[AdSpend] * AdStockRate ^ ( ThisIndex - Table1[Index] )
)
在 Power BI 中,我需要构建一个所谓的 AdStock 度量值:这是今天的值加上昨天衰减的值。在 Excel 中简单明了,就像这样:
但是我如何在 DAX 中执行此操作?
不幸的是,如果 AdSpend 在某个时候减少,第一个答案的解决方案是不正确的,结果从索引 4 开始就不正确:
它应该是这样的:
计算列:
AdStock :=
VAR AdStockRate = 0.5
VAR ThisIndex = [Index]
RETURN
[AdSpend]
+ SUMX (
FILTER ( Table1 , [Index] < ( ThisIndex - [Index] ) ),
[AdSpend] * AdStockRate ^ [Index]
)
根据需要修改 table 名称(此处为表 1)。
请注意,我这里有 hard-coded AdStockRate (0.5),当然它可以用动态参考替换。
或者,作为衡量标准:
AdStock :=
VAR AdStockRate = 0.5
VAR ThisIndex =
MIN ( Table1[Index] )
VAR AdSpend =
MIN ( Table1[AdSpend] )
RETURN
AdSpend
+ SUMX (
FILTER ( ALL ( Table1 ), Table1[Index] < ThisIndex ),
Table1[AdSpend] * AdStockRate ^ ( ThisIndex - Table1[Index] )
)