我试图根据客户的盈利能力对(A,B,C)客户列表进行排名,其计算方法是每笔销售金额乘以产品盈利能力(每种产品都有一个盈利能力值)。因此,Profit = SaleAmount * ProductProfitability
为了对每个客户进行排名,我有一个数据透视表,其客户ID(CustID)为维度和两个表达式:
1)
= SaleAmount*ProductProfitability
2)= if(SaleAmount*ProductProfitability > $(vPercentile75Profit),'A', if(SaleAmount*ProductProfitability > $(vPercentil25Profit),'B','C'))
表达式2)可以正常工作,但显然我需要这是动态的。
为此,我将这些变量定义为(两者都相同,只需将0.75切换为0.25):
vPercentile75Profit =Fractile(aggr(sum({$<ProductProfitability = {'>0'} >} SaleAmount*ProductProfitability/100),CustID), 0.75)
如果我理解的话,这将计算每个客户盈利能力的列表,然后执行该列表的75%(这是单个值)。例如,如果我在文本框中显示值,则效果很好,但是,如果我在表格中使用它,则每个客户需要不同的百分位数(因为CustID在维度中)。
我该如何绕过这个?每个客户的百分位数必须相同,但我找不到方法。
提前致谢,我们将非常感谢您的帮助!
答案 0 :(得分:0)
找到答案比向别人提问更好。就像在变量定义中添加TOTAL一样简单:
vPercentile75Profit =Fractile(TOTAL aggr(sum({$<ProductProfitability = {'>0'} >} SaleAmount*ProductProfitability/100),CustID), 0.75)