YTD 按月求和,仅使用每个月的最新值

问题描述 投票:0回答:1

给定每日事实表,我想创建 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 )
    )
powerbi dax data-analysis powerbi-desktop measure
1个回答
0
投票

我不确定我是否理解你的设置,但这可行。

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
)
© www.soinside.com 2019 - 2024. All rights reserved.