谁能告诉我 EXCEL 2003 中函数SUMIF 或者用其他函数 求同时满足2个单元格条件 计算第三个单元格的和 用IF函数和AND集合可以吗 请高手告诉我具体的函数编程 {=SUMIF(I2:I24,"A",Q2:Q24)}除外
不要用AND函数,会出错的,因为AND返回的是个单值,
举个例子说明下:
引用:
1、简单例子以及容易产生的“理解”
逻辑判断公式中,常常见到条件相*或相+,也常见到and和or,比如:
=if(and(A1>0,A1<8),B1,C1)……VS……=if((A1>0)*(A1<8),B1,C1)——对比and和*
=if(or(A1>0,A1<8),B1,C1)……VS……=if((A1<0)+(A1>8),B1,C1)——对比or和+
以上两种情况是完全可以互换的(等价的)。由此,初学函数的朋友就容易产生这么一种理解:“*就是and(而且的意思)+就是or(或者的意思)”
在某种意义上来说快速地解读公式含义的话,这个“理解”听起来最容易接受了。但不要由此就把这种逻辑判断中的理解扩散成“完全等价”!请看下一点:
在以下两个条件求和中:(数组公式,按Ctrl+shift+enter结束)(假设A1=4,A2=21;B1=5,B2=11)
=sum(if(and(A1:A2>0,A1:A2<8),B1:B2))……VS……=sum(if((A1:A2>0)*(A1:A2<8),B1:B2))
前者只有当A1、A2都介于0和8之间时才返回B1:B2的和,否则得到0;
后者则分开了,比如A1介于0和8之间,A2不介于0和8之间,那么求得的结果是B1的和,而不是0。
这只是一些显性的数组公式,还有不少用数组运算的公式(非数组公式,不按三键)
2、and、or与*、+的原理比较:
AND(logical1,logical2, ...)——详见and函数帮助:当所有的logical们都为True时返回True——这是1个单值;
OR(logical1,logical2, ...)——详见and函数帮助:当所有的logical们只要有一个为True时返回True——这是1个单值;
(A1:A2>0)*(A1:A2<8)——返回的是True;False*True;True类型的数组相乘的结果1;0——这是一个数组;
(A1:A2>0)+(A1:A2<8)——返回的是True;False+True;True类型的数组相乘的结果2;1——这是一个数组;
接下来:
由and、or得到的是:
=sum(if(and(A1:A2>0,A1:A2<8),B1:B2))=sum(if(and(True;True,True;False),B1:B2))=sum(if(False,B1:B2))=0
and(True;True,True;False)——有出现False返回False;or公式类似。
由*、+得到的是:
=sum(if(1;0,B1:B2))=sum(5;False)=5——可以用F9键在编辑栏看出。
而=sum(if(2;1,B1:B2))=sum(5;11)=16
注:在逻辑判断if的条件中,0=False;非0的数值都=True
从以上的对比可以看出:运算符*和+在逻辑判断中与and和or是不同的,尤其是数组运算的情况下是不能互换的。
楼上的已经给出答案了,你可以使用SUMPRODUCT函数。
参考知识1
=SUMPRODUCT((A1:A1000="第一个条件")*(B1:B1000="第二个条件")*C1:C1000)本回答被提问者采纳
参考知识B
这个“满意回答”不对 正确答案应该是:=SUMPRODUCT((A1:A1000="第一个条件")*(B1:B1000="第二个条件"),C1:C1000) 注意C1前是英文输入法状态下的逗号 而不是星号。
参考知识C
=sumproduct((A1:A100="A")*(B1:B100="B")*(C1:C100))
以上公式计算的是A列中单元格为A的同时B列中单元为B的C列单元格的和。
参考知识D
随便举个例子,求A1:A10大于3,B1:B10为是,C1:C10的和
=SUMPRODUCT((A1:A10>3)*(B1:B10="是")*C1:C10)