VLOOKUP函数精讲(三)

大家好,我是小V。

前面我们介绍了VLOOKUP函数的精确匹配及模糊匹配用法!

今天我们来介绍VLOOKUP函数的另一种用法——反向查询。

首先,我们来回顾一下vlookup函数的语法结构:

VLOOKUP函数语法结构一定要掌握扎实,这是学习VLOOKUP函数的基础。

VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

第1个参数为查找值,代表根据什么查找;

第2个参数是查找区域,代表从哪里查找;

第3个参数是返回查找区域第几列的值;

第4个参数是判断精确查找还是模糊查找。


应用场景

我们来看这样一个案例:

某超市要统计2021年1月1日到1月5日各类别商品的销售情况,

现已知商品种类明细,和这5天各个商品的销售明细,如何计算出各个中类商品的销售情况?


分析问题

这里要统计每个中类商品的销售情况,首先要查询出每个商品对应的中类层级是什么?这里使用vlookup函数精确匹配查询,会返回错误值;

vlookup函数查询时,查找值必须在查找区域的首列。

这里查找值商品编号不在返回值中类编号列的左边,并且查找值也不在首列。

那么,如何解决这种问题呢?

解决方案

vlookup正向查找只能从首列开始往右查找,返回表格中首列右侧的内容。如果要正确查找到值就需要构建新的查找区域。在新区域中将查找值放在首列。这里问题就变为:改变第二个参数,如何构建新的区域?

我们可以借助IF函数来构建新的查找区域:

表达式:=vlookup(查找值,IF({1,0},查找值所在列,返回值值所在列),2,0)

逆向查找本质上是通过IF函数构造新的查找区域。

因为有数组输入,需要同时按ctrl+shift+enter得:

={vlookup(查找值,IF({1,0},查找值所在列,结果值所在列),2,0)}。

其中,IF函数表达式:=IF(判定条件,正确返回值,错误返回值)

{1,0}为一个数组,数值1对应查找值所在列,数值0对应结果值所在列,通过构造数组区域使查找值与结构值在数组内位置调换,实现逆向查找。

对于这种反向查找的问题,还可以用vlookup之外的其他方法解决:

下面分别列了出来,这里不花太多篇幅去讲,如果想进一步深入了解可以私信我或后台留言交流;

index+match查找:

=INDEX($B$2:$D$22,MATCH(J6,$D$2:$D$22,0),2)

vlookup+choose查找:=VLOOKUP(J6,CHOOSE({1,2},$D$3:$D$22,$C$3:$C$22),2,FALSE)

lookup函数查找:

=LOOKUP(1,0/($D$3:$D$22=J11),$C$3:$C$22)

下期预告:下期分享VLOOKUP函数多条件查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值