注意:今天的内容对新手有点高难!一定要注意收藏! 在众人的印象中,Vlookup函数只能查找到第一个符合条件的。如下面这样。 =VLOOKUP(D2,A:B,2,0)
思路:上表中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)
=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)) |
|