Я пытаюсь ранжировать (A, B, C) список клиентов в соответствии с их прибыльностью, которая рассчитывается как сумма каждой продажи, умноженная на прибыльность продукта (каждому продукту присвоено значение прибыльности). Следовательно, прибыль = сумма продажи * прибыльность продукта.
Чтобы ранжировать каждого клиента, у меня есть сводная таблица с идентификатором клиента (CustID) в качестве измерения и двумя выражениями:
1)
= SaleAmount*ProductProfitability
2) = if(SaleAmount*ProductProfitability > $(vPercentile75Profit),'A', if(SaleAmount*ProductProfitability > $(vPercentil25Profit),'B','C'))
Выражение 2) работает правильно, если я фиксирую значения vPercentile75Profit и vPercentile25Profit, но, очевидно, мне нужно, чтобы это было динамическим.
Для этого я определил эти переменные как (одинаковые для обоих, просто переключение 0,75 на 0,25):
vPercentile75Profit =Fractile(aggr(sum({$<ProductProfitability = {'>0'} >} SaleAmount*ProductProfitability/100),CustID), 0.75)
Если я правильно понимаю, это вычисляет список прибыльности каждого клиента, а затем выполняет 75 процентиль этого списка (что является одним значением). Это прекрасно работает, если я показываю значение, например, в текстовом поле, однако, если я использую его в своей таблице, для каждого клиента используется другой процентиль (поскольку CustID находится в измерении).
Как я могу обойти это? Процентили должны быть одинаковыми для каждого клиента, но я не могу найти способ.
Заранее спасибо, любая помощь будет принята с благодарностью!