|
本帖最后由 wangjguo44 于 2015-1-13 20:42 编辑
大脸是个好同志 发表于 2015-1-13 18:31
放到我的原始数据里测试了下,非常完美,太感谢啦!!大大,求拜师!
另:能否告知下用SUMPRODUCT的原理 ...
=INDEX(DATABASE!Z:Z,SMALL(IF((F2=DATABASE!$F$3:$F$139)*(L2=DATABASE!$L$3:$L$139)*(T2=DATABASE!$Q$3:$Q$139)*(DATABASE!$T$3:$T$139=Y2),ROW($3:$139),4^8),SUMPRODUCT((F$2:F2=F2)*(L$2:L2=L2)*(T$2:T2=T2)*(Y$2:Y2=Y2))))这里的SUMPRODUCT((F$2:F2=F2)*(L$2:L2=L2)*(T$2:T2=T2)*(Y$2:Y2=Y2))也是“求和”,只是另一种形式的“求和”:
对单条件的重复数据引用,往往用countif,比如有的引用相同成绩(假定B2:B4是相同)而不同姓名时,多用countif,出现第一个成绩(B2),由small(……,countif(B$2:B2,B2)),返回第一个姓名;出现第二个成绩(B3),下拉,由small(……,countif(B$2:B3,B3)),返回第二个姓名;出现第三个成绩(B4),下拉由small(……,countif(B$2:B4,B4)),返回第三个姓名;……
你这里四条件不在一列,就不能用countif,用SUMPRODUCT来得到第几个相同数据:SUMPRODUCT((F$2:F2=F2)*(L$2:L2=L2)*(T$2:T2=T2)*(Y$2:Y2=Y2))——假定F2:F5、L2:L5、T2:T5、Y2:Y5分别都是相同,那么SUMPRODUCT((F$2:F2=F2)*(L$2:L2=L2)*(T$2:T2=T2)*(Y$2:Y2=Y2))=1,与SMALL搭配返回第一小,下拉成SUMPRODUCT((F$2:F3=F3)*(L$2:L3=L3)*(T$2:T3=T3)*(Y$2:Y3=Y3))得到2,返回第二小;再下拉,成SUMPRODUCT((F$2:F4=F4)*(L$2:L4=L4)*(T$2:T4=T4)*(Y$2:Y4=Y4))得到3,返回第三小……
|
评分
-
1
查看全部评分
-
|