例如下面的例子,
| 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 | | |