我的数据看起来像这样:
year channel discount sales
2015 1 3.00 20,000
2015 1 3.00 23,000
2015 2 3.00 67,000
2015 1 6.00 80,000
2015 1 9.00 40,000
2016 1 4.00 98,000
2016 1 7.00 34,000
2016 1 7.00 15,000
2016 2 7.00 45,000
2016 1 10.00 60,000
2017 1 4.50 54,000
2017 1 7.50 60,000
2017 1 10.50 50,000
2017 2 10.50 54,568
我想使用电力支点按year
进行分组并计算加权销售额:折扣应乘以与之相关的销售额,然后再除以每年的总销售额。
在Powerpivot中,我按列计算我的总销售额
TOTAL_SALES_YEAR=CALCULATE(SUM([sales]), ALLEXCEPT(Sheet1,Sheet1[year]))
我的加权销售额为WEIGHTED_SALES=[discount]*[sales]/[TOTAL_SALES_YEAR]
。
但是,现在,我希望我的总销售额对过滤器做出反应 - 是选择了频道1,频道2还是两者。
我该如何解决这个问题?谢谢。
答案 0 :(得分:2)
当您使用ALLEXCEPT
函数时,您正在剥离除[year]
列之外的所有内容的过滤器上下文。如果您想保留[channel]
过滤器上下文,那么您也可以将其添加为函数内的列:
= CALCULATE(SUM([sales]), ALLEXCEPT(Sheet1, Sheet1[year], Sheet1[channel]))
另一种方法是,不是指定要保留的过滤器上下文,而是指定要删除的过滤器上下文。您好像要删除[discount]
过滤器上下文:
= CALCULATE(SUM([sales]), ALL(Sheet1[discount]))
修改:您似乎将公式作为计算列而非度量值。如果您希望表格对过滤器做出响应,那么您需要使用度量。
请注意,在我的屏幕截图中,度量旁边有“fx”,并且数据透视表列未标有“Average of”或“Sum of”聚合描述。
您的加权销售指标也必须改为:
= SUMX(Sheet1, Sheet1[discount]*Sheet1[sales]) / [TotalSales]