excel学习库

excel表格_excel函数公式大全_execl从入门到精通

vlookup存在多个结果如何选择?三分钟学会!

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实现,这个难度较大,适用于数据量大的时候。

以上如果对您有帮助记得点个赞加关注支持一下,谢谢!

有问题可留言哦!看到的都会解答的,有错误也麻烦指出,谢谢大家。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接