我正在尝试根据客户的盈利能力对 (A,B,C) 列表进行排名,其计算方法为每次销售的金额乘以产品盈利能力(每个产品都有分配的盈利能力值)。因此,利润 = SaleAmount*ProductProfitability
为了对每个客户进行排名,我有一个以客户 ID (CustID) 作为维度和两个表达式的数据透视表:
1)
= SaleAmount*ProductProfitability
2) = if(SaleAmount*ProductProfitability > $(vPercentile75Profit),'A', if(SaleAmount*ProductProfitability > $(vPercentil25Profit),'B','C'))
如果我修复了 vPercentile75Profit 和 vPercentile25Profit 的值,表达式 2) 可以正常工作,但显然我需要它是动态的。
为此,我将这些变量定义为(两者相同,只需将 0.75 与 0.25 切换):
vPercentile75Profit =Fractile(aggr(sum({$<ProductProfitability = {'>0'} >} SaleAmount*ProductProfitability/100),CustID), 0.75)
如果我理解得很好,这将计算每个客户盈利能力的列表,然后执行该列表的 75 个百分位数(这是一个单一值)。例如,如果我在文本框中显示值,这会很好用,但是,如果我在我的表中使用它,则每个客户都需要不同的百分位数(因为 CustID 在维度中)。
我怎样才能绕过这个?每个客户的百分位数必须相同,但我找不到方法。
提前致谢,任何帮助将不胜感激!
没有什么比向其他人提问更能找到答案的了。就像在变量定义中添加 TOTAL 一样简单:
vPercentile75Profit =Fractile(TOTAL aggr(sum({$<ProductProfitability = {'>0'} >} SaleAmount*ProductProfitability/100),CustID), 0.75)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句