EXCEL公式应用:多条件求和,数组公式应用2

    技术2022-05-11  159

    http://community.csdn.net/Expert/TopicView1.asp?id=4488494

    最近老毛病又犯,老是不仔细看题目……

    - 专家门诊 -

      主  题:  关于两个条件AND 求和的问题 作  者: zhuluzy (逐鹿) 信 誉 值: 100所属论坛: Windows专区 Office使用问题点数: 100回复次数: 13发表时间: 2005-12-29 13:51:46        例如下面的例子,   | A B C D _____________________________________ 1 | a1 10 a1 nm 2 | b2 10 c3 nm 3 | c3 10 nf 4 | a1 10 nf 5 | a1 10 nf 6 | b2 10 nf 7 | a1 10 nm 问:A列中的值存在于C 列,同时(并且-and),D列,必须等于 nm 的数据对 B列求和 使用什么样的方法?? 两个条件单独求和都可以实现 条件1: sum(sumif(a1:a7,c1:c2,b1:b7)) 条件2: sumif(d1:d7,="nm",b1:b7) 但是2个条件都满足的行进行求和如何实现呢? 最终结果应该是20  回复人: scz123(小章) ( ) 信誉:124 2005-12-29 15:06:52 得分:0     {=SUM(SUMIF(A1:A7,C1:C7&(IF(D1:D7="mn","","a")),B1:B7))} Top   回复人: zhuluzy(逐鹿) ( ) 信誉:100 2005-12-29 16:01:33 得分:0     我试了一下,这样写是不正确的,但这种思路,我受教了,谢谢! 错误原因是: C1:C7&(IF(D1:D7="mn","","a") 虽然将C列,按照D列整理成为了一个条件范围, 但是对于A列满足条件1但是重复的值,不论是否满足条件2,都会被求和 因为A列是重复的,而C列并不是和A列一一对应(C列是不重复的)所以这样写是不正确的 Top   回复人: scz123(小章) ( ) 信誉:124 2005-12-29 16:03:46 得分:0     哦,楼主的是nm别弄错了 {=SUM(SUMIF(A1:A7,C1:C7&(IF(D1:D7="nm","","a")),B1:B7))} Top   回复人: scz123(小章) ( ) 信誉:124 2005-12-29 16:09:44 得分:0     哦,理解有误,再考虑一下 Top   回复人: zhuluzy(逐鹿) ( ) 信誉:100 2005-12-29 16:37:58 得分:0     我使用如下思路(利用了空列F),其中借用了小章的思路,我认为肯定可以,但好像还是不成功!!!! 郁闷中...... =SUM((d1:d7="nm")*(a1:a7=c1:c7&if(d1:d7="nm",a1,"")*D2:D11) Top   回复人: scz123(小章) ( ) 信誉:124 2005-12-29 16:38:08 得分:0     {=SUM(IF(D1:D7="nm",IF(NOT(ISNA(MATCH(C1:C7,A1:A7,0))),B1:B7,0),0))} 有点复杂,呵呵 还有问题的话,发给消息给我,明天继续 Top   回复人: scz123(小章) ( ) 信誉:124 2005-12-29 16:43:39 得分:0     {=SUM((D1:D7="nm")*NOT(ISNA(MATCH(C1:C7,A1:A7,0)))*(B1:B7))} 这样也行 Top   回复人: Yiqun_Zhao(蓝帆·雨轩 Mail: yiqun_zhao@163.com) ( ) 信誉:133 2005-12-30 08:11:00 得分:0     这个很简单的: 在编辑栏输入如下公式: =SUM(IF(($A$1:$A$7=$C$1)*($D$1:$D$7="nm"),$B$1:$B$7)) 同时按下Ctrl+Shift+Enter已完成公式,公式在编辑栏的表现形式为: {=SUM(IF(($A$1:$A$7=$C$1)*($D$1:$D$7="nm"),$B$1:$B$7))} 结果:20 Top   回复人: Yiqun_Zhao(蓝帆·雨轩 Mail: yiqun_zhao@163.com) ( ) 信誉:133 2005-12-30 08:17:00 得分:0     友情提示: scz123(小章):您的公式有误,原因如下: 虽然您的公式可以得到正确答案20,可是您在得到答案后,将A列为a1的对应行的D列中的nf改为nm,您的公式产生的答案依然是20(而不是30),所以您的公式是存在问题的! 参考公式如下: {=SUM(IF(($A$1:$A$7=$C$1)*($D$1:$D$7="nm"),$B$1:$B$7))} Top   回复人: scz123(小章) ( ) 信誉:124 2005-12-30 08:33:00 得分:0     不会吧? Yiqun_Zhao 的意思是把d4改成nm吧,但c4值是空的,总的有效行只有2行(1、2行),所以结果应该是20,符合楼主的意思 将A列为a1的对应行的D列中的nf改为nm,公式产生的答案依然是20的原因是 C列只有两个有效值 {=SUM((D1:D7="nm")*NOT(ISNA(MATCH(C1:C7,A1:A7,0)))*(B1:B7))} D1:D7="nm": D列必须等于nm NOT(ISNA(MATCH(C1:C7,A1:A7,0))): C列值必须在A列中存在 按楼主的意思,应该是没问题了 公式 {=SUM(IF(($A$1:$A$7=$C$1)*($D$1:$D$7="nm"),$B$1:$B$7))} 应该只符合A列等于a1($C$1),D列等于nm的求和,对应行1、7,可能和楼主的意思不一样了 Top   回复人: Yiqun_Zhao(蓝帆·雨轩 Mail: yiqun_zhao@163.com) ( ) 信誉:133 2005-12-30 11:01:00 得分:0     scz123(小章): 如题,A列中的值存在于C列: 表明的是A列中的值在C列中存在,而不是相反的C列中的值在A列中存在。也就是表明C列只是起到一个对A列筛选的作用,C列是否有空值没有关系。呵呵。 如果是要C列中的值在A列中要存在,那么是按照您的思路做! Top   回复人: scz123(小章) ( ) 信誉:124 2005-12-30 12:50:00 得分:0     哦,原来还是我看错了,哎,老毛病又犯了,总是不仔细看题目,呵呵,见笑见笑 Top   回复人: scz123(小章) ( ) 信誉:124 2005-12-30 13:04:00 得分:0     那这样应该就对了 {=SUM((D1:D7="nm")*NOT(ISNA(MATCH(A1:A7,C1:C2,0)))*(B1:B7))} 公式{=SUM(IF(($A$1:$A$7=$C$1)*($D$1:$D$7="nm"),$B$1:$B$7))}还没考虑到C列的其它值 Top   

    最新回复(0)