Excel VBA之函数篇-3.17多列数据统计不头疼,准时下班好轻松

前景提要最近有同事让我帮忙看看有没有什么好方法来帮助他统计下假期期间各分店的销售总和,求和,不是有最简单的求和函数SUM吗?直接丢给他一句不是有求和公式嘛,但是他还是一脸无奈的让我过去帮忙,本着大家都是同事的心态,我还是跑过去看看有啥可帮忙的,一看数据,额,,,好像并不是一般的数据汇总那么简单呢场景说明我们先来看看这份数据表。。。。你们看了应该就知道我为什么说不是一般的数据汇总那么简单了。

原来他这里是有几个店铺在假期期间的销售量,但是登记数据的时候,为了更加清楚直接的展示每个分店的销售数据,所以是分开来登记的,并没有全部汇总在一列进行登记,这样一来虽然能够比较清楚的分店的销售,但是对于总公司来说,在汇总总数的时候, 就非常的麻烦了,如果你仅仅是想要得到最终的销售总量还可以直接求和,敲几下计算器就好,但是很多时候,老板可能需要的数据就更加的详细,比方说,需要精确到每个商城的销售量从图中可以看出来,每个店铺的产品也各不同相同,当然也有相同的,你肉眼去看,也许OK,但是难免会有眼花,而且如果这份数据不仅仅是只有这么几行呢?其实说到分类统计的话,很多的童鞋都会在第一时间想到透视表,没错,透视表确实是能够实现这个功能,但是她只针对数据都在一列的情况下,但现在数据有好几列,就没有办法了,那要怎么办呢?函数说明我当时脑海之中立刻想到了一个函数,Consolidate( ),他也可以理解为一个制作透视表的函数,其实他的功能还是比较多的,但是在平时的操作中,小编更多还是用在透视表的制作上面,所以我们今天就用Consolidate( )来实现透视表的制作吧上代码Sub test() Range("m1").Consolidate Array("R1C1:R9C2", "R1C4:R9C5", "R1C7:R9C8", "R1C10:R9C11"), xlSum, True, True, False Range("m1") = "分店产品" '在M1单元格指定纵标题End Sub我们来看看效果

是不是很完美代码解析今天的代码非常的简短,我们主要说下Consolidate( )这个函数的使用方法,Array("R1C1:R9C2", "R1C4:R9C5", "R1C7:R9C8", "R1C10:R9C11")从代码中我们可以看到,在Consolidate( )函数的使用过程中,我们在区域上面需要使用R1C1-样式表示法,这点我们需要留意,并不是简单的输入一个range()这样的区域就可以了,这一点是这个函数使用比较麻烦的地方,R1C1:R9C2代表的就是第一个区域,代表cells(1,1)到cells(9,2)这个区域,R1C4:R9C5代表的就是cells(1,4)到cells(9,5)这个区域。。。。。以此类推,有没有感觉到和cells的写法非常的相似,其实就是cells()的另外一种写法,也不算是很难理解。后面的就是固定搭配模式了,大家记住直接使用就好。本案例中我们使用的是求和的操作结果,可能在平时,小伙伴们并不一定是需要一个求和的计算,而是求平均值等,那么怎么办呢?很简单的,将xlsm这个函数替换掉就可以了,具体的参数可以参考下面的这份表,这份表是我当时学习的时候,从网上找到的,现在分享给大家。名称值说明xlAverage-4106平均。xlCount-4112计数。xlCountNums-4113只计数数值。xlDistinctCount111使用非重复计数分析进行计数。xlMax-4136最大值。xlMin-4139最小值。xlProduct-4149乘。xlStDev-4155基于样本的标准偏差。xlStDevP-4156基于全体数据的标准偏差。xlSum-4157总计。xlUnknown1000未指定任何分类汇总函数。xlVar-4164基于样本的方差。xlVarP-4165基于全体数据的方差。总结OK ,今天的分享就到这里了,通过今天的这个方法,我们可以很方便快速的针对多列数据进行快速的统计了,不过肯定有很多的童鞋心里在不平衡了其实这样岂不是更加的麻烦,如果将数据复制到一列的话,直接用透视表反而更快?话是不错,但是不停的复制粘贴难免会出错,而且现在数据量不大,又都在同一个sheet中,所以你会觉得粘贴到一列更加方便,如果不同的数据在不同的sheet呢?这里留一个小悬念,想要知道Consolidate( )如何针对不同的sheet进行统计,明晚来看我的最新分享吧。如果你有什么想要分享的,或者有什么想要知道的,都可以留言等方式告诉我,大家一起努力进步。

(0)

相关推荐