![Excel数据透视表应用之道(双色板)](https://wfqqreader-1252317822.image.myqcloud.com/cover/824/844824/b_844824.jpg)
第4章 刷新数据透视表
为了使数据透视表可以实时反映数据源的最新情况,当数据源的内容有所改变时,就需要对数据透视表进行刷新,从而使用数据源的最新内容来更新数据透视表。本章将介绍手动和自动刷新数据透视表的多种方法。
本章要点
❖ 刷新数据透视表的时机
❖ 手动刷新数据透视表
❖ 自动刷新数据透视表
4.1 刷新数据的时机
什么时候需要刷新数据透视表中的数据呢?通常在两种情况下必须刷新数据:修改了数据源中的某些内容;改变了数据源的区域大小,例如新增或删除了数据源中的某些行或列,从而导致数据区域变大或变小。至于刷新数据透视表的方法,可谓多种多样,而且适用于不同情况。
那么为什么必须刷新数据透视表呢?答案很简单,因为不刷新数据透视表,就不能在数据透视表中体现数据源的最新内容。换句话说,如果在创建数据透视表后对数据源又进行了修改,那么在不刷新的情况下,数据透视表中所使用的字段和数据都是数据源修改前的内容。
4.2 手动刷新数据透视表
刷新数据透视表最简单的方法就是使用手动刷新,即通过单击功能区的命令来完成刷新操作。然而,虽然是手动刷新,但是操作起来并不麻烦。根据数据源的范围是否发生改变,手动刷新可以分为两种情况。
4.2.1 刷新未改变范围的数据源
最简单的一种情况就是,对数据源中的一个或多个单元格中的内容进行了修改,与创建数据透视表之初时的数据源已经不完全一样了。如果希望数据透视表可以及时地捕获新的数据源内容,那么就需要对数据透视表执行刷新操作。
为了便于演示修改数据源前后以及刷新数据透视表前后的效果,本例中只使用了少量的数据,如图4-1所示为数据源。
![](https://epubservercos.yuewen.com/A6B37F/5809690203875201/epubprivate/OEBPS/Images/figure_0067_0001.jpg?sign=1738868983-0Q8MV8IraaneKKC4BPlVhm9EakGBhMou-0-95df61c90fb9b2da6660785b22acf487)
图4-1 原始数据源
首先我们使用如图4-1所示的数据源创建一个数据透视表,对字段布局后的结果如图4-2所示。
![](https://epubservercos.yuewen.com/A6B37F/5809690203875201/epubprivate/OEBPS/Images/figure_0068_0001.jpg?sign=1738868983-IjsrJejY7O9o3T1dJ1UwocbikdA6cGMy-0-30620b11c4af8b217c0acbf092c4952f)
图4-2 使用原始数据源创建的数据透视表
接下来,我们将数据源中所有部门为“工程部”的工资都改为5000,结果如图4-3所示。可以发现,数据透视表“部门”字段中的“工程部”项中的数据并没有随数据源而自动变化。
![](https://epubservercos.yuewen.com/A6B37F/5809690203875201/epubprivate/OEBPS/Images/figure_0068_0002.jpg?sign=1738868983-TCvO8hwz7vljpJkTqCmzsfbcv5GSFJNp-0-83e1a19d877d372ce458d8e6ed17ce30)
图4-3 修改后的数据源
接下来是最重要的一步,右击数据透视表中的任意一个单元格,在弹出菜单中选择【更新】命令,或者单击功能区中的【选项】⇨【数据】⇨【刷新】按钮。此时,数据透视表中“部门”字段中的“工程部”项中的数据会自动更新,结果如图4-4所示。
![](https://epubservercos.yuewen.com/A6B37F/5809690203875201/epubprivate/OEBPS/Images/figure_0069_0001.jpg?sign=1738868983-ucBcgmZVMVU0bvxfR1H395r5Dn0eC26B-0-5084508350fb3370d785b9af322d624f)
图4-4 更新数据透视表中的数据
提示:除了手动刷新数据透视表外,还可以在打开工作簿时自动更新数据透视表数据,具体方法请参考本章4.3.1节。
4.2.2 刷新已改变范围的数据源
当数据透视表的数据源范围扩大或缩小后,此时就不能使用4.2.1节介绍的刷新数据透视表的方法来自动获取最新的数据源范围,而需要使用下面的方法,具体操作如下。
1 单击数据透视表区域中任一单元格,然后单击功能区中的【选项】⇨【数据】⇨【更改数据源】按钮。
2 打开【更改数据透视表数据源】对话框,而且将自动切换到数据源所在的工作表,虚线框包围的区域是原来的数据源范围,如图4-5所示。
![](https://epubservercos.yuewen.com/A6B37F/5809690203875201/epubprivate/OEBPS/Images/figure_0069_0002.jpg?sign=1738868983-zcGFgzxK7ZHjykOaPKaaXfdBgsRMvOHD-0-28aba76b39141aa50d8a8c35852be7df)
图4-5 虚线框包围的区域是原来的数据源范围
3 在数据源所在的工作表中选择改变后的数据源范围,如图4-6所示。
![](https://epubservercos.yuewen.com/A6B37F/5809690203875201/epubprivate/OEBPS/Images/figure_0070_0001.jpg?sign=1738868983-ffUOiyEIpqVhzIn6orVFqLMJwtunh6Zj-0-09a8fd4021b765b33691b701b6009bef)
图4-6 选择数据源的最新范围
4 单击【确定】按钮,返回数据透视表所在的工作表,将使用新选择的数据源范围来更新数据透视表中的内容,如图4-7所示。
![](https://epubservercos.yuewen.com/A6B37F/5809690203875201/epubprivate/OEBPS/Images/figure_0070_0002.jpg?sign=1738868983-THMwEu4sYz0FvSah7DEAeyyV7k6S16XP-0-e04fd8c9d2ff8d64c3b11d7e90a2f550)
图4-7 使用新的数据源范围更新数据透视表的内容
技巧:使用OFFSET函数可以创建动态的数据透视表,具体方法请参考本书第11章。
4.3 自动刷新数据透视表
除了上一节介绍的手动刷新数据透视表的方法以外,我们还可以通过自动刷新来避免手动操作的麻烦,从而让数据透视表的刷新实现自动化操作。可以在打开工作簿时自动刷新其中指定的数据透视表,也可以定时刷新数据透视表,还可以使用VBA代码刷新工作簿中的多个数据透视表。
4.3.1 打开Excel工作簿时自动刷新
如果希望在每次打开包含数据透视表的工作簿时,无论数据源中的内容是否有所修改,都先对数据透视表刷新一遍,那么可以进行以下设置。
1 右击数据透视表中的任意一个单元格,在弹出菜单中选择【数据透视表选项】命令。
2 打开【数据透视表选项】对话框。在【数据】选项卡中选中【打开文件时刷新数据】复选框,如图4-8所示。
![](https://epubservercos.yuewen.com/A6B37F/5809690203875201/epubprivate/OEBPS/Images/figure_0071_0001.jpg?sign=1738868983-Ju0M3yeqZLByIHzRhNZTrs1GuooAW9yx-0-9263a53b579e8065e049038241f7fe3a)
图4-8 选中【打开文件时刷新数据】复选框
3 单击【确定】按钮,完成设置。
技巧:可以在刷新数据透视表时自动调整数据透视表中单元格的列宽,使列宽正好能够容纳单元格中内容的宽度。右击数据透视表中任意一个单元格,在弹出菜单中选择【数据透视表选项】命令,打开【数据透视表选项】对话框。在【布局和格式】选项卡中选中【更新时自动调整列宽】复选框,如图4-9所示,然后单击【确定】按钮。
![](https://epubservercos.yuewen.com/A6B37F/5809690203875201/epubprivate/OEBPS/Images/figure_0072_0001.jpg?sign=1738868983-F2O2fRMisRmEABXX117TC7YMABZ5sx3T-0-f6a7441fdf4b9946d7c755c03ce49583)
图4-9 选中【更新时自动调整列宽】复选框
4.3.2 定时自动刷新
如果使用外部数据源创建的数据透视表,那么我们还可以让数据透视表在指定时间间隔自动定时刷新。这样可以实现过一段指定时间就自动刷新一次数据透视表,从而使用户从实时监控数据源并手动刷新中解脱出来。
例如,我们可以在Excel中使用另一个工作簿中的工作表数据来作为数据源,从而创建一个数据透视表,然后设置定时刷新,具体操作如下。
1 新建一个工作簿,然后单击功能区中的【数据】⇨【获取外部数据】⇨【现有连接】按钮,打开【现有连接】对话框,如图4-10所示。
![](https://epubservercos.yuewen.com/A6B37F/5809690203875201/epubprivate/OEBPS/Images/figure_0072_0002.jpg?sign=1738868983-IhsEo7NpIGSYkPApg4JpyOtwPTuDKZTC-0-24a4706317b5046cbe610d639e718fb5)
图4-10 【现有连接】对话框
2 单击【浏览更多】按钮,打开【选取数据源】对话框,选择包含数据源的工作簿,如图4-11所示。
![](https://epubservercos.yuewen.com/A6B37F/5809690203875201/epubprivate/OEBPS/Images/figure_0072_0003.jpg?sign=1738868983-mepcWpF0D2qADdOsp7v6pwucd4byAmfS-0-925aa1b44c42ffc8107da27d0a157181)
图4-11 选择数据源
3 单击【打开】按钮,打开【选择表格】对话框,选择数据源所在的工作表,如图4-12所示。
![](https://epubservercos.yuewen.com/A6B37F/5809690203875201/epubprivate/OEBPS/Images/figure_0073_0001.jpg?sign=1738868983-rOREQMIzpG6xvZChjdO9AufkQdmZT0mX-0-97fb6da1c95a798d82524548a140e239)
图4-12 选择数据源所在的工作表
4 单击【确定】按钮,打开如图4-13所示的【导入数据】对话框,选中【数据透视表】单选框,然后选择要创建数据透视表的位置。
![](https://epubservercos.yuewen.com/A6B37F/5809690203875201/epubprivate/OEBPS/Images/figure_0073_0002.jpg?sign=1738868983-ukJe5T74iFqS7kcu7eHbv1j7R7QRAGD0-0-ec54ce15f1073db8760773f1007405f3)
图4-13 选中【数据透视表】单选框并指定位置
5 单击【属性】按钮,打开【连接属性】对话框,在【使用状况】选项卡中选中【刷新频率】复选框,并在右侧设置一个时间间隔(以分钟为单位),如图4-14所示。
![](https://epubservercos.yuewen.com/A6B37F/5809690203875201/epubprivate/OEBPS/Images/figure_0073_0003.jpg?sign=1738868983-KWZ0opFehx5tqUaQQHAkpy5hq8E3oSYg-0-c37829b90ea2408b7b4136c2a28fd0d3)
图4-14 设置刷新的时间间隔
6 单击两次【确定】按钮,将在当前工作表中创建一个可以自动定时刷新的数据透视表。
如果以后需要调整刷新的时间间隔,那么可以单击数据透视表内的任意一个单元格,然后单击功能区中的【选项】⇨【数据】⇨【更改数据源】按钮,在弹出菜单中选择【连接属性】命令,如图4-15所示。然后在打开的【连接属性】对话框中修改刷新频率即可。
![](https://epubservercos.yuewen.com/A6B37F/5809690203875201/epubprivate/OEBPS/Images/figure_0074_0001.jpg?sign=1738868983-0axXgt6RRtcaBvcfjTDM6hluZHcHoPWc-0-c4e322d57f7e901c699e793cf8141d30)
图4-15 选择【连接属性】命令
4.3.3 刷新工作簿中的多个数据透视表
如果希望刷新工作簿中的多个数据透视表,最麻烦的一种方法是为每一个数据透视表按照4.3.1节的方法设置打开工作簿时自动刷新。如果觉得这种方法太麻烦,那么可以编写VBA代码来批量刷新工作簿中的多个数据透视表。代码如下:
Sub刷新所有数据透视表() ThisWorkbook.RefreshAll End Sub