Vlookup 函数另类用法:查找第2个

2017-09-01 9:47 | 发布者: | 查看: 781 | 评论: 0

简介: 注意:今天的内容对新手有点高难!一定要注意收藏! 在众人的印象中,Vlookup函数只能查找到第一个符合条件的。如下面这样。 =VLOOKUP(D2,A:B,2,0) 其实,我只需要对查找区域进行重组,可以查找任意一个符合条件的值,比如第2个,倒数第1个,倒数第2个....  思路:上表中A列,如果可以把第1次出现的郑州修改为郑州1,第2次出现的修改为郑州2...第N个出现的修改的郑州N,那么我们就可以用郑州+数字查找到任意一个值了。  当然,我们不能用手工在表中修改,那样也太没水平了。嘿嘿!  怎么统计某个地区第几次出现?用Countif函数,而且区域要是一个逐步接伸的区域,这是indirect函数或offset函数专长。  生成6个逐步拉抻的区域。  INDIRECT("a2:a"&ROW(A2:A7))  然后在每个区域中统计郑州的个数  COUNTIF(INDIRECT("a2:a"&ROW(A2:A7)),D2)  还要用if({1,0}结构把2列数据组成一个数组。  IF({1,0},A2:A7&COUNTIF(INDIRECT("a2:a"&a…

注意:今天的内容对新手有点高难!一定要注意收藏!

在众人的印象中,Vlookup函数只能查找到第一个符合条件的。如下面这样。

=VLOOKUP(D2,A:B,2,0)

其实,我只需要对查找区域进行重组,可以查找任意一个符合条件的值,比如第2个,倒数第1个,倒数第2个….

  思路:上表中A列,如果可以把第1次出现的郑州修改为郑州1,第2次出现的修改为郑州2…第N个出现的修改的郑州N,那么我们就可以用郑州+数字查找到任意一个值了。

  当然,我们不能用手工在表中修改,那样也太没水平了。嘿嘿!

  怎么统计某个地区第几次出现?用Countif函数,而且区域要是一个逐步接伸的区域,这是indirect函数或offset函数专长。

  生成6个逐步拉抻的区域。

  INDIRECT(“a2:a”&ROW(A2:A7))

  然后在每个区域中统计郑州的个数

  COUNTIF(INDIRECT(“a2:a”&ROW(A2:A7)),D2)

  还要用if({1,0}结构把2列数据组成一个数组。

  IF({1,0},A2:A7&COUNTIF(INDIRECT(“a2:a”&ROW(A2:A7)),D2),B2:B7)

  最关键的工作完成

  最后

  用vlookup完成查询

  (以下公式均为数组公式,按ctrl+shift+enter三键完成输入)

  查找第2个

  =VLOOKUP(D2&2,IF({1,0},A2:A7&COUNTIF(INDIRECT(“a2:a”&ROW(A2:A7)),D2),B2:B7),2,0)

查找最后1个:

=VLOOKUP(D2&COUNTIF(A:A,D2),IF({1,0},A2:A7&COUNTIF(INDIRECT(“a2:a”&ROW(A2:A7)),D2),B2:B7),2,0)

查找倒数第2个:

=VLOOKUP(D2&COUNTIF(A:A,D2)-1,IF({1,0},A2:A7&COUNTIF(INDIRECT(“a2:a”&ROW(A2:A7)),D2),B2:B7),2,0)

其实,今天小编非要用vlookup函数完成任意位置查找

不是让你用

而是让你掌握一种数组重组的

思路

在工作中如果遇到这种查找,直接用index+small/large即可:

最后一个:

=INDEX(B:B,Large((A2:A8=D2)*ROW(A2:A8),1))

倒数第二个

=INDEX(B:B,Large((A2:A8=D2)*ROW(A2:A8),2))

第二个:

=INDEX(B:B,Small((A2:A8=D2)*ROW(A2:A8),2))

会员评论

相关分类

推荐阅读

返回顶部