求和家族,不简单

简介:

说到excel函数,很多人第一时间想到的就是求和函数sum。作为excel入门级函数,sum的确是小白级的,以至于很多人对求和函数有点“误解”,觉得求和函数太简单了。

但是,你可能不知道,sum只是excel求和家族里的一个小成员而已,它的家人们可都是厉害着呢。

今天我们就一起来认识一下这个求和家族吧。

1.sum基础求和

sum语法规则是:

=sum(数据区域)

案例:对下表的“销售”列求和,计算出总销量

在销售总量单元格(G2)中输入公式:

​=sum ( 1* (E2:E11))

公式说明:销售列是在E列,所以公式里的数据区域是E2:E11,那为什么这里不直接用公式=sum(E2:E11)进行求和呢?而是前面多了“1*”。

因为在 “销量”列里存在文本形式的数字,当这种数据作为sum函数的参数时,会被当作为文本来运算,所以如果直接用公式=sum(E2:E11)求和,文本型数字就没有被包括在求和中,从而使得求出来的结果与真实结果并不相符。

如何把文本型数字转换为数值型数字呢?

可以用“分列”的方法,直接把文本型数字转换为数值,然后在求和。还有一种办法是像案例中的1*(E2:E11)的形式强制转换为数值格式。

2.sum跨表求和

案例:汇总各销售部的销售总量

如上图所示,我们要将销售1部、销售2部、销售3部,销售4部,销售5部的销量进行汇总,其中销售1、2、3、4、5部门的销售数据是连续排列的5个工作表,每个表的A2:B6数据区域分别存放着各销售部门1至5月份的销量数据。

在目标单元格输入公式“=sum(”,然后鼠标单击“销售1部”工作表,按住shift键再单击“销售5部”工作表,然后选取B2单元格,按enter 键结束,将得到以下公式:
=sum(销售1部:销售5部!B2)

公式说明:

(1)要对不同的表的相同区域进行求和,可以用sum进行跨表求和

(2)当跨表引用多个相邻的工作表中相同的数据区域进行汇总时,无须逐个工作表对数据区域进行引用,可以按工作表的排列顺序,使用冒号将第一个工作表和最后一个工作表表名进行连接,作为跨表引用的工作表名。

注意:sum的跨表求和,是对多张工作表上的相同单元格区域进行引用求和。所以在案例演示中,我们也可以看到,销售1-5部的销售表,其表结构是完全一致的。

3.单条件求和:sumif

=sumif(条件区域,条件,求和区域)

sumif是对条件区域进行判断,只对满足条件的数据求和。

案例:按月份统计每个月的销量

在目标单元格H2中输入下面的公式 ,然后向下填充公式,求出其它月份的总销量。

=sumif($B$2:$B$11,G2,$E$2:$E$11)

公式说明:sumif将数据区域B2:B11(月份列)中的每一个单元格都与条件值G2单元格(月份)进行比对,如果相等,就与B2:B11(月份列)中对应的“销量”列(E2:E11)的值进行求和。也就是按月份来求和。

4.多条件求和:sumifs

sumifs函数,多条件求和,语法规则为:

=sumifs(求和区域,条件1区域,条件1,条件2区域,条件2…条件N区域,条件N)

案例:按月份统计某产品的总销量。例如1月份A产品的总销量是多少?1月份B产品的总销量是多少?

在目标单元格输入公式:

=sumifs(E2:E11,B2:B11,G2,C2:C11,H2)

公式说明:sumifs函数与sumif函数的参数位置是有区别的:

除了参数顺序不一致之外,sumifs实现原理其实与sumif函数完全相同,只不过,是在后面多添加了统计条件而已。

对于案例演示中的公式,如上,sumifs函数将条件区域B2:B11(月份列)中的每一个单元格都与条件值G2(月份)单元格进行比对;将条件区域C2:C11(产品列)中的每一个单元格都与条件值H2(产品)单元格进行比对;如果都相等,则将E2:E11(销量列)中对应的销量进行求和。

5.乘积求和:sumproduct

sumproduct函数:product,在英文中是“相乘”的意思,和求和函数sum结合起来,就是相乘后再相加,统计的是对应区域的乘积之和。语法规则是:

=sumproduct(乘积区域1,乘积区域2)

乘积区域1和乘积区域2中的数字会被一一对应相乘最后将这些乘积求和,也就是乘积和。

案例:统计总销售额,也就是每一行的单价*销量,然后再求和

在目标单元格输入公式:

=sumproduct(D2:D11,E2:E11)

公式说明:单价列(D2:D11),销量列(E2:E11))。sumproduct是对D2与E2相乘,D3与E3相乘,D4与E4相乘…,然后再将它们的乘积进行相加,就是每一行的单价*销量,然后再求和得出总销售额。

6.数据库求和:dsum函数

作为求和家族中的一员,dsum函数相对于其它成员来说,存在感不强,这里了解下即可。

dsum函数,返回的是数据区域中满足指定条件的列中的数字之和。语法规则是:

=dsum (数据区域, 求和字段的列数,条件区域)

案例:统计销售员猴子、苏火火、高小明的总销量

在目标单元格输入公式
=dsum(A1:E11,5,G1:G4)

公式说明:特别注意,“数据区域”和“条件区域”,必须要包含列标题。所以案例中的公式=dsum(A1:E11,5,G1:G4)中,数据区域是(A1:E11)。

求和字段是“销量”,“销量”列在数据区域A1:E11中位于第5列,所以,第二个参数“求和字段的列数”是5。

“条件区域”也就是对哪些销售员进行销量求和,案例中是猴子、苏火火、高小明所在的数据区域,所以,条件区域是G1:G4。

6.总结

通过上面的介绍,想必小伙伴们对求和一家子也认识得差不多啦。求和除了sum函数的基础应用,还可以根据要解决的业务问题选择跨表求和、单条件求和、多条件求和、乘积求和、数据库等,你都get到了吗?

推荐:人工智能时代的必学技能

相关文章
|
5天前
实现加减乘除计算
【10月更文挑战第26天】实现加减乘除计算。
23 7
|
5月前
线性代数——(期末突击)矩阵(上)-概念篇(矩阵的定义、矩阵的运算、特殊矩阵、初等变换)
线性代数——(期末突击)矩阵(上)-概念篇(矩阵的定义、矩阵的运算、特殊矩阵、初等变换)
94 7
|
6月前
|
算法 Java C++
试题 基础练习 序列求和
试题 基础练习 序列求和
30 1
|
11月前
|
C语言
C 语言实例 - 计算数组元素平均值
C 语言实例 - 计算数组元素平均值
85 4
|
存储 Java
湖南大学Java编程题3. 计算int型二进制1的个数
湖南大学Java编程题3. 计算int型二进制1的个数
|
机器学习/深度学习 iOS开发 Windows
P2671 [NOIP2015 普及组] 求和(前缀和)
P2671 [NOIP2015 普及组] 求和(前缀和)
142 0
|
C语言
C语言:分数序列求和
题目:有一个分数序列:2/1 + 3/2 + 5/3 + 8/5 +...,求出这个数列的前 20 项之和。 背景:无。 思路:采用 for 循环,利用数学知识 分子:第 n 项 = 第 n - 1 项 + 第 n - 2 项。 分母:第 n 项 = 第 n - 1 项 + 第 n - 2 项。
241 0
|
并行计算 C++
如何花式计算20的阶乘?
如何花式计算20的阶乘?
183 0
|
C语言 C++
C语言经典实例:1-10例:三角求和、显示所占字节数、自增自减运算while语句输出最小值、计算快递费用、学生成绩统计
C语言经典实例:1-10例:三角求和、显示所占字节数、自增自减运算while语句输出最小值、计算快递费用、学生成绩统计
C语言经典实例:1-10例:三角求和、显示所占字节数、自增自减运算while语句输出最小值、计算快递费用、学生成绩统计
|
存储 Java
Java经典编程习题100例:第16例:定义一个int型的一维数组,包含40个元素,用来存储每个学员的成绩,循环产生40个0~100之间的随机整数, 将它们存储到一维数组中,然后统计成绩低于平均分的学
Java经典编程习题100例:第16例:定义一个int型的一维数组,包含40个元素,用来存储每个学员的成绩,循环产生40个0~100之间的随机整数, 将它们存储到一维数组中,然后统计成绩低于平均分的学
333 0