Excel数据透视表:使用切片器进行过滤,但保持与以前字段的%差异

时间:2017-09-11 10:59:14

标签: excel pivot-table

我有一个包含大约22000行数据的电子表格。我使用数据透视表来计算行数,我通过按月对它们进行排序来实现。然后还有另一行,我使用上个月的%差异。

Excel pivot

当我使用切片器过滤月份时,%差异设置为零,因为它们无法与之前的值进行比较。

Excel pivot 2

使用滤镜时是否有可能保持%差异?

作为解决方案,我现在正在创建一个新表,我将所有值复制到(= C1,= C2,= C3,...),然后将这些值与其他行的值组合,但这太复杂了为这么小的问题做了很多工作。

任何想法?

更新:

到目前为止(我使用的是2个excel文件,一个用于数据,另一个用于我的电源数据模型和仪表板)。我在工作中可以使用excel 2016 Pro Plus。

在我的第一个excel文件中,我有一个数据选项卡。每行代表天数:

Id | Call Date  | Caller
01 | 01/01/2017 | Mark
02 | 01/01/2017 | John
03 | 02/01/2017 | Susan
...
-----------------------
data

然后另一个选项卡,我根据数据制作一个数据透视表。在此数据透视表中,我可以自动拥有月份列,并拥有该月份的呼叫者数量。我可以轻松选择与之前的%差异,以查看通话量的差异。

Month | Difference
Jan   | 
Feb   | -14,2%
Mar   | +6,22%
...
-----------------------
%Diff

然后在我的其他excel文件中,我使用power pivot导入excel文件。 (获取外部数据)这给了我2个表。一个用于数据(数据),一个基于数据透视表中的数据。 (%DIFF)

在数据表中,我有一个名为Month的计算字段,将调用日期01/01/2017转换为Jan.I然后在连接月份的两个表之间创建关系。

这有效,但我不想在我的数据excel文件中创建数据透视表,我希望它尽可能干净,只将它作为数据源。

所以......我认为最终的目标是建立第三个相关表,其中colums是Month和%Diff,但是进入这些colums的数据来自此文件中的数据透视表。我试图创建一个数据透视表,然后复制我的数据模型中的单元格但不能建立任何关系,我不知道当我的数据更新时,新表也会更新:/

而且..我不知道为此创建一个数据透视表是否正确。不能直接从数据模型中完成吗?

2 个答案:

答案 0 :(得分:1)

您有哪个版本的Excel?如果您使用Excel 2013或更高版本,则可以使用称为数据模型的内容来执行此操作。数据模型允许您使用名为DAX的类似Excel的公式语法编写可在数据透视表中使用的公式(称为Measures)。 DAX有一些非常方便的时间智能功能,可以轻松地比较一个时期和另一个时期。

Excel的高端版本捆绑了一个名为PowerPivot的用户界面,它可以让您在数据模型中处理大量数据。有关PowerPivot插件附带的版本列表,请参阅this link。但是,即使没有PowerPivot插件,您仍然可以使用低端版本编写DAX Measures,正如Mike Girvin的视频here所示。

答案 1 :(得分:0)

好的,设法解决它,感谢@jeffreyweir指出我正确的方向。我使用数据模型使用我的事件表和日期表(基本上是日历助手表)创建我的数据库,然后使用DAX公式创建3个度量。

第一项指标只计算行号目中的总条目数:

Number of Incidents:=COUNTA(Incidents[Call Number])

然后我创建一个显示上个月值的度量:

Incidents SPLM:=IF([Number of Incidents]<>0;CALCULATE(COUNTA(Incidents[Call Number]);PREVIOUSMONTH(Calendar[Date]));BLANK())

然后创建了第三个度量,计算与上个月的差异:

Inc % Diff:=IF[Incidents SPLM]<>0;([Number Of Incidents]/[Incidents SPLM])-1;BLANK())

et voila