VLOOKUP函数详细用法:
VLOOKUP(查找值,数据表,系列数,匹配条件)
查找值:需要在数据表中查找的单元格或数值。
数据表:查找区域,需注意查找列必须位于第一列,否则会显示“#N/A”。
系列数:查找结果返回的列数。
匹配条件:精确匹配(一般值为0或FALSE),近似匹配(1或true),不填默认为true。

除了常用的精确查找和模糊查找呢,有时候会遇到存在多个目标(多个结果)的情况,这时候该如何使用VLOOKUP函数呢?
①获取(A-->1,B-->4,C-->7,D-->10)即从上往下匹配到第一个值:
在B2单元格填:=VLOOKUP(A2,D:E,2,0),参数0虽然是精确匹配,但是存在多个结果的时候会从上往下取第一个结果。
②获取(A-->3,B-->6,C-->9,D-->12)即从下往上匹配到第一个值:
在B2单元格填:=VLOOKUP(A2,D:E,2,1),参数1虽然是模糊匹配,但是存在多个结果的时候会从下往上取第一个结果。
③获取中间的目标值(A-->2,B-->5,C-->8,D-->11)或者存在一定逻辑顺序的值:
这时候就需要构造辅助列来匹配了,在辅助列将编号和数值拼接起来形成新的结果:

然后使用index函数和match函数组合求值,在B2单元格输入:
=INDEX(E:E,MATCH(A2&VLOOKUP(A2,D:E,2,0),F:F,0)+1,0)
该函数的思路是先找到一个固定的值,比如1--> VLOOKUP(A2,D:E,2,0)
然后再将值和编号进行拼接比如拼接成A1-->A2&VLOOKUP(A2,D:E,2,0)
然后利用match函数再去辅助列F中找到A1的位置
-->MATCH(A2&VLOOKUP(A2,D:E,2,0),F:F,0)
再利用index在E列中进行偏移的操作,要找A2的话就是A1的位置向下偏移一个单位
-->INDEX(E:E,MATCH(A2&VLOOKUP(A2,D:E,2,0),F:F,0)+1,0)
这个样就能找到中间的结果了,如果是A1下边的第N个值,就将偏移量进行相应的修改就行了,但此方法只适用于每个结果分类的个数一致(每个编号的值的数量都相等)
④那如果每个编号存在的值的数量不相等,要的结果也偏主观,那推荐透视下结果,手动进行填写……还有一种方法就是使用Python+pandas实现,这个难度较大,适用于数据量大的时候。
以上如果对您有帮助记得点个赞加关注支持一下,谢谢!
有问题可留言哦!看到的都会解答的,有错误也麻烦指出,谢谢大家。