IF与SUM嵌套函数

用IF函数找出符合条件的值,将这些单元格所对应的数字加总.如果逻辑值在后,需要加总的数字在前一列,公式应该怎么设?比如说下面将第二列值为N的,将第一列的数字加总,我用(=IF(B1:B12="N",SUM(A1:A12),0),加出来是零,请高手指点!
23,594.45 Y
34,305.00 Y
7,404.24 Y
23,961.16 Y
5,191.68 Y
14,243.20 Y
800.00 Y
1,305.00 Y
46,800.00 Y
57,107.89 N
109,200.00 Y
117,480.00 Y
数字列是第一列,是A列,逻辑值是第二列,是B列,如果逻辑值在第一列,我也知道用SUMIF函数,现在关键是想找如果第二列的值为N的第一列的数值加总.就是Logical-test在后,value在前.

这个用普通公式即可,不过函数要换一个
=sumif(b1:b12,"N",a1:a12)

数组公式的话要这样
=sum((b1:b12="N")*a1:a12)

PS:数组公式输入后按ctrl+shift+enter完成。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-01
IF与SUM嵌套函数:
使用SUM+IF语句计算某一区域内通过某一给定测试的单元格的数量或对一个区域内的某些值求和,这些值在另一区域(或同一区域)内对应的值满足指定的条件。此行为类似于Microsoft Excel中的DSUM函数。
示例:下面的示例将计算区域A1:A10内1到10之间(包括1和10)的值的数目。
为实现此目的,您可以使用下面的嵌套IF语句:
=SUM(IF(A1:A10>=1,IF(A1:A10<=10,1,0)))
如果您要进行多次测试,也可以使用下面的方法,它更易读:
=SUM(IF((A1:A10>=1)*(A1:A10<=10),1,0))
下面的方法将计算在两个给定日期之间的日期的数量:
=SUM(IF((A1:A10>=DATEVALUE("1/10/99"))*(A1:A10<=DATEVALUE("2/10/99")),1,0))
备注:必须通过同时按CTRL+SHIFT+ENTER键,将这些公式作为数组公式输入进去。数组不能引用整列。
使用此方法,您实际上是在用一种逻辑测试的结果乘以另一种逻辑测试的结果,并将TRUE和FALSE返回给SUM函数。您可以将它们看作是:
TRUE*TRUE=1;TRUE*FALSE=0;FALSE*TRUE=0;FALSE*FALSE=0
以上所示的方法计算了区域A1:A10内在两种测试中结果均为 TRUE的单元格的数量。如要为对应单元格(例如,B1:B10)中的值求和,请像下面这样修改公式:
=SUM(IF((A1:A10>=1)*(A1:A10<=10),B1:B10,0))
类似地,您可以在SUM+IF语句中实现OR运算。为此,请修改上述公式,将乘号(*)替换为加号(+)。这样将得到下面的一般公式:=SUM(IF((Test1)+(Test2)+...+(Testn),1,0))
相似回答