本篇文章给大家做一个数据透视表的数据刷新汇总,介绍动态刷新数据的三种方法:VBA自动刷新透视表、超级表、现有连接。这几种刷新方式总有一个适合你,操作也是超简单的,都是点几下按钮就可以完成动态刷新,记着收藏哟!
数据透视表是EXCEL中常用的技能,它能帮助我们快速统计分析大量数据。并且随着布局的改变,数据透视表会立即按照新的布置重新计算数据,在日常工作中非常实用。但是数据源如果有新增,数据透视表是无法同步更新的。那今天就给大家介绍几个Excel数据透视表动态刷新数据的方法。
如图,这个数据源列出了不同城市的销售额。
一、数据透视表基础刷新
1.选择表区域任一单元格,点击插入选项卡下的“数据透视表”。
2.在“创建数据透视表”窗口,表区域就自动选择了所有连续区域,为了方便查看,把数据透视表位置放在同一个工作表下。点击确定。
3.现在把“城市”放到行标签,“销售额”放到值区域范围。为了方便对比,后续也按照同样的方式创建。
完成如下:
4.接下来表格最后一行新增数据如下,这时合计值由原本的255418变成了258418。
5.选中数据透视表,菜单栏上方就会出现数据透视表工具,点击“分析”选项卡下的“刷新”。
但是数据透视表没有变化 。
6.这种情况是因为数据透视表的数据源区域没有把新增的这行添加进来,那就需要修改数据源。选中数据透视表,点击数据透视表工具下方“分析”选项卡下的“更改数据源”。
然后在“更改数据透视表数据源”窗口的表区域里重新选择区域,把新增的行也选中。区域修改成“Sheet1!$A$1:$D$71
”。
再次点击刷新就可以了。
通过这个例子,我们发现如果数据增加,数据透视表就需要进行更改数据源来更新,但是实
际工作中如果遇到频繁的数据变动,有没有什么方法可以快速实现Excel数据透视表刷新呢?
二、Excel数据透视表动态刷新数据
1)VBA自动刷新透视表
1.选中工作表数据的A到D列,添加数据透视表放在同一个工作表中。
设置完成如下:
2.点击“开发工具”选项卡下的插入,ActiveX控件里的命令按钮, 在工作表创建一个按钮。
如果表格没有开发工具这个选项卡,点击文件—选项,在“EXCEL选项”窗口左侧的“自定义功能区”,从“主选项卡”选择“开发工具”添加到右侧自定义功能区。
3.在工作表右键点击刚添加的按钮,选择“查看代码”。在调出的VBA窗口输入下列代码。
Private Sub
CommandButton1_Click()
ActiveSheet.PivotTables("数据透视表9").PivotCache.Refresh
End Sub
代码中数据透视表9是数据透视表的名称。
4.然后再点击开发工具选项卡的“设计模式”,取消按钮的设计模式。按钮就能正常点击了。
5.在工作表数据源最后添加一行数据如下,添加之后合计值是258418
6.然后点击按钮进行刷新,数据透视表就能实时更新了。
小结:这个方法是在选择数据源的时候就囊括了其他空白区域,后续再添加数据也能动态更新。并且通过VBA添加按钮,更加方便的进行刷新操作。不过问题是一旦选择的其他区域出现了无效数据的时候,数据透视表也会将其纳入进来。
2)现有连接刷新数据透视表
1.点击数据选项卡下的“现有连接”。在弹出窗口点击“浏览更多”。
2.在“选取数据源”窗口找到该工作簿,点击打开
在“选择表格”窗口找到放数据的工作表,点击“确定”。
3.在“导入数据”窗口选择数据以数据透视表方式显示,为了方便查看效果,这里放在现有工作表 。
完成如下:
4.同样在最后一行添加数据如下,添加之后合计值变成了258418
5.选中数据透视表,在数据透视表工具下的“分析”选项卡,点击“刷新”。数据透视表就能自动刷新数据了。
小结:这个方法是把EXCEL工作表变成一个连接,通过连接来插入数据透视表。优点是工作表的变动可以及时更新,但同样,当我们选择这种方法的时候,工作表就不能放其他数据,数据透视表也尽量建立在其他工作表,避免错误。
3)超级表实现Excel数据透视表刷新
1.选中工作表区域的任一单元格,按住Ctrl+T,如下窗口中表数据来源会自动把工作表区域选中,这里的表格首行就是标题,所以勾选“表包含标题”。
2.根据这个超级表插入数据透视表。选择表区域任一单元格,在同一工作表插入数据透视表。表区域会设置为超级表的名称:表5。
同样把“城市”放到行标签,“销售额”放到值区域范围。完成如下:
3.在表格最后一行添加数据如下,添加之后合计值是258418
4.选中数据透视表,在数据透视表工具下的“分析”选项卡,点击“刷新”。这样就实现了动态更新。
超级表是从Excel2007开始增加的功能,它解决了前两种方法无法智能选择数据源区域的问题。超级表能够自动增减数据源区域,这是它作为动态数据源最大的优势。
方法介绍完了,以上三种各有优劣,希望大家根据工作中的实际需求来灵活选择。觉得不错的话,给我点赞吧!