参考资料
- 万能函数SUMPRODUCT超实用的10种经典用法
目录
- 一. SUM
- 二. SUMIF
- 2.1 统计贾1的销售额
- 2.2 > 900 的销售总额
- 2.3 计算贾1和贾22的销售总额
- 2.4 多区域计算
- 三. SUMIFS
- 3.1 统计苹果,在第一季度的总数量
- 3.2 统计苹果,在第一季度,> 600 的总数量
- 四. SUMPRODUCT
- 4.1 基础用法,乘积求和
- 4.2 根据每个商品的数量和单价,计算行政部使用各商品总计
- 4.3 数值和文本混合求和
- 4.4 模糊条件求和
一. SUM
⏹对一列或一组单元格中的数字进行求和。
基本语法
=SUM(number1, [number2], ...)
✅统计所有产品的总数量
=SUM(C2:C13)

二. SUMIF
⏹按照特定条件对范围内的单元格进行求和的函数。
基本语法
=SUMIF(条件区域, 指定的条件, 需要求和的区域)
2.1 统计贾1的销售额
=SUMIF(A1:A12,"贾1",C1:C12)

2.2 > 900 的销售总额
=SUMIF(C4:C15,">900")

2.3 计算贾1和贾22的销售总额
=SUM(SUMIF(A1:A12,{"贾1","贾22"},C1:C12))- 注意: 必须在最外层包裹
SUM函数,否则会仅计算贾1的销售总额。

2.4 多区域计算
=SUMIF(B2:F12,C15,C2:G12)- 进行多重数据区域的计算时,要求,这两个区域的格式要一致。

三. SUMIFS
⏹满足多个条件的情况下对范围内的单元格进行求和的函数
=SUMIFS(求和区域, 条件区域1, 条件表达式1, 条件区域2, 条件表达式2, ...);
3.1 统计苹果,在第一季度的总数量
=SUMIFS(C2:C13,A2:A13,F5,B2:B13,G5)C2:C13: 求和区域,表示要合计的数量A2:A13,F5: 表示区域和该区域所对应的条件

3.2 统计苹果,在第一季度,> 600 的总数量
=SUMIFS(C2:C13,A2:A13,F4,B2:B13,G4,C2:C13,">" &H4)

四. SUMPRODUCT
⏹主要用于对数组中对应元素的乘积求和
=SUMPRODUCT(array1, [array2], [array3], ...)
⏹例
| 商品名称 | 领取部门 | 领取时间 | 数量 | 单价 |
|---|---|---|---|---|
| 中性笔 | 行政部 | 6月 | 20 | 3.7 |
| 起钉器 | 财务部 | 6月 | 5 | 9.2 |
| 笔芯 | 行政部 | 3月 | 60 | 9.8 |
| 传真纸 | 行政部 | 6月 | 10 | 21.7 |
| 尺子 | 财务部 | 3月 | 5 | 1.9 |
| 铅笔 | 财务部 | 3月 | 20 | 1.9 |
| 橡皮 | 财务部 | 3月 | 5 | 0.8 |
| 裁纸刀 | 财务部 | 6月 | 4 | 5.3 |
| 夹子 | 行政部 | 6月 | 16 | 3.9 |
4.1 基础用法,乘积求和
=SUMPRODUCT(D2:D10,E2:E10)- 相当于是 数量*单价,然后求总计的简单写法

4.2 根据每个商品的数量和单价,计算行政部使用各商品总计
=SUMPRODUCT((B2:B10=G7)*(D2:D10)*(E2:E10))(B2:B10=G7)表示过滤出行政部(D2:D10)*(E2:E10)表示行政部的数量 * 单价

=SUMPRODUCT((B2:B10=G7)*(C2:C10=H7)*(D2:D10)*(E2:E10))- 计算6月份行政部的总计花销

4.3 数值和文本混合求和
- 因为E列的单价带着
元这个汉子,因此E列为文本,无法直接参与计算。 --SUBSTITUTE(E2:E10,"元",""),使用此函数将元替换为空,然后通过--将单元格内容转换为数字=SUMPRODUCT((D2:D10)*(--SUBSTITUTE(E2:E10,"元","")))

4.4 模糊条件求和
⏹根据每个商品的数量和单价,计算笔销量的总和
=SUMPRODUCT(ISNUMBER(FIND("笔",A2:A10))*(D2:D10)*(E2:E10))- 由于SUMPRODUCT函数的参数中不支持使用通配符,所以在计算带有关键字的问题,在这里需要截取ISNUMBER解决关键字的问题,首先使用FIND函数在B4:B12数据区域中查找关键字
笔,如果包含关键字笔,就返回表示关键字位置的数值,否则就返回错误值。 - 然后使用ISNUMBER函数判断
FIND函数的数组结果是不是数值,如果是数值,说明是包含关键字的,如果不是数值,那就是不包含关键字了。ISNUMBER最终得到由逻辑值TRUE或FALSE构成的内存数组。 - 然后再与后面的区域C4:C12和区域D4:D12依次相乘,最后由SUMPRODUCT返回乘积之和。


















