sumifs多条件求和步骤_条件求和公式
我们在Excel 中做统计,经常遇到要使用“条件求和”,就是统计一定条件的数据项。经过我以前对网络上一些方式方法的搜索,现在将各种方式整理如下:
一、使用SUMIF ()公式的单条件求和:
如要统计C 列中的数据, 要求统计条件是B 列中数据为" 条件一" 。并将结果放在C6单元格中,我们只要在C6单元格中输入公式“=SUMIF(B2:B5," 条件一" ,C2:C5)”即完成这一统计。
二、SUM ()函数+IF ()函数嵌套的方式双条件求和:
如统计生产一班生产的质量为“合格”产品的总数,并将结果放在E6单元格中,我们用“条件求和”功能来实现:
①选“工具→向导→条件求和”命令,在弹出的对话框中,按右下带“―”号的按钮,用鼠标选定D1:I5区域,并按窗口右边带红色箭头的按钮(恢复对话框状态)。
②按“下一步”,在弹出的对话框中,按“求和列”右边的下拉按钮选中“生产量”项,再分别按“条件列、运算符、比较值”右边的下拉按钮,依次选中“生产班组”、“=”(默认)、“生产一班”选项,最后按“添加条件”按钮。重复前述操作,将“条件列、运算符、比较值”设置为“质量”、“=”、“合格”,并按“添加条件”按钮。
③两次点击“下一步”,在弹出的对话框中,按右下带“―”号的按钮,用鼠标选定E6单元格,并按窗口右边带红色箭头的按钮。
④按“完成”按钮,此时符合条件的汇总结果将自动、准确地显示在E6单元格中。
其实上述四步是可以用一段公式来完成的,因为公式中含有数组公式,在E6单元格中直接输入公式:=SUM(IF(D2:D5="生产一班",IF(I2:I5="合格",E2:E5))),然后再同时按住Ctrl+Shift+Enter键,才能让输入的公式生效。
上面的IF 公式也可以改一改,SUM(IF((D2:D5="生产一班" )*(I2:I5="合格" ),E2:E5)),也是一样的,你可以灵活应用,不过注意,IF 的嵌套最多7层。
除了上面两个我常用的方法外,另外我发现网络上有一个利用数组乘积函数的,这是在百度上发现的,我推荐一下:
三、SUMPRODUCT ()函数方式:
表格为:
A B C D
1 姓名 班 级 性别 余额
2 张三 三年五 女 98
3 李四 三年五 男 105
4 王五 三年五 女 33
5 李六 三年五 女 46
现在求求出三年五班女生的总余额。
公式:=SUMPRODUCT((B2:B5="三年五")*(C2:C5="女")*(D2:D5))
解释:SUMPRODUCT 在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。 语法 SUMPRODUCT(array1,array2,array3, ...) Array1, array2, array3, ... 为 2 到 30 个数组,其相应元素需要进行相乘并求和。
在这里((B2:B5="三年五")*(C2:C5="女")*(D2:D5))为一个数组,其中(B2:B5="三年五
")*(C2:C5="女") 为确定满足准备求和条件的单元格所在的行,*(D2:D5)则是满足求和条件的单元格的范围。
第三个函数不常用,我对它也不是很了解,为尊重作者原著,我只有把他的内容贴出来,请见谅。
其实上面的第二个方式(sum 函数嵌套if 函数)和第三个方式(sumproduct 函数)不但可以实现双条件求和,也可以实现三条件求和甚至多条件求和的。只不过函数稍微变更一下的。
四、除了上述三个方式外,很多朋友也喜欢用条件过滤、排序、自动筛选、分类汇总等方式来进行“条件求和”的,也是非常简单的,我不叙述了,另外我还推荐一个在EXCEL2007中的新函数。
五、SUMIFS 函数
该函数在EXCEL2007中被广泛使用,使用起来更加方便,例如第三个方式中的例子,我们就可以输入公式:“=SUMIFS(D2:D5,B2:B5,"三年五",C2:C5,"女")”,是不是更轻松?
Excel 多条件计数、求和
(统计用)
2011年01月10日 星期一 22:39
SUMPRODUCT(),excel 自带函数,语法为SUMPRODUCT
(array1,array2,array3, ...),array 指数组。每个数组含有数量需相等。 作用是将数组间对应的值分别相乘,并返回乘积之和。
利用函数这一特性,可以方便的条件计数和条件求和。不仅能替代
COUNTIF(),SUMIF()的功能,还可进行这两个无法实现的多条件统计。
以此表格举例:
1. 求1号来人数量,即统计A 列有几个相同日期。计数类,用数组不等式运算即可
(写入日期的单元格需设置成日期格式,方法是右击单元格,选择“设置单元格格式“,在“数字“选项卡下,选择日期)
可以在其他列单元格写入需统计的日期,如写在E1单元格内,再在另选一单元格显示结果,输入=SUMPRODUCT((A2:A7=E1)*1),结果为3。
过程为先运算A2:A7=E1,将A2至A7单元格分别与E1比较,得数组
true,true,true,false,false,false ,因为true 和false 不能相加,而乘1可以将之转换成1和0,因此,最后为1+1+1+0+0+0=3。
2. 求1号至2号来人数量,即同时满足大于等于1号和小于等于2号。增加一数组,利用1*0=0,1*1=1,0*0=0的数学关系,除去不满足项
选两个单元格填入开始、结束日期,这里选E1和E2,另选一单元格输入=SUMPRODUCT((A2:A7>=E1)*1,(A2:A7
SUMPRODUCT 函数用到两个数组,用"," 隔开,两个数组分别运算,然后数组内同位置数字分别相乘,再相加。
数组(A2:A7>=E1)*1结果:1,1,1,1,1,1,数组(A2:A7
如果将E1和E2,分别改成2号和3号,则0,0,0,1,1,1,1,1,1,1,1,0,然后相乘:0,0,0,1,0,0,最后相加得1。
3. 求1号至2号来的男员工总工作量。这里除了计数(时间、性别)外,还多个工作量求和
(不等式比较单元格内文字时,应加上"", 如" 男" )
同样选E1和E2填入开始、结束日期,另一单元格输入
=SUMPRODUCT((A2:A7>=E1)*1,(A2:A7
总之,计数或条件用不等式表示,可使用多个数组,数组不等式关系为同时满足(逻辑与) ,而求和直接将求和列写上。
其他,不等式比较时能用到:
不等式符号 大于等于>=,小于等于,逻辑与*,逻辑或+。(后两个只适用于不等式,即出现在两个不等式中间)
空单元格表示 "",包含XX 文字的单元格 "*XX文字" (*,? 都是通配符,用法
参考搜索规则)
单元格地址表示,如E2,也可表示成$E$2、$E2、E$2,后者优势在于用鼠标在单元格右下角出现十字键头拖动时,复制出的新公式内的单元格地址不会变化(不改变) ,前一个$表示E 列不变,后一个$表示2行不变。
最后,转一个网上搜到的另一种方法,全部使用最常见的函数来实现上述功能。想我为此查了N 久,才找到SUMPRODUCT(),还自己摸索了N 久,才能使用上,后来却发现下面这个强大的教程,不过还是觉得SUMPRODUCT()更好理解些。
原地址:.shtml
例解Excel 的各种求和计算
2004-02-03 11:20作者:海风出处:天极办公软件责任编辑:Shiny
Excel 以其强大的计算功能著称于世,在日常工作中,Excel 主要用到其统计和求和等功能。
在Excel 中可以计算各种各的求和,如简单求和、单条件求和、多条件求和等。
我们利用下图所示的数据表为例,具体介绍如何利用公式来进行多种方式的求和。文章末尾提供.xls 文件供大家下载参考。
为了便于输入区域范围及理解,本文用一些代号来代替区域。所谓“代替区域”的具体方法是利用菜单的“插入->名称->定义”功能进行操作。如图1所示,在文本框“当前工作簿中的名称”中输入代号,如“ Age”,然后在引用位置中输入所要代替的范围(也可以单击右下角的红色箭头进行区域选择D2:D31单元格) ,最后单击“添加”即可。
这里我们用“Name”来代替“B2:B31”,用“Sex”来代替“C2:C31”,用“Age”来代替“D2:D31”,用“Position”来代替“E2:E31”,用“Salary”来代替“F2:F31”。
一、简单求和
统计所有的工资总和:
在单元格F35中输入“=SUM(Salary)”即可(不包括引号) 。SUM()是求和函数,返回某一单元格区域中所有数字之和,比如SUM(3,4) 等于7。
二、单条件求和
统计男职工之和:
用COUNTIF()函数来进行统计。COUNTIF()函数返回给定区域内满足一定条件的单元格的数目。
在需要返回值的单元格中输入“=COUNTIF(Sex,"男")”,该函数在Sex 区域中计算单元格内容为“男”的单元格数目。
统计工程师工资之和:
用SUMIF()函数来进行求和。该函数返回满足某一特定条件的区域内所有数字之和。
在需要返回数值的单元格中输入:“=SUMIF(Position,"工程师
",Salary)”。该函数在"Position" 区域中寻找内容为“工程师”的单元格,然后对“Salary”区域中的相应单元格进行求和。
求助理工程师和工程师工资之和:
在需要返回数值的单元格中输入:“=SUMIF(Position,"*工程师
",Salary)”。其中“*”是通配符,类似于DOS 下通配符的含义,在这里与“工程师”三个字组合在一起后代表所有包含“工程师”的字符。
求30岁以下职工工资:
在需要返回数值的单元格中输入:“=SUMIF(Age,"
在需要返回数值的单元格中输入:“=COUNTIF(Salary,">5000")”。
三、多条件求和
在实际生活中,经常要遇到一些有多个条件的求和方式,这时就要用到数组公式。顾名思义,数组公式就是对数组进行计算,数组公式可以同时进行多重计算并返回一种或多种结果,只不过它的参数是数组罢了。数组公式的创建方法很简单,在单元格中输入公式后按 CTRL+SHIFT+ENTER 组合键即可生成数组公式。 求男性高级工程师人数:
在需要返回数值的单元格中输入:“=SUM((Sex="男")*(Position="高级工程师"))”,然后按“CTRL+SHIFT+ENTER”即可自动在公式两端加上“{}”生成数组公式(以下公式输入均要按此组合键) 。其中“*”在这里代表逻辑组合中的“与”,即購满足“男”和“高级工程师”这两个条件。计算过程就是自动在“Sex”区域和“Position”区域查找满足“男”和“高级工程师”的单元格并在内存中重新组成一个新的区域,然后计算其个数。
求女性或助工的工资之和:
在需要返回数值的单元格中输入:“=SUM(IF((Sex="女")+(Position="助理工程师"),Salary))”。这里“+”是代表“或”的意思,即条件“女”或“助理工程师”满足一个即可。
求女性助工的工资之和:
在需要返回数值的单元格中输入:“=SUM(IF((Sex="女")*(Position="助理工程师"),Salary))”,当然不要忘了按组合键。“*”表示两个条件要同时满足。 求男性、高工或年龄大于50的人数:
在需要返回数值的单元格中输入:“=SUM((Sex="男")*(IF((Position="高级工程师")+(Age>50),1)))”。
求职称种类总数:
在需要返回数值的单元格中输入:
“=SUM(1/COUNTIF(Position,Position))”。由于职称的名称是重复出现的,于是便用COUNTIF()来查找出现了几次,然后再用SUM(1/COUNTIF())来将其变为1进行标记。比如“工程师”共出现了7次,用1/COUNTIF()将其变为1/7,再用SUM()将7个1/7进行求和变成1,余次类推,然后再用SUM()对数组进行求和即可。
其实数组公式也可以对单条件进行求和,在本文的第二部分的单条件求和公式中,都可以在两端加上“{}”使其变为数组公式,但这样似有画蛇添足之嫌。