实现EXCEL条件求和的6种技术,每种都有天壤之别!

今天我们来谈谈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水平起码有中级了!

(0)

相关推荐

    Database error: [You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1]

    select ID from ac_posts where ziID =  ;