给定每日事实表,我想创建 YTD 总和(按月)的度量,但仅对每个月的最后一个可用观察值进行求和。
布局如下:
使用
Date
日期表选择特定月份,使用 Date Copy
表显示截至所选月份的一年中的每个月,以及使用 Pred
值显示每个月的最后可用预测(来自 Prediction
表)。
期望的结果是:
我的尝试:
Bad =
VAR LatestMonth =
SELECTEDVALUE ( 'Date'[Month Number] )
VAR Tbl =
SUMMARIZE (
ALLSELECTED ( 'Date Copy' ),
'Date Copy'[Month Number],
'Date Copy'[Year],
"Bad", [Pred]
)
RETURN
SUMX ( FILTER ( Tbl, [Month Number] <= LatestMonth ), [Pred] )
返回:
重现表格的代码:
Date =
ADDCOLUMNS (
CALENDAR ( DATE ( 2023, 1, 1 ), DATE ( 2024, 12, 31 ) ),
"Day", DAY ( [Date] ),
"Year", YEAR ( [Date] ),
"Month Number", MONTH ( [Date] ),
"Month", FORMAT ( [Date], "mmm" ),
"Month Year", FORMAT ( [Date], "mmm yyyy" ),
"EOM", EOMONTH ( [Date], 0 )
)
Date Copy =
SELECTCOLUMNS (
'Date',
"Date", 'Date'[Date],
"Year", 'Date'[Year],
"Month", 'Date'[Month],
"Month Number", 'Date'[Month Number]
)
Prediction =
ADDCOLUMNS (
CALENDAR ( DATE ( 2023, 1, 1 ), DATE ( 2024, 3, 28 ) ),
"Prediction",
(
1000 * DAY ( EOMONTH ( [Date], 0 ) ) - 10
)
)
及措施:
Pred =
VAR Dates = DATESBETWEEN ( 'Date Copy'[Date] , STARTOFYEAR ( 'Date'[Date] ), MAX ( 'Date'[Date] ) )
RETURN
CALCULATE (
LASTNONBLANKVALUE ( 'Date Copy'[Date], SUM ('Prediction'[Prediction] ) ),
REMOVEFILTERS ( 'Date' ),
USERELATIONSHIP ( 'Prediction'[Date], 'Date Copy'[Date] ),
KEEPFILTERS ( Dates )
)
我不确定我是否理解你的设置,但这可行。
Bad =
VAR LatestMonth =
SELECTEDVALUE ( 'Date'[Month Number] )
VAR LatestYear =
SELECTEDVALUE ( 'Date'[Year] )
VAR Tbl =
SUMMARIZE (
ALLSELECTED('Date Copy') ,
'Date Copy'[Month Number],
'Date Copy'[Year],
"Bad", [Pred]
)
RETURN
CALCULATE(
SUMX(FILTER(Tbl, 'Date Copy'[Month Number] <= SELECTEDVALUE('Date Copy'[Month Number]) ),[Bad]),
'Date Copy'[Month Number] <= LatestMonth
)