当您构建数据透视表时,Excel 会自动制作源数据的副本并将其保存在数据透视缓存中。
它是工作簿的一部分并链接到数据透视表,即使您看不到它。当您对数据透视表进行调整时,它使用数据透视缓存而不是数据源。 Excel 将数据透视缓存存储在其内存中。当您创建数据透视表、调整切片器选择或切换行/列时,数据透视表会引用数据透视缓存中的数据。
它允许 Excel 对数据透视表中的更改做出快速反应,但也会使文件大小增加一倍。即使您有数千行数据,数据透视表也会快速汇总它。将内容拖放到行/列等中以立即更改结果。要显示数据集合中的任何更改,您必须刷新数据透视表。
缺点: Pivot Cache 只是源数据的副本,因此您的文件大小自然会翻倍。
共享数据透视缓存:
创建引用相同源数据的数据透视表时,Excel 2007 及更高版本中的数据透视表通过重用相同的数据透视缓存变得更加有效。可以说,对于使用相同源数据的数据透视表,数据透视缓存是自动共享的。
这是有利的,因为它可以防止枢轴缓存复制,从而减少内存消耗,从而减少文件大小。
共享数据透视缓存的缺点:
- 当数据透视表共享相同的数据透视缓存时,字段分组也被共享。例如: ,如果您按价格范围对产品进行分组,则此更改也会反映在所有数据透视表中。
- 当您刷新一个数据透视表时,它会刷新连接到同一缓存的所有数据透视表。
- 如果在任何一个数据透视表中插入一个计算字段,它会出现在共享数据透视缓存的所有其他数据透视表中。
使用数据透视缓存:
对于使用相同的数据源,使用 Excel 表为数据透视表创建单独的缓存,请按照以下步骤操作:
- 单击数据源中的任意位置,然后使用快捷键CTRL + T将数据转换为 Excel 表格(在开始构建数据透视表之前)。另一种方法是,在功能区的“插入”选项卡上,单击“表格”按钮。
- 将弹出创建表对话框。单击确定以确认表的数据。
- 当您构建 Excel 表格时,功能区上会出现一个设计选项卡。 “设计”选项卡最左侧的“表名称”框显示表名称,默认情况下为 Table1。
- 现在,在功能区的设计选项卡上,按使用数据透视表汇总按钮开始开发数据透视表的过程。单击“使用数据透视表汇总”按钮后,将弹出创建数据透视表的对话框。
选择数据透视表的位置,然后单击“确定”。
- 您现在必须将表格转换为正常范围。为此,首先选择数据范围内的任何单元格,然后转到功能区的设计选项卡并单击转换为范围按钮。
- 现在,您可以再次从同一数据源新建一个表,但它必须具有不同的名称——Excel 默认情况下会为其指定一个不同的名称,很可能是 Table2。以与以前相同的方式使用此新 Excel 表创建下一个数据透视表。
Excel 可以将 Excel 表视为单独的数据源,并在重命名后构建单独的缓存。
如何获取工作簿中总数据透视表缓存的计数?
按照以下步骤获取工作簿中数据透视表缓存总数:
- 首先,按 ALT+F11 启动 Visual Basic 编辑器。立即窗口位于屏幕的右下角。如果它尚未打开,请使用快捷键 CTRL+G 将其打开。
- 在该即时窗口中,输入以下代码:
Count of ActiveWorkbook.PivotCaches
- 然后按 ENTER 键以获取工作簿中总数据透视表缓存的计数。
减少文件大小(由于数据透视缓存而增加):
由于数据透视表保存数据的缓存副本,因此您可以删除原始数据源,数据透视表将继续工作。这将大大减少文件大小。
然后,您还可以使用数据透视表重新创建数据源。为此,在数据透视表的值区域中,放置一个字段并将其他区域留空。
如果您双击数据透视表中计算出的值,则数据库的缓存版本将构建在单独的工作表上。 (示例:在我们的示例中双击 Sum of Price/kg)
即使您删除了数据源,您也将获得所有产品的总和。