[原创]MATCH/VLOOKUP返回多个结果 [复制链接]
本帖最后由 杨小军 于 2012-10-20 21:24 编辑
MATCH和vlookup函数是个运用比较广泛的查找定位函数,一般情况下只能定位到满足条件的其中一个(往往是第一个),当有多个满足条件时能否都定位出来呢?答案是“能”,那么该如何定位多个满足条件呢?各位老师别吐我,用INDEX等函数很简单就能实现,这个只想开拓下思路。 案例:要求列出某人在表中的位置
分析:我们知道MATCH函数的语法是:=MATCH(查找条件,查找区域,查找方式);试想下当MATCH查找到第一个匹配的结果后,再用MATCH时肯定查找到的还是第一个;假设我们对查找的内容进行编号,让查找按编号顺序查找,第一次找1,第二次查找2......。这时很容易想到下拉能产生序号的函数ROW,那么我们就给查找值后面连接一个ROW函数。既然查找值我们构造出来了,那么查找区域也需要构造成和查找值相对应。 步骤: 1.对查找编号:A$2&ROW(A1),公式向下复制时会变成A$2连接1,连接2,连接3...... 2.给表中所有的张九如编号。要想生成编号,就需要生成一个不断扩充的区域(INDIRECT("A$2:A"&ROW($2:$11)),然后在这个逐行扩充的区域内统计“张一”的个数,在连接上$A$2:$A$11后就可以对所有的张一进行编号了。 3.通过MATCH定位其在表中的所有位置; 4.最终公式。
- =IFERROR(MATCH(G$1&ROW(A1),$A$2:$A$11&COUNTIF(INDIRECT("A2:A"&ROW($2:$11)),G$1),),"")
- 数组公式
复制代码 注:2003版本使用IFERROR见 http://club./thread-933792-1-1.html
VLOOKUP也可用该方法查找满足条件的多个值,见附件案例
MATCH,VLOOKUP定位多个满足条件.rar(56.23 KB, 下载次数: 182)
|
|