Excel Power Pivot:将筛选的小计作为列作为计算列的源的计算
Excel Power Pivot: calculations with filtered subtotal as a column as source for calculated column
我有这样的数据:
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
我想使用 power pivot 按 year
分组并计算加权销售额,如下所示:折扣应乘以与之相关的销售额,然后除以每年的总销售额。
在 Powerpivot 中,我计算列中的总销售额
TOTAL_SALES_YEAR=CALCULATE(SUM([sales]), ALLEXCEPT(Sheet1,Sheet1[year]))
,我的加权销售额为 WEIGHTED_SALES=[discount]*[sales]/[TOTAL_SALES_YEAR]
。
但是,现在我希望我的总销售额对筛选器做出反应 - 无论是选择渠道 1、渠道 2 还是两者都被选中。
所有渠道:小计计算正确
过滤渠道:小计没有改变
我该怎么做?谢谢。
当您使用 ALLEXCEPT
函数时,您将删除除 [year]
列之外的所有内容的筛选器上下文。如果您想保留 [channel]
过滤器上下文,那么您也可以将其作为列添加到函数中:
= CALCULATE(SUM([sales]), ALLEXCEPT(Sheet1, Sheet1[year], Sheet1[channel]))
执行此操作的另一种方法是,您可以指定要删除的筛选上下文,而不是指定要保留的筛选上下文。您似乎想要删除 [discount]
过滤器上下文:
= CALCULATE(SUM([sales]), ALL(Sheet1[discount]))
编辑: 看来您将公式作为计算列而不是度量来计算。如果您希望 table 响应过滤器,则需要使用措施。
请注意,在我的屏幕截图中,度量旁边有 "fx",并且数据透视表 table 列未标记 "Average of" 或 "Sum of" 聚合描述。
您的加权销售指标也必须更改为如下所示:
= SUMX(Sheet1, Sheet1[discount]*Sheet1[sales]) / [TotalSales]
我有这样的数据:
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
我想使用 power pivot 按 year
分组并计算加权销售额,如下所示:折扣应乘以与之相关的销售额,然后除以每年的总销售额。
在 Powerpivot 中,我计算列中的总销售额
TOTAL_SALES_YEAR=CALCULATE(SUM([sales]), ALLEXCEPT(Sheet1,Sheet1[year]))
,我的加权销售额为 WEIGHTED_SALES=[discount]*[sales]/[TOTAL_SALES_YEAR]
。
但是,现在我希望我的总销售额对筛选器做出反应 - 无论是选择渠道 1、渠道 2 还是两者都被选中。
所有渠道:小计计算正确
过滤渠道:小计没有改变
我该怎么做?谢谢。
当您使用 ALLEXCEPT
函数时,您将删除除 [year]
列之外的所有内容的筛选器上下文。如果您想保留 [channel]
过滤器上下文,那么您也可以将其作为列添加到函数中:
= CALCULATE(SUM([sales]), ALLEXCEPT(Sheet1, Sheet1[year], Sheet1[channel]))
执行此操作的另一种方法是,您可以指定要删除的筛选上下文,而不是指定要保留的筛选上下文。您似乎想要删除 [discount]
过滤器上下文:
= CALCULATE(SUM([sales]), ALL(Sheet1[discount]))
编辑: 看来您将公式作为计算列而不是度量来计算。如果您希望 table 响应过滤器,则需要使用措施。
请注意,在我的屏幕截图中,度量旁边有 "fx",并且数据透视表 table 列未标记 "Average of" 或 "Sum of" 聚合描述。
您的加权销售指标也必须更改为如下所示:
= SUMX(Sheet1, Sheet1[discount]*Sheet1[sales]) / [TotalSales]