选项 2:使用 PowerPivot

选项 2:使用 PowerPivot

有没有办法添加仅适用于总列的计算字段,而无需为每个列项添加不必要的详细信息?

考虑以下示例。

数据如下:

Year    Product     Units   Price   Revenue
2013    Porduct A   100     1.5     150
2013    Porduct B   150     1.6     225
2013    Porduct C   200     1.7     300
2013    Porduct D   250     1.8     375
2013    Porduct E   300     1.9     450
2014    Porduct A   150     1.5     225
2014    Porduct B   200     1.6     300
2014    Porduct C   250     1.7     375
2014    Porduct D   300     1.8     450
2014    Porduct E   350     1.9     525

最终得到的枢轴如下:

由此产生的枢轴

现在,比如说,我想为每种产品总额添加 10% 的折扣,但是当我添加计算字段时,我会分别获得每年不必要的折扣详细信息:

使用计算字段进行数据透视

我真正想要的是摆脱逐年的细节并只留下总数的计算:

期望输出

但我希望在不隐藏列的情况下实现这一点,而只是添加一个字段,就像我通常在不使用数据透视表的情况下所做的那样。背后的原因是,我可能希望执行大量后续计算,而不使数据透视表水平增长(尤其是当我进行逐月分析时,每次添加计算字段时,结果表都会扩展 12 列)。

答案1

开箱即用的标准数据透视表不允许这样做。

首先,我将描述如何使用常规数据透视表解决这个问题,其次,我将向您展示如何使用 PowerPivot 插件实现这个问题。


选项 1:两个标准数据透视表

我的解决方法是简单地将两个数据透视表并排放置,一个以年份作为列标签,另一个则没有(第二个表位于低一行,因此它们对齐)。

您需要确保行标签列的排序和筛选方式相同。然后,​​您可以隐藏第二张表上的标签列。

在此处输入图片描述

(在此屏幕截图中,我在第 3 行手动添加了“总计”标签)


选项 2:使用 PowerPivot

使用 PowerPivot 和 DAX,您可以将所有这些列创建为单独的度量,以便可以非常精确地控制所应用的过滤器。

首先确保安装了 PowerPivot - Excel 不附带它,除了 Excel 2013 的某些版本。我不会介绍安装过程,但是快速搜索如果你遇到困难的话应该会有所帮助。

选择您的数据范围并单击Create Linked TablePowerPivot 工具栏。

在此处输入图片描述

应出现绿色的 PowerPivot 窗口。默认情况下,您的表将被简单地命名为表格1- 让我们重命名它产品销售使其更有意义。

在此处输入图片描述

单击PivotTable绿色功能区中间的按钮,将其放置在您喜欢的任何位置。现在我们需要创建一些度量。PowerPivot 使用一种称为 DAX(数据分析表达式)的代码,它与普通的 Excel 公式非常相似。

返回 Excel,首先添加产品Row Labels数据透视表。现在单击New MeasurePowerPivot 功能区选项卡上的按钮。

在结果窗口中,设置Measure name (all PivotTables)单位总数并在Description自由文本框中输入:

=sum(ProductSales[Units])

在此处输入图片描述

创建另一个度量,称为单位 2013. 输入此代码:

=CALCULATE([Units Total],ProductSales[Year]=2013)

在此处输入图片描述

DAX 中的函数CALCULATE()允许您将(多个)过滤器应用于聚合表达式 - 因此这里我们过滤单位总数我们刚刚创建的指标,按相关年份计算。重复单位 2014,然后再做同样的事情总收入2013 年收入&2014 年收入

您现在可以按自己喜欢的方式排列和格式化您的列 - 为了模仿上面的屏幕截图,我手动将 2013 年和 2014 年的列设置为灰色。

在此处输入图片描述

相关内容