sql sum条件求和_Excel_求和函数SUMIFS的应用

本文详细介绍了Excel中的SUMIFS函数,用于处理多条件求和问题。从单条件到多条件("且"或"或")求和,包括通配符条件求和,通过实例解析了其参数和用法,帮助用户理解和掌握这一高效工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

c49af60d6f1fe7dd12a090d6dd0aa8f5.png

说起求和函数,大家可能首先想到的是SUM和SUMIF函数,的确这两个是最常见的,但是也有一定的局限性,例如面对多个条件("且"或者"或")求和时,就显得不够方便甚至做不到,因此今天来学习一下SUMIFS这个函数的应用。

1 函数功能与参数

功能:快速对多条件单元格求和

参数:SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)

参数名称说明
Sum_range(必需)要求和的单元格区域。
Criteria_range1(必需)使用Criteria1测试的区域。Criteria_range1和Criteria1设置用于搜索某个区域是否符合特定条件的搜索对。 一旦在该区域中找到了项,将计算Sum_range中的相应值的和。
Criteria1(必需)定义将计算Criteria_range1中的哪些单元格的和的条件。
Criteria_range2, criteria2, … (可选)附加的区域及其关联条件。 最多可以输入 127 个区域/条件对。

2 函数的应用

2.1 单条件求和

虽然说sumif函数可以满足单条件求和,不过sumifs不仅用来计算单条件求和,且满足多条件求和,用习惯了就可以代替sumif了,毕竟两者参数的顺序还不太一样

例子1.1 求出区域为华北的销售量

639b862d83b401d0a4ac1025429b7c74.gif

输入公式:=SUMIFS(E3:E10,C3:C10,"华北")

解读:第一个参数为求和区域E3:E10,第二个参数为条件区域C3:C10,第三个参数为第二个参数对应的条件,区域为“华北”

例子1.2 求出"销售量>80"的销售量总和

5b0e17d75311315c5001edc529e972fa.gif

输入公式:=SUMIFS(E3:E10,E3:E10,">80")

2.2 通配符条件求和

这里简单介绍一下通配符,顾名思义就是通用的字符,它能够代替任意字符

主要有三种:

  • 问号(?)代表任意单个字符
  • 星号(*)代表任意多个字符
  • 波形符(~)代表波浪符右侧的通配符转换为普通字符(即不是作为通配符使用)

例子2 求出"资源含有A"的销售量

9d34be22b239297fbe74c6b107266929.gif

输入公式:=SUMIFS(E:E,D:D,"*A*")

在这里,资源包含A,可以利用"*A*"进行匹配其中"*"代表着任意(包括0)多个字符

2.3 多条件求和(条件关系为"且")

例3 求出"区域为华南且资源含有C"的销售量

这里有两个条件,一个是"区域为华南",一个是"资源含有C",两个条件的关系为"且"

所以,加上第二个条件区域和对应条件即可计算

552177a02ec18b2652853c08da96f920.gif

输入公式:=SUMIFS(E3:E10,C3:C10,"华南",D3:D10,"*C*")

2.4 多条件求和(条件关系为"或")

例4 求出"区域为华东或者华西"的销售量

这里也有两个条件,"区域为华东"和"区域为华东",两者关系为"或"

当然我们可以使用分开求和的方式,然后将两者进行合计,如

输入公式:=SUMIFS(E3:E10,C3:C10,"华东")+SUMIFS(E3:E10,C3:C10,"华西")

但是作为一个有(xiang)追(tou)求(lan)的打工人,当然是越简单越好,因此介绍利用数组的方法进行求和计算

f850f57e101d4085ef9f47919870ebe9.gif

输入公式:=SUM(SUMIFS(E3:E10,C3:C10,{"华东","华西"}))

解读:这里的公式分为两个部分,先看SUMIFS(选中公式,摁F9,可以查看计算结果):

9656b06bfd863b35e7e94b4ef6159e66.gif

可以看到,SUMIFS(E3:E10,C3:C10,{"华东","华西"})的计算结果为{180,140}

可以理解为SUMIFS函数里面,求和区域E3:E10和条件区域C3:C10,与数组{"华东","华西"}的每一项都分别作为SUMIFS的参数进行计算,得到

{SUMIFS(E3:E10,C3:C10,"华东"),SUMIFS(E3:E10,C3:C10,"华西")}数组,即{180,140}

接下来就是利用SUM对{180,140}进行求和,从而得到结果320

2.5 多条件求和("或"和"且"都有)

例5 求出"区域为华东或者华北,且资源包含A或者C"的销售量

这里就有四个条件了,分别是(华东,*A*),(华东,*C*),(华北,*A*),(华北,*C*)

根据例4的,我们当然可以利用公式:

=SUM(SUMIFS(E3:E10,C3:C10,{"华东";"华北"},D3:D10,"*A*"))+SUM(SUMIFS(E3:E10,C3:C10,{"华东";"华北"},D3:D10,"*C*"))

进行计算,但是这样显然还不够简洁,那有没有办法像例4那样,对公式进行简化呢,答案显示是可以的,公式为:

=SUM(SUMIFS(E3:E10,C3:C10,{"华东";"华北"},D3:D10,{"*A*","*C*"}))

这里就需要添加一下数组的基础知识了,首先,数组是什么?

数组是按一行,一列或多行列区域的数据元素的集合。

在数组里面,逗号表示列,分号表示行,像例4的{180,140}就是一个1行2列数组,{180;140}则是一个2行1列的数组

那么,在Excel是怎么输入数组的呢?

选中行数和列数对应的区域,输入公式,然后ctrl+shift+enter进行输入

下面是一个3行3列的数组

be57e40b2058db5aee1306e3eee70688.gif

用SUM函数对数组求和,就是将数组所有的数进行求和,得到一个总和值

在这个的基础上,我们再来分析公式:

=SUM(SUMIFS(E3:E10,C3:C10,{"华东";"华北"},D3:D10,{"*A*","*C*"}))

首先我们看一下SUMIFS函数得到的是什么结果?

7e222e8118e2d18893362b33cab28c6a.gif

得到的是{0,100;185,0},也就是

*A**C*
华东0100
华北1850

这里就很明显能看到,原来{"华东";"华北"}与{"*A*","*C*"}组合作用的就是得到区域为行,资源为列的2*2数组,对应的值是每一项的和

当然,我们也可以将逗号和分号调换,换成{"华东","华北"}与{"*A*";"*C*"}

18dd08d1d728dc7d5f81bb0ecd7cc951.gif

得到的是{0,185;100,0},即:

华东华北
*A*0185
*C*1000

所以不管用哪个公式,得到的结果都是一样的,只是求解过程中数组行列所代表的含义有所不同而已

以后会继续不定期更新Excel、SQL、Python相关的知识,喜欢的朋友可以关注、收藏、点赞走一波哟,下篇再会~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值