完全理解vlookup多条件查询

看了半天感觉大家讲的不是很清楚,明明并不复杂。另外用vlookup多条件查询并不需要shift+enter

忽略不精确查找的情况(range_lookup=1)因为我目前用不到。

先说一下解决方法:=vlookup(条件1&条件2,if({1,0},查询列1&查询列2,输出列),2)

下文是如何理解:

以下图两个条件查询为例,在AB里查询E2与F1条件,输出C列对应的结果

前两个部分很好理解,通过&连接两个条件或两个数组,实际上是创造了辅助列,把多条件转化为单条件,也就是查询值变成了‘ALB1’,查询数组变成了A与B合成的一列

查询值:ALB&1(ALB与1)          查询数组:A:A&B:B (A与B列)

真正需要理解的是IF的使用和查询结果在查询数组中的序号(col_index_num)

首先回想一下单条件查询时的各个参数:查找什么,在哪里查找,查询结果在查找的哪个位置

单条件查询时,我们可以做到查询数组是n:m的多列结构,所以能通过col_index_num参数来引用该多列结构中的某列

而多条件查询中,由于条件是通过连接缝合起来的辅助列,没有了多列的结构,就需要别的方法来创建这个可引用位置的结构,这就用上了IF函数。

平时用 if大多只用来做单次判断,其实也可以做到多次判断。需要区分 ifs是多条件判断。

IF能够通过在条件判断里进行多次判断做到我们需要的多种输出,由此可以利用它创建我们需要的可引用位置的结构。

示例:

多次判断条件{1,0},即第一次判断1,第一次判断0

判断结果为True则输出2,False则输出3,右图为结果。

(数组函数,类似于为多输出函数,需要选中多个单元格后按Shift+enter)

这时你需要输出位置col_index_num是2的,就是查询到判断结果里的‘3’;输出位置col_index_num是1的,就查询到‘2’。

那么到这里应该能够理解vlookup(条件1&条件2,if({1,0},查询列1&查询列2,输出列),2)了。

总结一下:

  1. 通过&连接查询条件与查询列
  2. 通过if让查询列与输出列形成一体的多输出结构

可以看到,if 的参数顺序也满足了vlookup要求查询列在第一列的要求。

多条件只需继续通过&连接即可,这样的结构还避免了vlookup参数中table_array里有很多无关的列有可能不小心引用到错误结果的情况。

有没有办法实现列的不连续引用来替代这个if 呢?欢迎讨论~

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值