小勤:大海,数据透视表作为统计分析的时候的确很好用,但每次都是选定区域后操作,现在数据增加了,结果数据透视表中没有将新的数据加进去啊。
大海:的确,直接基于普通数据源进行数据透视,数据增加的情况下,数据透视表是没办法识别到新的数据的。
小勤:那有什么办法实现数据增加的情况下,数据透视表的数据也跟着更新吗?
大海:当然啊。只有想不到,没有办不到。这其实就是经典的动态数据源问题。
小勤:动态,这个名称真好。那怎么实现呢?
大海:这个方法有不少,一般有3种。
第一种,即选择数据的时候选上所有的行,而不是只选择有数据的部分。比如选择数据源区域为:
这样源数据表里继续增加数据的时候,新的数据都会被包含进去。
这种方法最简单,但是,这样做有个问题,就是生成的结果表里有空白行或列。所以,一般人其实都不用这种方法了。
第二种,定义名称,用公式动态确定数据区域,具体方法如下:
【公式】-【定义名称】,在【新建名称】里定义名为“数据源”(按自己需要起名即可)的名称,引用位置输入公式:
=OFFSET(数据源!A1,0,0,COUNTA(数据源!A:A),COUNTA(数据源!1:1))
即通过OFFSET函数,通过计算行、列数的方式动态地获取到所有数据。
然后,在进行数据透视操作时,输入“数据源”名称为数据源,如下:
【确定】后的操作步骤与正常创建数据透视表的步骤完全一致,但生成的数据透视表使用的将是动态的数据源。
整体来说设置也不算复杂,所以一直以来,这种方法用得很多。
第三种:插入表格法——即将数据源转换为结构化的“表格”(为了避免和普通的数据表格概念混淆,现在很多文章或书籍称之为“超级表”),形成动态的数据源。具体操作方法如下:
【插入】-【表格】(或使用快捷键Ctrl T),按实际情况勾选“表包含标题”选项:
单击【确定】后,数据源表将被转换为结构化的“表格”,此时会出现“表格工具”菜单,说明“表格”已生成。
“表格”生成后,当插入数据透视表的时候,表/区域里默认为生成的“表格”的名称(如下图中的“表1”,用户在实际操作中的名称可能与此不同):
这样,后续操作步骤与正常创建数据透视表的操作步骤完全一致,但数据源已变成动态数据源。
这种插入表格的方式是我最喜欢的一种方式,因为简单快捷,也正被越来越多的人采用。
小勤:对比起来看,插入表格的方法真的很不错。那为什么大家不都用这种方法呢?
大海:怎么说呢,任何一种方法都是有其优点和缺点的。插入表格的方法简单快捷,但毕竟会对数据源表的样式进行了一定的改变,同时,在写公式、多工作表移动等方式上与原有的使用习惯不太一样,所以有些用户可能会不适应。
小勤:嗯,我以后在实际工作中都尝试一下,慢慢地去体会在什么样的情况下采用什么样的方法。