我找到了一个比较详细的解释. =SUMPRODUCT((G1:G3="男")*(E1:E3<=60)) 这个公式的意思是统计,G1-G3是男的,同时E1-E3数值小于等于60的人数。 首先这是一个数组公式,要按Ctrl+Shift+Enter结束。 然后看他的计算过程: 假如G1=男,G2,G3都为女,然后E1=65,E2=60,E3=80。 这时候公式变为 =SUMPRODUCT((TRUE,FALSE,FALSE)*(TRUE,FALSE,FALSE)) 这不知道能理解不,因为G1=男,所以第一个值为TRUE。第二个不为男,值就为FALSE。 接下来,TRUE和FALSE分别代表1和0。所以公式变为: =SUMPRODUCT((1,0,0)*(1,0,0)) 然后接下来就是SUMPRODUCT的计算过程了 =1*1+0*0+0*0=1 所以最后的结果等于1。 | |
UID 172834 帖子 107 精华 0 经验 211 威望 0 阅读权限 20 性别 男 在线时间 14 小时 查看详细资料 | TOP |
SUMIF 根据指定条件对若干单元格求和。 语法 SUMIF(range,criteria,sum_range) Range 为用于条件判断的单元格区域。 Criteria 为确定哪些单元格将被相加求和的条件,其形式可以为数字、表达式或文本。例如,条件可以表示为 32、"32"、">32" 或 "apples"。 Sum_range 是需要求和的实际单元格。 说明 只有在区域中相应的单元格符合条件的情况下,sum_range 中的单元格才求和。 如果忽略了 sum_range,则对区域中的单元格求和。 Microsoft Excel 还提供了其他一些函数,它们可根据条件来分析数据。例如,如果要计算单元格区域内某个文本字符串或数字出现的次数,则可使用 COUNTIF 函数。如果要让公式根据某一条件返回两个数值中的某一值(例如,根据指定销售额返回销售红利),则可使用 IF 函数。 示例 如果您将示例复制到空白工作表中,可能会更易于理解该示例。 操作方法 创建空白工作簿或工作表。 请在“帮助”主题中选取示例。不要选取行或列标题。 从帮助中选取示例。 按 Ctrl+C。 在工作表中,选中单元格 A1,再按 Ctrl+V。 若要在查看结果和查看返回结果的公式之间切换,请按 Ctrl+`(重音符),或在“工具”菜单上,指向“公式审核”,再单击“公式审核模式”。 A B 属性值 佣金 100,000 7,000 200,000 14,000 300,000 21,000 400,000 28,000 公式 说明(结果) =SUMIF(A2:A5,">160000",B2:B5) 属性值超过 160,000 的佣金的和 (63,000) 即是a2:a5中大于160000 统计b2:b5 中符合条件的合计数 ////////////////////////////////////////////////// countif 函数是计算区域中满足给定条件的单元格的个数。 A B 1 数据 数据 2 苹果 32 3 柑桔 54 4 桃 75 5 苹果 86 公式 说明 (结果) =COUNTIF(A2:A5,"apples") 计算第一列中苹果所在单元格的个数 (2) =COUNTIF(B2:B5,">55") 计算第二列中值大于 55 的单元格个数 (2) //////////////////////////////// 基本用法是求两列及两列以上数据的乘积之和。 如:=SUMPRODUCT(A1:A20,B1:B20) 表示A1*B1+A2*B2+A3*B3+……A20*B20 其他的用法如你说的例子是统计,还可以进行条件求和。 如:=SUMPRODUCT((A1:A20="女")*(B1:B20=25)*C1:C20)) 表示A列为女并且B列是25的C列的数据之和。 |
Excel 中SumProduct函数的妙用! |
By 平心桨 发表于 2008-11-20 11:12:00 |
Excel的SUMPRODUCT函数提供Excel数组公式的大多数功能,并且在使用上不复杂。 SUMPRODUCT函数可以方便地计算工作表内多列中对应值相乘后的和,其语法为: SUMPRODUCT(array1,array2,array3, …) 其中,Array1, array2, array3, … 为 2 到 30 个数组,其相应元素需要进行相乘并求和。数组参数必须具有相同的维数,否则,函数 SUMPRODUCT 将返回错误值 #VALUE!。 该函数将非数值型的数组元素作为 0 处理。 另一种用法: Sumproduct((A1:A100=数值1)*(B1:B100>数值2),C1:C100) 用于统计第一行到第100行中,A列等于数值1,B列大于数值2时,C列的数值和 这个功能很爽…… 另,Sumproduct((A1:A100=数值1)*(B1:B100>数值2)*(C1:C100<数值3))表示统计第1行到第100行中,A列等于数值1,B列大于数值2,C列小于数值3的记录的数量。 很cool的一个函数! |
Excel的SUMPRODUCT函数基本功能是可以方便地计算工作表内多列中对应值相乘后的和,其语法为:SUMPRODUCT(array1,array2,array3, …) 其中,Array1, array2, array3, … 为 2 到 30 个数组,其相应元素需要进行相乘并求和。数组参数必须具有相同的维数,否则,函数 SUMPRODUCT 将返回错误值 #VALUE!。 该函数将非数值型的数组元素作为 0 处理。 下面通过示例介绍SUMPRODUCT函数的另一个妙用多条件求和,如下图1所示的工作表:要统计姓名=“张三”,并公司=“A”,用工数的总计。 其中所定义的名称为: 名称 引用范围 公司 =Sheet1!$D$3:$D$17 全部数据=Sheet1!$A$2:$E$17 日期 =Sheet1!$A$3:$A$17 姓名 =Sheet1!$B$3:$B$17 性别 =Sheet1!$C$3:$C$17 用工数 =Sheet1!$E$3:$E$17 (1)要计算工作表中姓名是张三且公司为A的用工数统计,则可以使用下面的公式: =SUMPRODUCT((Sheet1!$B$3:$B$17=”张三”),(Sheet1!$D$3:$D$17=”A”),(Sheet1!$E$3:$E$17)) 返回结果24。 (2)要获取姓名为张三且公司为A的总数,则可以使用下面的公式: =SUMPRODUCT((Sheet1!$B$3:$B$17=”张三”)*(Sheet1!$D$3:$D$17=”A”)*1) 或=SUMPRODUCT((Sheet1!$B$3:$B$17=”张三”)*(Sheet1!$D$3:$D$17=”A”)) 结果为4。 注意:公式中每一个条件查询的范围必须一样,如果是二个以上的条件:例=SUMPRODUCT((Sheet1!$B$3:$B$17=”张三”),(Sheet1!$D$3:$D$17=”A”),(其他条件....),(Sheet1!$E$3:$E$17)) |
大家用过数组公式的都可能知道,对于多条件求和或计数,我们一般都采用这种数组公式来计算。如: 对于1个明细数据(见例),我们需要求该班男、女生各科成绩大于各科平均分的人数,这个问题不难,大家一般都会用sum()来多条件求值就行了(注:数组公式): =SUM(($C$3:$C$428=$K3)*(D$3:D$428>=AVERAGE(D$3:D$428))) 确实这是解决问题的一种方法,但往往对于初用数组公式的朋友常常会遗忘(或不知道)用(Ctrl+shift+Enter)组合键来结束编辑(论坛中常常有类似的提问)。 出于这个原因,我想到能否用SUMPRODUCT()函数来代替常用SUM()多条件求和公式呢?结果答案是肯定的。 把上面的公式稍做修改,请见: =SUMProduct(($C$3:$C$428=$K3)*1,(D$3:D$428>=AVERAGE(D$3:D$428))*1) 而且直接用Enter来结束,函数仍然可以正确计算结果。 原因在于:SUMPRODUCT()函数本身就支持数组间运算(相同维数的数组相乘后再加总),因此我们毋须用数组公式组合键来结束。 另:提醒大家一点,如果大家试图将公式改为: =SUMProduct(($C$3:$C$428=$K3),(D$3:D$428>=AVERAGE(D$3:D$428))) 公式不能得出正确结果。 如果多个条件这样并列写入,系统默认是用AND关系(即相乘)来运算,但是SUMPRODUCT不支持逻辑值数组常量间相乘(也算是小遗憾吧:)),因此请一定要将逻辑值转换成数值才行。 大家可能觉得麻烦,因此我建议使用缩写公式,实际上是将多个数组参数变为一个数组,也就可以避免不同维数数组间相乘而带来的错误麻烦了。 =SUMProduct(($C$3:$C$428=$K3)*(D$3:D$428>=AVERAGE(D$3:D$428))) 同理:我们如果需要求出所有男生中总分大于平均总分的所有总分,我们也可以用公式: =SUMPRODUCT(($C$3:$C$428=$K13)*(I$3:I$428>=AVERAGE(I$3:I$428)),I$3:I$428) 如果数组的维数相同,建议使用这种方法,如果直接相乘出现错误,可能是I列出现非数值字符,用逗号分隔后,系统可以自动忽略文本的。 对于条件求和的应用,大家可以结合下面的实例来理解(但对于使用该函数,运算速度是否有提高,还待各位朋友验证),希望对大家有帮助,谢谢! 最后再提醒大家一点:如果数组的维数相同,建议用逗号分隔,系统会自动忽略文本的,而且并不是所有用SUM()+数组公式(如公式内部加入IF来判断的)都可以用SUMPRODUCT()函数来代替的,该帖只是告诉大家另一种思路或另一种想法 |
本文发布于:2023-05-09 21:02:42,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/fan/82/567194.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |