大家好啊,我是30天精学班第9期的班长,叫小不点儿,喜欢自称“小白”。今天和大家一起分享一下VLOOKUP函数逆向查询的那点事儿。 工作中,逆向查询的问题有不少,像下面的数据源: 现在需要根据姓名查询对应的部门: 看到这样的题目要求,大家一定都不陌生,如果我们对函数比较熟悉的话,会有N多种方法浮现在眼前: 方法一: 方法二:
方法三: …… 关于逆向查找,其实VLOOKUP也可以做到哦。 一般情况下,VLOOKUP函数要求查询值要处于查询区域的左侧列。 但是本例中,查询值姓名,是处于查询区域的右侧了。这时候,就需要借助IF函数来帮忙了。 用到的公式是: IF函数在这里构建一个内存数组,作为VLOOKUP的第二参数,使其能够顺利达到查询目的。 我们知道,如果IF函数的第一个参数是非0数值,就返回第二个参数. 如果IF函数的第一个参数是0,就返回第三个参数。 本例中的IF({1,0},B1:B9,A1:A9)部分,{1,0}是一个两列的横向水平数组,如果是1,则返回B1:B9;如果是0,则返回A1:A9。 因此返回一个数组结果: 也就是姓名在前,职务在后的这样一个内存数组。 VLOOKUP函数本来无法实现从右向左查询,而变换后的数组把查找值姓名置换到了左侧,就能使用VLOOKUP查询了。 不知道这样解释,大家是否能理解呢? 还有一种公式,也能完成将引用区域前后置换的目的。 与IF函数相比,CHOOSE变换更简单、灵活。 CHOOSE在英文里是选择的意思。 第一个参数选择1,就取第一参数后面的第一个参数$B$1:$B$9; 第一个参数选择2,就取第一参数后面的第二个参数$A$1:$A$9。 其作用也是将B列的姓名和A列的职务区域区域进行调整互换。 通过IF函数或是CHOOSE函数,对VLOOKUP函数的查询区域进行重新处理,使其符合查询值位于查询区域首列这样一个潜规则,就实现了咱们的查询目的。 |
|