|
楼主 |
发表于 2010-4-29 21:39
|
显示全部楼层
数据透视表小结4
教程内容概要:
=====================================
一、Excel中刷新数据透视表的两种方法
1.手工刷新
2.自动刷新
二、数据透视表数据缓存
三、刷新数据透视表的注意事项
注:参考内容《Excel数据透视表大全》第3章
=====================================
一、为什么需要刷新数据透视表?
数据源经常变化、数据透视表需要呈现最新数据。
二、Excel中刷新数据透视表的两种方法
1、手工刷新
(1)右键菜单,刷新数据
(2)数据透视表工具栏,刷新数据按钮
窗口-新建窗口,此时会打开一个同样的工作簿,窗口中选择“与工作簿**并排比较”,这样可在并排的两个工作簿中将数据源与透视表刷新进行直观对比
2、自动刷新
(1)打开时刷新
表格选项,勾选“打开时刷新”,确定。
(2)定时刷新(仅用于外部数据源)刷新频率
表格选项,刷新频率,以分钟为单位设定。
[color=Red]3、使用vba代码来执行刷新
如VBA不能使用,工具,宏,安全性,将宏安全性设置为“中”,确定。
(1)激活工作表时刷新
在工作表标签单击鼠标右键,查看代码,或者直接按Alt+F11打开VBE窗口,在工程窗口中选中相应的工作表名称,在右侧的代码窗口中输入- Private Sub Worksheet_Activate()
- ActiveSheet.PivotTables("数据透视表").PivotCache.Refresh
- End Sub
复制代码 代码中的PivotTables("数据透视表")可以直接指定,如根据需要指定工作表中第几个透视表:PivotTables(1)或PivotTables(2)
(2)打开工作簿时刷新- Private Sub Workbook_Open()
- Sheets(1).PivotTables(1).PivotCache.Refresh
- End Sub
复制代码 其中的Sheets(1)可以根据需要灵活指定
(3)批量刷新:
插入图片-自选图形-矩形框,在工作表中拖动,在矩形框上单击右键菜单,指定宏,选择宏进行编辑,单击确定。代码如下:- Sub 矩形1_单击()
- ThisWorkbook.RefreshAll
- End Sub
复制代码 4、使用EXCEL自带按钮进行批量刷新
直接点击透视表工具栏上“全部刷新”的按钮
添加按钮的两种方法:
(1)单击数据透视表工具栏上的“工具栏选项”按钮,自定义,命令选项卡,类别选项下选择“数据”,命令选项下拖动“全部刷新”,使其添加到数据透视表工具栏(或EXCEL工具栏中),关闭自定义。
(2)如果只想添加到数据透视表工具栏,在数据透视表工具栏中,单击“工具栏选项”,“添加或删除按钮”,“数据透视表”,弹出菜单中,勾选“全部刷新”,或者取消勾选,以实现添加和删除按钮。
5、如何使用外部数据源,创建透视表。
点击数据-导入外部数据-导入数据-选中外部数据源,选择相应的表格,确定,选择数据的放置位置(现有工作表、新建工作表)。
或直接单击创建数据透视表,数据透视表显示位置(新建工作表、现有工作表),完成,添加相应的字段。
二、共享数据缓存
数据透视表的数据缓存是计算机内存中的一个指定区域用于存储报表数据。
基于同一单元格区域或数据连接的两个或多个数据透视表之间自动共享缓存,可以实现同时刷新。当透视表用作其他数据透视表的数据源时,对其中任何一张数据透视表刷新,都会引起所有链接在一起的数据透视表进行刷新
优势:提高性能的同时减小了工作簿的大小。
1、下列情况不能共享数据缓存:
不希望所有数据透视表中都显示计算字段和计算项。
不希望在所有数据透视表中都按同一方式分组字段。
不希望同时刷新所有数据透视表。
2、如何使用数据缓存
已经有数据透视表,再创建新的数据透视表的时候会有提示:“如果新报表基于现在的、创建自同一源数据的报表,则新报表可以使用较少的内存。是否让新报表建立在与现在报表相同的数据上?
单击“是”按钮时可以节省内存并使工作表较小。
单击“否”按钮时,两个报表各自独立。
需要注意的是:使用共享数据缓存建立的透视表,当其中一个透视表更新时所有透视表同步更新。
具体过程如下:选择数据透视表中的任意一个单元格,单击数据透视表,公式,计算字段,添加一个新的字段,名称“销售提成”,公式“=销售收入*0.005”,确定。修改字段标题(将求和项替换为空格)。
再看其他的数据透视表,这时候可以看到共享缓存的透视表添加了“销售提成”的字段,非共享的透视则没有“销售提成”的字段。
修改数据源,单击非共享透视表进行刷新按钮,透视表进行了更新,共享的透视表则没有进行刷新,选择共享数据透视表,单击刷新按钮,此时两个共享的数据透视表,内容都进行了刷新。
三、刷新数据透视表的注意事项
1、海量数据源将导致刷新速度非常慢
2、如何清除“垃圾条目”
比如:将源数据中C更改为F,刷新透视表,透视表中的C已经更改为F,在类别的下拉菜单中,C却还存在,也就是说下拉菜单中只是添加了新的类别,而没有删除原来的类别,如何解决?
字段列表,删除类别,刷新透视表,将类别重新添加到行字段
3、数据源中新增的“行”和“列”用刷新的方法无法更新到数据透视表中(需要创建动态的数据透视表)
=================================================
从教程扩展开来:
一、刷新引用外部数据的数据透视表;
如果创建的透视表是基于对外部数据的的查询,excel可以在用户工作时在后台执行数据查询
表格选项--外部数据选项--勾选“后台查询”
(注意:此功能只针对外部数据,否则为灰色)
二、关于创建动态数据透视表
1、用offset函数定义data动态引用数据区域
使用定义名称的方法来创建动态数据透视表,首先要要使用公式定义一个动态的数据源区域,当新的记录添加到数据源的时候,数据源区域会自动扩展。然后把定义的名称范围用于数据透视表,这样创建的透视表也将是动态的。
比如定义一个名称为data- =offset(数据源!$a$1,,,counta(数据源!$a$a),counta(数据源!$1$1))
复制代码 ps:“数据源”是动态数据所在工作表的名称。
在创建数据透视表时,数据区域对话框中填data即可使透视表动态更新。
2、使用列表功能
列表功能是excel2003中新增的功能,利用列表对数据源的自动扩展可以创建出动态的数据透视表。
单击数据区域任意单元格,ctrl+L或者单击“数据”-“列表”-“创建列表”根据具体情况勾选是否有标题,单击列表内创建透视表,这样列表创建的动态数据透视表就完成了。
当在数据区域添加记录时,刷新透视表即可看到新增的数据。
[ 本帖最后由 lrlxxqxa 于 2010-4-29 21:47 编辑 ] |
|