Применение числового слайсера дает неверные значения в результате - PullRequest
0 голосов
/ 18 февраля 2019

Я создал расчетную таблицу, которая будет суммировать данные по ClaimNumber:

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

Результат выглядит следующим образом:

enter image description here

Iсгенерировал еще одну вычисляемую таблицу Cap Slicer, которая будет использоваться в качестве слайсера:

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

enter image description here

Теперь мне нужно уменьшить сумму на LossAmountдля каждого ClaimNumber значение выбирается в таблице Cap Slicer.Для этого я написал меру:

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

При выборе значения $ 1,000,000 в Cap Slicer я ожидаю увидеть Capped Loss Amount1 значение 1,000,000 для ClaimNumber USGL00000000103.

Но по какой-то причине это дает мне 1 002 737.

Откуда это 2737?

enter image description here

Я использую функцию SUMX для итерации по одной строке за раз.Есть ли какая-то другая функция, о которой я не знаю?

Спасибо

1 Ответ

0 голосов
/ 19 февраля 2019

Таблица ByClaim явно содержит более одной строки для номера заявки USGL00000000103.Ваша мера применяет кепку на строку, а не на претензию.

Если вы хотите, чтобы кепка применялась на каждую претензию, тогда измените свою меру на:

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