[英]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.