EXCEL中VLOOKUP可查询符合条件的一行数值,但如查询结果为多行数据符合怎么办

如题所述

index+small组合 

举个例子A1:A10里有3个文本“甲”,然后要返回甲对应B列的数据,那么在C1输入{=INDEX($A$1:$B$10,SMALL(IF($A$1:$A$10="甲",ROW($A$1:$A$10),4^8),ROW(1:1)),2)&""}这个公式({}指数组公式,用CTRL+SHIFT+ENTER输入的),再向下填充,直到为空白,就得到了甲对应B列的所有数据

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-21
如果有多个符合条件的结果,将返回第一个值右边对应列的数据.
EXCEL中VLOOKUP函数属于查找与引用函数,功能十分强大,但单凭这一个函数不能解决所有问题,查找与引用函数中还有MATCH,INDEX,OFFSET,LOOKUP,HLOOKUP,INDIRECT,CHOOSE等,较复杂的问题往往要嵌套使用,并配合数学与三角函数,统计函数,文本函数等一起使用,才能发挥作用.
一般情况下,用VLOOKUP查找第一列数据,作用在于返回后面的指定列数据,如果查找列中有多个值符合,其返回列的数据往往可以计算的,如求平均,求和等,打个比方,在A2:A10中输入“张三,李四,王五,张三”等姓名,姓名有重复的,在B2:B10中输入100,150等数据,在C3中输入“张三”,现在如果直接在C2中输入“=VLOOKUP(C2,A2:B10,2,FALSE)”,就会返回第一个张三所在行B列中的数据,如果现在是要对所有张三所在行求和,可以在C2中输入“=SUMIF(A2:A10,C2,B2)”,如果求平均,在C2中输入“=AVERAGEIF(A2:A10,C2,B2)”就可以了,(求平均的公式仅在2007版中适用)。
第2个回答  2010-04-23
=INDEX(C:C,SMALL(IF((MATCH($B$3:$B$18&$C$3:$C$18&$D$3:$D$18,$B$3:$B$18&$C$3:$C$18&$D$3:$D$18,)=ROW($1:$16))*($B$3:$B$18<>"注销"),ROW($3:$18),4^5),ROW(C1)))&""
用CTRL+SHIFT+ENTER输入
三条件相同提取
相似回答