前景提要
最近有同事让我帮忙看看有没有什么好方法来帮助他统计下假期期间各分店的销售总和,求和,不是有最简单的求和函数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这个函数替换掉就可以了,具体的参数可以参考下面的这份表,这份表是我当时学习的时候,从网上找到的,现在再分享给大家。