标签:
杂谈 |
分类: Excel |
傻瓜式报表,原来是这样子的,恨没早知道
A:老板,能不能帮我设计个表?
B:什么表?
A:是这样的,我自己做了个表,但是我想发给我手下的员工用,用来统计各分店的日常营收……
B:恩,你遇到什么问题了么?
A:我自己有一定的基础,但是下面的员工,文化水平不高,他们不会操作,我想弄个简单的表,能用函数帮我设计个自动统计的表么?
B:你现在的表发来看看吧
……
这是前几天某个客户来咨询业务和我的对话,他发来的表示流水账,最后要按照一定的规则统计,如果用函数的话,通常需要这么几步:
1.先对统计条件自选进行一个唯一性的筛选,比如哪些员工,哪些门店等(这个就涉及到数组函数了)
2.运用各种sumif,sumproduct,vlookup之类的去数据源取数(通常这个地方问题都不大,唯一需要担心的可能是数据量大了的话,公式运算耗时,迟滞系统)
3.还得解决数据不断增加,公式不断扩展的问题(如果普通员工连填充公式都不会的话,动态更新统计结果这着实是个问题)
看到清单,很多人可能想到用VBA编程来实现。但是映入我脑海的第一个问题就是这个其实是可以用数据透视表来解决的问题,关键是这个东西会的人就觉得很简单,简单的几步拖拽就能出结果,但是没学过的人,操作上就是个难题,怎么破?
有办法,那就是数据透视表的动态呈现,即结果自动随着数据的更新而更新。下面具体来看要怎么做?
一、定义数据源
我们知道名称可以代表数据区间,比直接引用数据有更好的灵活性,方法有二:
1.自定义名称
公式菜单——名称管理器——新建,输入如下定义的公式
Data=offset($A$1,0,0,counta(A:A),counta(1:1))
注意此处offset函数和counta的搭配使用,offset好理解,那么counta表示计算不为空的计数和,我们对行、列分别进行counta计算,就是为了实现数据边界自动扩展的功能,当数据有增减时,靠这个来放大缩小数据范围,从而实现名称动态定义数据区间的目的。
2.插入表
表是一种特殊的形式,它有一个突出的特点是表中的数据都能自动套用相同的格式,自动识别扩展,是体现excel智能化的很重要的一个方面。相较于上面的方法,表的方法更好,因为可以实现一些含公式的计算字段的自动填充,省去了人为的复制填充公式的麻烦,正符合此案例客人的要求。


二、修改数据源
我们要想让数据透视表跟着数据清单的变化而变化的话,得想办法使数据透视表引用的数据源能够动态关联。
改哪里?如下图所示:

输入上述随便一种的自定义名称即可,这样就相当于把这个名称代表的动态数据源区域赋给了数据透视表
三、生成报表
生成透视表,按照汇总的要求,调整字段,使透视表出现自己想要的效果,注意此时的名字,这个也属于名称的范畴,只是系统带出来的而已,名字都可以改的

四、自动刷新
到了前面三步,基本上大功告成了,当数据有更新的时候,我们手动刷新即可,就是点两下鼠标的问题,鼠标右键-刷新数据即可。
可是有人担心连这个都不会,那该如何是好,其实可以自动刷新,这个就要用到编程知识了。
Alt+F11,调出VBE编辑器,输入代码即可

注意“数据透视表1”,这个名称是创建透视表自动生成的,这个名字可以改。记得不是所有的都是数据透视表1的,有的时候反复增删,调用了多次数据透视表缓存的话,那么名字可能就不一样,最好自己取个名字。
回到工作表,当激活图表所在的sheet名字时,程序就会自动更新数据,这样操作的人最傻瓜式的,啥都不用做,点进来就好了。
总结:
由这个例子可以看出来,大多数的涉及用统计函数计算动态的汇总结果时,都可以用数据透视表来完成。经过上面几步的设置后,相信还笨的人都能操作。而且数据透视表操作简单,统计数据分分钟,量越大越能体现它的优势。