分享

Vlookup函数,只能查找第1个吗?No!

 爱卿如梦 2016-06-12

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


在众人的印象中,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))


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多