Excel多条件查找技巧:INDEX+SMALL+IF组合应用

来源:本站整理 作者:网络笔记

最佳答案如下图的数据表(名单列有重复)我们需要解决三种类型的问题:1,李商隐第一次出现时的B列值;2,李商隐最后一次出现时的B列值;3,李商隐第2次出现时候的B列值。前面两个问题是比较常见的,我们简要一看。匹配第一个,可以直接用:=VLOOKUP(E2,A2:B17,2,FALSE),匹配最后一个,可以利用......

如下图的数据表(名单列有重复)

我们需要解决三种类型的问题:

1,李商隐第一次出现时的B列值;2,李商隐最后一次出现时的B列值;3,李商隐第2次出现时候的B列值。

前面两个问题是比较常见的,我们简要一看。匹配第一个,可以直接用:=VLOOKUP(E2,A2:B17,2,FALSE),匹配最后一个,可以利用:=LOOKUP(1,0/(A2:A17=E2),B2:B17)

这里重点要说明的是匹配第2个。接下来就看一下这个类型的公式(数组公式,要按Shift+Ctrl+回车 三键结束):{=INDEX(B$2:B$17,SMALL(IF(A$2:A$17=E$2,ROW($1:$16),4^8),2))}

先从最里层看:IF(A$2:A$17=E$2,ROW($1:$16),4^8),这个公式的结果是一个数组,它会依次判断A列值是否等于E2指定的条件。等于E2时,则会返回对应的行号,如1、12、13等……不等于E2时,则直接返回4^8,也就是65536,一般的工作表到这里就没有数据了。

整个的结果就是:{1;65536;……;65536;12;13;65536;65536;65536}

再往外看,是SMALL(X,2),这个简单,就是从上面得出的数组X中,选出第二小的值12,其实也就是A2:A17中的姓名第二次等于E2指定的姓名时,其序列位置。

最外层是INDEX(B2:B17,y),上面已经用SMALL函数得出了具体的位置,这一步,就是在B2:B17中提取出这个位置的值,完成!!

网络笔记 学习文库

我这一生没什么理想,能治愈我的,从来都不是时间,而是内心的那份释怀和明白!

热门分类

热门工具

联系客服QQ:+