[英]Rolling average a certain period using a DAX measure in Power BI
我尝试生成一个 DAX 度量作为滚动平均值。 我不太清楚如何插入我需要滚动平均为“CPI_annualized”的度量。 它没有提供将 CPI_annualized 纳入滚动平均计算的选项。
这是我尝试在度量 P_MA 中构造 RollingAverage VAR 时给出的错误
The syntax for 'CALCULATE' is incorrect. DAX(VAR __LAST_DATE = LASTDATE('public econometrics'[date]) ......
这是我要完成的 DAX 度量:
P_MA =
VAR __NUM_PERIODS = 3
VAR __LAST_DATE = LASTDATE('public econometrics'[date])
VAR RollingAverage =
AVERAGEX(
DATESBETWEEN(
'public econometrics'[date],
DATEADD(__LAST_DATE, -__NUM_PERIODS, MONTH),
__LAST_DATE)
CALCULATE([CPILFESL]))
)
RETURN RollingAverage
这是我试图在滚动计算中使用的 DAX 度量,每月给出的数据以我的 dB 为单位。 这工作如下。
CPI_annualized = (CALCULATE(SUM('public econometrics'[value]),'public
econometrics'[econometric_name]=="CPILFESL")/CALCULATE(SUM('public
econometrics'[value]),'public
econometrics'[econometric_name]=="CPILFESL",SAMEPERIODLASTYEAR('public econometrics'[date])))-1
将此度量插入折线图中给出了我的这张表。
日期 | CPIFESL |
---|---|
1978 年 1 月 1 日 | 6.41% |
1978 年 2 月 1 日 | 6.20% |
我认为由于这一行,您会收到错误消息:
CALCULATE([CPILFESL])
在 Dax Calculate 度量中,您不能直接计算一个值,而是必须包含一个数字计算 function,例如 sum、max、min,以下是示例:
CALCULATE(sum([CPILFESL]))
另外,在没有过滤器表达式的情况下可以去掉Calculate measure,比如sum([CPILFESL])
就足够了。
使用计算的正确方法是过滤值,如在线文档中所示
CALCULATE(
SUM(Sales[Sales Amount]),
'Product'[Color] = "Blue"
)
您可以在这里找到许多有用的模板:
https://www.daxpatterns.com/month-related-calculations/
移动平均 3 个月
VAR MonthsInRange = 3
VAR LastMonthRange =
MAX ( 'Date'[Year Month Number] )
VAR FirstMonthRange =
LastMonthRange - MonthsInRange + 1
VAR Period3M =
FILTER (
ALL ( 'Date'[Year Month Number] ),
'Date'[Year Month Number] >= FirstMonthRange
&& 'Date'[Year Month Number] <= LastMonthRange
)
VAR Result =
IF (
COUNTROWS ( Period3M ) >= MonthsInRange,
CALCULATE (
AVERAGEX ( Period3M, [Sales Amount] ),
REMOVEFILTERS ( 'Date' )
)
)
RETURN
Result
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.