为什么措施不起作用:在 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
我正在计算度量以通过以下方式为保单持有人找到信用值
我的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