【问题标题】:Applying numeric slicer gives incorrect values as a result结果应用数字切片器会给出不正确的值
【发布时间】:2019-02-19 16:40:17
【问题描述】:

我创建了按 ClaimNumber 汇总数据的计算表:

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

结果如下:

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

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

现在我需要通过在Cap Slicer 表中选择的值来减少每个ClaimNumberLossAmount 的数量。 为此我写了一个度量:

Capped Loss Amount1 = 
VAR MaxLoss = MAX('Cap Slicer'[Value])
RETURN
   SUMX(
        ByClaim,
        IF(ByClaim[LossAmount]  > MaxLoss,
        MaxLoss,
        ByClaim[LossAmount] 
        ))

Cap Slicer 中选择价值 1,000,000 美元时,我希望看到 ClaimNumber USGL00000000103Capped Loss Amount1 价值为 1,000,000。

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

这 2,737 来自哪里?

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

谢谢

【问题讨论】:

    标签: powerbi dax powerbi-desktop


    【解决方案1】:

    ByClaim 显然有不止一行的索赔号USGL00000000103。您的衡量标准适用于每行的上限,而不是每项声明。

    如果您希望针对每个索赔应用上限,请将您的衡量标准更改为:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 2017-12-14
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多