Сначала измените свою меру для Совокупных часов следующим образом:
Cumulative Hours =
CALCULATE (
SUM ( Rebates[BilledHours] ),
FILTER ( ALL ( Rebates ), Rebates[Day] <= MAX ( Rebates[Day] ) )
)
Во-вторых, измените показатель скидки:
Rebate =
SUMX (
Rebates,
VAR Cumulative_Hours = [Cumulative Hours]
RETURN
SWITCH (
TRUE (),
Cumulative_Hours <= 400, Rebates[LaborPrice] * 0.1,
Cumulative_Hours >= 401, Rebates[LaborPrice] * 0.15
)
)
Результат:
Почему ваша формула не работает:
Создайте простой тестовый показатель и визуализируйте его:
Wrong Rebate Hours = SUMX( Rebates, [Cumulative Hours])
Легко видеть, что в SUMX нет «накопления» - [Cumulative Hours] перестает быть кумулятивным, и в результате ваш SWITCH-тест всегда <400. По сути, SUMX изменяет контекст фильтра [Совокупные часы] измеряют путем введения контекста строки из Rebates (через «переход контекста» - поиск концепции в Google).</p>