Excel数据透视表应用之道(双色板)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第4章 刷新数据透视表

为了使数据透视表可以实时反映数据源的最新情况,当数据源的内容有所改变时,就需要对数据透视表进行刷新,从而使用数据源的最新内容来更新数据透视表。本章将介绍手动和自动刷新数据透视表的多种方法。

本章要点

❖ 刷新数据透视表的时机

❖ 手动刷新数据透视表

❖ 自动刷新数据透视表

4.1 刷新数据的时机

什么时候需要刷新数据透视表中的数据呢?通常在两种情况下必须刷新数据:修改了数据源中的某些内容;改变了数据源的区域大小,例如新增或删除了数据源中的某些行或列,从而导致数据区域变大或变小。至于刷新数据透视表的方法,可谓多种多样,而且适用于不同情况。

那么为什么必须刷新数据透视表呢?答案很简单,因为不刷新数据透视表,就不能在数据透视表中体现数据源的最新内容。换句话说,如果在创建数据透视表后对数据源又进行了修改,那么在不刷新的情况下,数据透视表中所使用的字段和数据都是数据源修改前的内容。

4.2 手动刷新数据透视表

刷新数据透视表最简单的方法就是使用手动刷新,即通过单击功能区的命令来完成刷新操作。然而,虽然是手动刷新,但是操作起来并不麻烦。根据数据源的范围是否发生改变,手动刷新可以分为两种情况。

4.2.1 刷新未改变范围的数据源

最简单的一种情况就是,对数据源中的一个或多个单元格中的内容进行了修改,与创建数据透视表之初时的数据源已经不完全一样了。如果希望数据透视表可以及时地捕获新的数据源内容,那么就需要对数据透视表执行刷新操作。

为了便于演示修改数据源前后以及刷新数据透视表前后的效果,本例中只使用了少量的数据,如图4-1所示为数据源。

图4-1 原始数据源

首先我们使用如图4-1所示的数据源创建一个数据透视表,对字段布局后的结果如图4-2所示。

图4-2 使用原始数据源创建的数据透视表

接下来,我们将数据源中所有部门为“工程部”的工资都改为5000,结果如图4-3所示。可以发现,数据透视表“部门”字段中的“工程部”项中的数据并没有随数据源而自动变化。

图4-3 修改后的数据源

接下来是最重要的一步,右击数据透视表中的任意一个单元格,在弹出菜单中选择【更新】命令,或者单击功能区中的【选项】⇨【数据】⇨【刷新】按钮。此时,数据透视表中“部门”字段中的“工程部”项中的数据会自动更新,结果如图4-4所示。

图4-4 更新数据透视表中的数据

提示:除了手动刷新数据透视表外,还可以在打开工作簿时自动更新数据透视表数据,具体方法请参考本章4.3.1节。

4.2.2 刷新已改变范围的数据源

当数据透视表的数据源范围扩大或缩小后,此时就不能使用4.2.1节介绍的刷新数据透视表的方法来自动获取最新的数据源范围,而需要使用下面的方法,具体操作如下。

1 单击数据透视表区域中任一单元格,然后单击功能区中的【选项】⇨【数据】⇨【更改数据源】按钮。

2 打开【更改数据透视表数据源】对话框,而且将自动切换到数据源所在的工作表,虚线框包围的区域是原来的数据源范围,如图4-5所示。

图4-5 虚线框包围的区域是原来的数据源范围

3 在数据源所在的工作表中选择改变后的数据源范围,如图4-6所示。

图4-6 选择数据源的最新范围

4 单击【确定】按钮,返回数据透视表所在的工作表,将使用新选择的数据源范围来更新数据透视表中的内容,如图4-7所示。

图4-7 使用新的数据源范围更新数据透视表的内容

技巧:使用OFFSET函数可以创建动态的数据透视表,具体方法请参考本书第11章。

4.3 自动刷新数据透视表

除了上一节介绍的手动刷新数据透视表的方法以外,我们还可以通过自动刷新来避免手动操作的麻烦,从而让数据透视表的刷新实现自动化操作。可以在打开工作簿时自动刷新其中指定的数据透视表,也可以定时刷新数据透视表,还可以使用VBA代码刷新工作簿中的多个数据透视表。

4.3.1 打开Excel工作簿时自动刷新

如果希望在每次打开包含数据透视表的工作簿时,无论数据源中的内容是否有所修改,都先对数据透视表刷新一遍,那么可以进行以下设置。

1 右击数据透视表中的任意一个单元格,在弹出菜单中选择【数据透视表选项】命令。

2 打开【数据透视表选项】对话框。在【数据】选项卡中选中【打开文件时刷新数据】复选框,如图4-8所示。

图4-8 选中【打开文件时刷新数据】复选框

3 单击【确定】按钮,完成设置。

技巧:可以在刷新数据透视表时自动调整数据透视表中单元格的列宽,使列宽正好能够容纳单元格中内容的宽度。右击数据透视表中任意一个单元格,在弹出菜单中选择【数据透视表选项】命令,打开【数据透视表选项】对话框。在【布局和格式】选项卡中选中【更新时自动调整列宽】复选框,如图4-9所示,然后单击【确定】按钮。

图4-9 选中【更新时自动调整列宽】复选框

4.3.2 定时自动刷新

如果使用外部数据源创建的数据透视表,那么我们还可以让数据透视表在指定时间间隔自动定时刷新。这样可以实现过一段指定时间就自动刷新一次数据透视表,从而使用户从实时监控数据源并手动刷新中解脱出来。

例如,我们可以在Excel中使用另一个工作簿中的工作表数据来作为数据源,从而创建一个数据透视表,然后设置定时刷新,具体操作如下。

1 新建一个工作簿,然后单击功能区中的【数据】⇨【获取外部数据】⇨【现有连接】按钮,打开【现有连接】对话框,如图4-10所示。

图4-10 【现有连接】对话框

2 单击【浏览更多】按钮,打开【选取数据源】对话框,选择包含数据源的工作簿,如图4-11所示。

图4-11 选择数据源

3 单击【打开】按钮,打开【选择表格】对话框,选择数据源所在的工作表,如图4-12所示。

图4-12 选择数据源所在的工作表

4 单击【确定】按钮,打开如图4-13所示的【导入数据】对话框,选中【数据透视表】单选框,然后选择要创建数据透视表的位置。

图4-13 选中【数据透视表】单选框并指定位置

5 单击【属性】按钮,打开【连接属性】对话框,在【使用状况】选项卡中选中【刷新频率】复选框,并在右侧设置一个时间间隔(以分钟为单位),如图4-14所示。

图4-14 设置刷新的时间间隔

6 单击两次【确定】按钮,将在当前工作表中创建一个可以自动定时刷新的数据透视表。

如果以后需要调整刷新的时间间隔,那么可以单击数据透视表内的任意一个单元格,然后单击功能区中的【选项】⇨【数据】⇨【更改数据源】按钮,在弹出菜单中选择【连接属性】命令,如图4-15所示。然后在打开的【连接属性】对话框中修改刷新频率即可。

图4-15 选择【连接属性】命令

4.3.3 刷新工作簿中的多个数据透视表

如果希望刷新工作簿中的多个数据透视表,最麻烦的一种方法是为每一个数据透视表按照4.3.1节的方法设置打开工作簿时自动刷新。如果觉得这种方法太麻烦,那么可以编写VBA代码来批量刷新工作簿中的多个数据透视表。代码如下:

Sub刷新所有数据透视表()
    ThisWorkbook.RefreshAll
End Sub