为什么措施不起作用:在 power bi 中更改策略号时重新开始计数?

Why measure not work: restart counting when the policy no is changed in power bi?

我正在计算度量以通过以下方式为保单持有人找到信用值

我的table是

我需要的输出是 Total SA

我的密码是

Total_SA =
VAR initial_amount = 500
VAR current_index =
    MIN ( 'Table'[Index] )
VAR previous_policy =
    LOOKUPVALUE ( 'Table'[Pol No.], 'Table'[Index], current_index - 1 )
VAR cumulative_inc_sa =
    CALCULATE (
        SUM ( 'Table'[Incremental SA] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Index] <= current_index )
    ) + 0
VAR cumulative_ref_sa =
    CALCULATE (
        SUM ( 'Table'[Referral SA] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Index] <= current_index )
    ) + 0
RETURN
    IF (
        SELECTEDVALUE ( 'Table'[Pol No.] ) == previous_policy,
        initial_amount + cumulative_inc_sa + cumulative_ref_sa,
        IF ( initial_amount <= 500, initial_amount, initial_amount = 500 )
            + IF ( cumulative_inc_sa < 200, cumulative_inc_sa, cumulative_inc_sa = 100 )
            + IF ( cumulative_ref_sa < 300, cumulative_ref_sa, cumulative_ref_sa = 0 )
    )
    

输出:得到错误的结果

当您使用 ALL ( 'Table' ) 时,您将删除 Pol No. 过滤器上下文。要保留它,请改用它:

ALLEXCEPT ( 'Table', 'Table'[Pol No.] )

所以你的衡量标准是

Total_SA =
VAR initial_amount = 500
VAR current_index =
    MIN ( 'Table'[Index] )
VAR cumulative_inc_sa =
    CALCULATE (
        SUM ( 'Table'[Incremental SA] ),
        FILTER (
            ALLEXCEPT ( 'Table', 'Table'[Pol No.] ),
            'Table'[Index] <= current_index
        )
    ) + 0
VAR cumulative_ref_sa =
    CALCULATE (
        SUM ( 'Table'[Referral SA] ),
        FILTER (
            ALLEXCEPT ( 'Table', 'Table'[Pol No.] ),
            'Table'[Index] <= current_index
        )
    ) + 0
RETURN
    initial_amount + cumulative_inc_sa + cumulative_ref_sa

你可以使用下面的措施-

total_sa = 

var initial_amount = 500
var current_index = MIN('Table'[Index])
var current_policy_no = MIN('Table'[Pol No.])

var cumulative_inc_sa = 
CALCULATE(
    SUM('Table'[Incremental SA]),
    FILTER(
        ALL('Table'),
        'Table'[Index] <= current_index
        && 'Table'[Pol No.] = current_policy_no
    )
) + 0

var cumulative_ref_sa = 
CALCULATE(
    SUM('Table'[Referral SA]),
    FILTER(
        ALL('Table'),
        'Table'[Index] <= current_index
        && 'Table'[Pol No.] = current_policy_no
    )
) + 0



RETURN initial_amount + cumulative_inc_sa + cumulative_ref_sa