今天我们来学习vlookup与if函数的组合应用。
vlookup和if函数的混搭使用,主要用于两种场景,第一个是数据区域的反向查找,第二个是多关键字或多条件查找。
下面我们就根据两个不同的场景来进行公式的使用和介绍。首先,作者先写下vlookup函数公式的常规表达:
=vlookup(查找值,查找区域,返回列,查找类型)
总共有4个参数,其中第4参数又分为精确查找和近似查找,用数字来表示即0和1,如果省略该参数则默认为近似查找!接下来进入正题。
一、反向查找
反向查找也称为逆向查找,主要是关于查找区域中的查询列和返回列的位置情况,具体是指查找列位于返回列之后。
vlookup函数的常规写法是不支持反向查找的,它必须保证查询列位于查询区域的首列。
那如何进行反向查找?并不复杂,有两种常见公式套路,一个是与if函数的嵌套,另一个是与choose函数的嵌套。
这里作者以更为常用的vlookup+if函数的组合公式来进行实例应用。
下图中,作者要查询指定货号对应的产品,由于查询列货号列表位于返回列产品列表的后方,因此要进行反向查找。
我们输入公式:=VLOOKUP(P6,IF({0,1},E:E,F:F),2,0)

这是vlookup与if函数的组合公式,if函数表达式作为vlookup函数的第2参数查找区域,它 执行了0和1的数组运算。
大家可以记住一点,通常公式中的大括号是数组或数组公式的表现形式。
if函数的第1参数条件判断直接用0和1来表示,则会返回两个结果值,而这两个结果值合并在一起又形成一个数组。
当这个数组是两列数据时,便形成了vlookup函数的查找区域,并根据0和1的先后顺序,来设置对应的查询列和返回列。
那么这里有一个知识点,即if函数第1参数该写成“{1,0}”还是“{0,1}”?!
很多人都习惯性使用前面一种写法, 然后认为后一写法是错的,其实不然,他只是没理解if数组的含义。
当if函数第1参数设置为“{0,1}”数组时,则首先返回第3参数,再返回第2参数,应用到公式中,即得到结果“F:F;E:E”,这时F列是作为查询区域的首列,使得vlookup函数能够正常执行运算。
二、多关键字或多条件查找
所谓多关键字,也就是有多个查找值,然后查询并引用它们对应的结果值。
我们通常也将每个关键字称为一个条件,那么多条件查找的vlookup公式应用,也有它的固定套路。
在下方数据表中,由于采购合同和对应产品都存在重复值,因此要查询指定采购合同下指定产品所对应的客户货号。所以它存在两个关键字,一个是采购合同,另一个是产品编号。

我们输入一个公式:{=VLOOKUP(P6&Q6,IF({1,0},A:A&E:E,F:F),2,0)}
这个公式的第1参数使用了连接符号将两个关键字进行合并,再利用if数组表达式输出一个符合查询规则的查找区域。
它的逻辑与反向查找公式相同,还是利用if函数输出了人为设定位置的查询列和返回列,然后执行vlookup函数的查询引用。
这个公式是多关键字查找的固定写法,根据这个固定套路,可以解决类似场景的查找问题。
暂无评论内容