数据透视表非常适合某些类型的数据分析。由于数据透视表进行了大量的数字运算,因此Excel用来更快地处理它们的一种技术是创建“中间数据集”

跟…​共事。默认情况下,此中间数据​​集与工作表一起存储,因此数据透视表可以有时有时会大大增加工作簿的大小。

如果您的工作簿包含多个数据透视表(全部基于一个数据源),则Excel可以为每个数据透视表创建一个中间数据集,而不是使用一个中间数据集。当然,这可能会很快增加工作簿的大小。

您可以通过修改将数据透视表放在一起的数据透视表向导中选择的选项来控制Excel如何创建中间数据集。如果您的工作簿中有一个数据透视表,并且第二次运行数据透视表向导时,您指定了在现有数据透视表中使用的相同数据源,则Excel会通知您“如果您的新报表基于您的新报表,它将使用更少的内存现有报告。”如果单击“是”,则将节省内存,因为Excel将使用与其他数据透视表相同的中间数据。

您还可以指示Excel不要将中间数据表与工作簿保存在同一磁盘文件中。这将使您的工作簿文件的大小变得小得多,但也需要每次打开工作簿时刷新数据透视表。请按照下列步骤操作:

。像往常一样运行数据透视表向导来创建数据透视表。

。当您到达数据透视表向导的最后一个屏幕(上面带有方格标志的屏幕)时,单击“选项”按钮以显示“数据透视表选项”对话框。

。清除“使用表布局保存数据”复选框。

。选择刷新打开复选框。

。单击确定以关闭数据透视表选项对话框。

。完成数据透视表向导中的步骤。

如果您不需要,则不必选中“打开时刷新”复选框(第4步),但是如果您不想这样做,则需要记住每次打开工作簿时都要手动刷新数据透视表。

如果您的工作簿中已经有很多数据透视表,并且您不想再经历创建它们的过程,则可以使用宏逐步浏览数据透视表并修改缓存索引,然后关闭对数据透视表的保存。中间数据到磁盘。下面的宏将完成这些任务:

Sub PTReduceSize()

Dim wks As Worksheet     Dim PT As PivotTable

For Each wks In ActiveWorkbook.Worksheets         For Each PT In wks.PivotTables             PT.RefreshTable             PT.CacheIndex = 1             PT.SaveData = False         Next     Next End Sub

宏运行后(不会花很长时间),您应该使用“另存为”选项保存工作簿。这将写入一个新的工作簿文件,您将能够比较此更改减少了工作簿大小的程度。但是,请记住,由于中间数据没有保存到磁盘,因此第一次打开工作簿时,数据透视表的刷新需要更长的时间。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2851)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: