AVERAGE TOTALYTD 给出不正确的结果。 Power BI DAX

AVERAGE TOTALYTD gives incorrect result. Power BI DAX

我只需要为 Closed 索赔计算 Average Year To Date。 如果我使用 FILTER 函数,那么它会给出正确的结果:$3,507.74

AVG_YTD_Indemn_Closed =
CALCULATE (
    AVERAGE ( fact_Losses[PaidIdemnity] ),
    FILTER (
        fact_Losses,
        fact_Losses[DateEntered].[Year] = YEAR ( TODAY () )
            && fact_Losses[ClaimStatus] = "Closed"
    )
)

但是如果我使用 TOTALYTD 函数然后出于某种原因我得到不同的结果 $4,702.31:

AVG_YTD_Indemn_Closed1 =
CALCULATE (
    TOTALYTD ( AVERAGE ( fact_Losses[PaidIdemnity] ), dim_Date[Date] ),
    fact_Losses[ClaimStatus] = "Closed"
)

为什么差别这么大?函数 TOTALYTD 如何计算出与 FILTER 不同的结果?

正如解释的那样 here,

TOTALYTD (
    <EXPRESSION>,
    <DATES>
    [, <FILTER>]
    [, <YEARENDDATE>]
)

等同于

CALCULATE (
    <EXPRESSION>,
    DATESYTD ( <DATES> [, <YEARENDDATE>] )
    [, <FILTER>]
)

因此您的 TOTALYTD 度量相当于

AVG_YTD_Indemn_Closed1 =
CALCULATE (
    CALCULATE(
        AVERAGE ( fact_Losses[PaidIdemnity] ),
        DATESYTD( dim_Date[Date] )
    ),
    fact_Losses[ClaimStatus] = "Closed"
)

如果你理顺了约会关系,我会推荐这个版本,因为 TOTALYTD 无法容纳你将来可能需要的额外过滤器,如前所述 here:

AVG_YTD_Indemn_Closed1 =
CALCULATE (
    AVERAGE ( fact_Losses[PaidIdemnity] ),
    DATESYTD( dim_Date[Date] ),
    fact_Losses[ClaimStatus] = "Closed"
)