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

In a pivot table: how to ignore dimension in an expression using a variable that depends on that dimension

我正在尝试根据客户的获利能力对 (A,B,C) 客户列表进行排名,计算方法是每次销售的金额乘以产品的获利能力(每个产品都分配了一个获利能力值) .因此,利润 = SaleAmount*ProductProfitability

为了对每个客户进行排名,我有一个以客户 ID (CustID) 作为维度和两个表达式的数据透视表 table:

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 个百分位数(这是一个单一的值)。例如,如果我在文本框中显示该值,这会很好用,但是,如果我在我的 table 中使用它,它会为每个客户采用不同的百分位数(因为 CustID 在维度中)。

我怎样才能绕过这个?每个客户的百分位数必须相同,但我找不到方法。

在此先致谢,如有任何帮助,我们将不胜感激!

没有什么比向其他人提问更能找到答案的了。就像在变量定义中添加 TOTAL 一样简单:

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