在数据透视表中:如何使用依赖于该维度的变量忽略表达式中的维度

时间:2017-06-30 07:53:07

标签: variables qlikview qliksense

我试图根据客户的盈利能力对(A,B,C)客户列表进行排名,其计算方法是每笔销售金额乘以产品盈利能力(每种产品都有一个盈利能力值)。因此,Profit = 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在维度中)。

我该如何绕过这个?每个客户的百分位数必须相同,但我找不到方法。

提前致谢,我们将非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

找到答案比向别人提问更好。就像在变量定义中添加TOTAL一样简单:

vPercentile75Profit =Fractile(TOTAL aggr(sum({$<ProductProfitability = {'>0'} >}  SaleAmount*ProductProfitability/100),CustID), 0.75)