鼠标|vlookup这个缺点,只需要用个数组公式,就能轻松实现反向查询

鼠标|vlookup这个缺点,只需要用个数组公式,就能轻松实现反向查询

文章图片

鼠标|vlookup这个缺点,只需要用个数组公式,就能轻松实现反向查询

文章图片

鼠标|vlookup这个缺点,只需要用个数组公式,就能轻松实现反向查询

文章图片

鼠标|vlookup这个缺点,只需要用个数组公式,就能轻松实现反向查询


使用vlookup查询数据的同学 , 可能经常遇到需要返回的数据在查找值左侧的情况 。
比如 , 下图的数据表:

通过店铺名称 , 我们希望能匹配到对应的一级大区名称 , 但是大区名称数据 , 却是在店铺名称的左侧 。
由于vlookup存在一个功能上的缺陷 , 那就是 , 返回列数据 , 必须要在查找值数据的右侧 , 函数才能正确的返回数据 。
这就导致vlookup没法正常查询上表中的一级大区名称 。
「不过你可以用以下3种方法来解决这个问题 。 」

  1. 改变原表结构 。
  2. 使用数组公式改变表结构 。
  3. 使用其他函数 。
改变原表结构通过改变原表结构 , 让返回值列在查找值列右侧就好了 。
快捷调整行列顺序的方法如下:
鼠标点击B列标题 , 选中整个B列 。

然后鼠标移动到选中的绿色边框线上 , 鼠标箭头变成四向移动箭头 , 左键点击不放 , 同时按住shift键不放 。
最后向左拖动到合适的位置 , 先放开鼠标左键 , 再放开shift键即可移动完成 。

如果是按住CTRL键 , 就是复制功能 。
「但是」 , 公司有些表 , TA不准改!不准改!不准改啊!
所以你可以用下面两种方法 。
使用数组公式调整表结构函数公式如下:
=VLOOKUP(E2IF({10$B$1:$B$5$A$1:$A$5)20)
注意到了吗?
原本vlookup的第二个参数 , 我们换成了一个数组公式IF({10$B$1:$B$5$A$1:$A$5) 。

如果在空白单元格直接输入这个数组公式 , 会的到这样的结果 。


wps和office excel请按照数组公式使用方法来输入数组公式 。
  1. 先选择承载数组公式结果数据的空单元格区域 。
  2. 再输入数组公式 。
  3. 最后按数组确认键CTRL+SHIFT+回车确认数组公式 。
是不是正好是将店铺名称和大区名称互换位置了 。
{10是一个一维数组常量 , 在if函数中 , 1被认为是True , 0就是False 。
if函数会根据这个一维数组中的值 , 依次来判断 , 是1 , 则返回第二个参数 , 是0则返回第三个参数 。 我们分别在第2和第3参数选上对应的数据区域 , 就可以实现两个数据区域的调换 。
因为最终生成的vlookup查找区域 , 是两列数据 , 所以最终的返回值是在第2列 , 这也是为什么vlookup的第3个参数是2 。
使用其他函数代替vlookup微软早就发布了一个新查找引用函数xlookup , 它比vlookup功能更强大 。
函数语法如下:=XLOOKUP(lookup_value lookup_array return_array [if_not_found
[match_mode
[search_mode
)

来自office支持xlookup不讲武德 , 直接取消了vlookup原本的查找区域包含查找值和返回值的模式 。
xlookup的第一个参数是查找值 , 第二个参数是查找值所在数据区域 , 第三个参数是返回值所在区域 。
所以压根不用管谁在谁的左边右边 , 实现公式如下:
=XLOOKUP(E2$B$2:$B$5$A$2:$A$5)
这个函数目前在Excel 2016及以上和WPS最新版可用 。 如果你目前没法使用这个函数 , 也可以使用index加match组合搭配来实现上面的需求 。
【鼠标|vlookup这个缺点,只需要用个数组公式,就能轻松实现反向查询】index+match函数的查找引用公式如下:
=INDEX($A$2:$A$5MATCH(E2$B$2:$B$50))

match函数用于返回查找值在查找区域的所在行数 , index会根据这个函数 , 返回第一个参数的数据区域中对应行数的数据 。
我将持续发布vlookup函数使用过程中可能遇到的各种案例问题 , 如果你正遇到类似的难题 , 可以留言评论 , 说不定下期就是答案了 。
赶紧转发收藏起来 , 以后遇到这一系列问题 , 就可以派上用场 。