今天我们来谈谈EXCEL中的条件求和。
我们将利用不同的技术实现,而不是使用函数的6种方法
直接开始吧!
数据源
结果
1、数据透视表-难度系统★☆☆☆☆
插入-透视表,行字段-销售员,值-金额
2、 函数公式法-难度系数:★★☆☆☆
这里想要实现完全自动,需要姓名动态去重,所以给2颗星,否则SUMIF(S),一颗心,难度系数较小
销售员去重:=IFERROR(INDEX(B:B,MATCH(,COUNTIF($H$1:H1,$B$2:$B$226),)+1),"")
金额合计:=SUMIF(B:B,H2,E:E)
3、SQL方法-难度系数:★★☆☆☆
连接数据源文件,数据-现有连接-浏览更多-选择SQL法表-确定插入
在连接属性-定义中写入SQL
select 销售员,SUM(金额) as 合计金额 from [SQL$] group by 销售员
4、Power Query-分组法-难度系数:★★☆☆☆
PQ方法比较简单,基本也是简单的操作,加载到PQ后,值需要转换分组依据中,选择按照销售员分组,金额求和即可,基本同透视表类似
5、Power Pivot-难度系数:★★☆☆☆
这里我们使用的是2016版本已经内嵌的Power Pivot
加载进来,可以右击编辑Dax,输入以下Dax公式
PBI中直接写,不需要evaluate
evaluate
summarize('销售表',[销售员],"金额合计",SUM('销售表'[金额]))
6、VBA法--难度系数:★★★★☆
难度给到四颗星,因为VBA相对新手有点难度,整体代码比较简单,我们使用字典汇总
代码如下:
Sub 汇总() arr = Range("A1").CurrentRegion.Value Dim d As Object Set d = CreateObject("scripting.dictionary") For i = 2 To UBound(arr) d(arr(i, 2)) = d(arr(i, 2)) + arr(i, 5) Next [G1].Resize(d.Count, 2) = Application.Transpose(Array(d.keys(), d.items()))End Sub
你会几种呢?多一种方法,就多一种选择,我们可以根据场景选择最合适!
今天就到这里,希望大家都能学会,那么你的EXCEl水平起码有中级了!
Excel办公实战,高效办公,每天进步一点点!
关注小编,下次精彩不迷路!
原创不易
喜欢小编的文章,一定要点赞,关注,转发
您的鼓励是小编最大的动力!