应用数字切片器会产生不正确的结果

时间:2019-02-18 20:55:10

标签: powerbi dax powerbi-desktop

我创建了计算表,该表将按ClaimNumber汇总数据:

ByClaim = SUMMARIZE(fact_Losses
                        ,fact_Losses[AccidentDate]
                        ,fact_Losses[ClaimNumber]
                        ,fact_Losses[TransactionType]                       
                        ,"LossAmount", SUM(fact_Losses[PaymentAmount])
)

结果如下:

enter image description here

我生成了另一个计算表Cap Slicer,将其用作切片器:

Cap Slicer = GENERATESERIES(10000,MAX(fact_Losses[LossPerClaim])+10000,10000)

enter image description here

现在,我需要根据LossAmount表中的值选择来减少每个ClaimNumber的{​​{1}}的数量。 为此,我写了一个措施:

Cap Slicer

Capped Loss Amount1 = VAR MaxLoss = MAX('Cap Slicer'[Value]) RETURN SUMX( ByClaim, IF(ByClaim[LossAmount] > MaxLoss, MaxLoss, ByClaim[LossAmount] )) 中选择$ 1,000,000的值时,我希望看到ClaimNumber Cap Slicer的{​​{1}}值为1,000,000。

但是由于某种原因,它给了我1,002,737。

2,737来自哪里?

enter image description here

我正在使用SUMX函数来一次迭代一行。 还有我不知道的其他功能吗?

谢谢

1 个答案:

答案 0 :(得分:3)

ByClaim显然具有多于一行的索偿号USGL00000000103。您的衡量标准是每行而不是每项声明应用上限。

如果您希望对每个索赔应用上限,则将度量值更改为:

Capped Loss Amount1 = 
VAR MaxLoss = 
    MAX('Cap Slicer'[Value])
VAR ActualLoss = 
   SUM( ByClaim[LossAmount] )
RETURN
    MIN ( MaxLoss, ActualLoss)