提示: 尝试使用 新的 XLOOKUP 函数,这是 VLOOKUP 的改进版本,它可朝任何方向工作,并默认返回精确匹配项,使其比其前置任务更易于使用。
当需要按行查找表格或区域内容时,请使用 VLOOKUP。 例如,按部件号查找汽车部件的价格,或根据员工 ID 查找员工姓名。
在这一最简单的形式中,VLOOKUP 函数表示:
=VLOOKUP (要查找的项、要查找位置、区域中包含要返回的值的列号、返回近似匹配或精确匹配 - 指示为 1/TRUE 或 0/FALSE) 。
众所周知,vlookup只能从左向右查找,而不能从右至左的反向查找。为此高手们设计了一个 让无数新手迷惑的公式。今天小编将彻底帮同学们解开这个迷团。
【例】如下图所示要求根据姓名反查工号
公式:
=VLOOKUP(A9,IF({1,0},B2:B6,A2:A6),2,0)
公式中最难理解的就是IF({1,0},B2:B6,A2:A6),这也是今天小编要讲解的要点。
{1,0}是什么?它是一个由两个数字构成的常量数组。如果放在单元格里,相当于2列1行的数 据范围(数组中列用','逗号分隔)。
IF函数的用法
IF(判断式,如果条件成立返回的值,如果条件不成立返回的值)
判断式是可以返回true或false的表达式,也可以是返回非零的数字或0的表达式或值。非零数字如1表示条件成立,0表示条件不成立。
如:
IF(1,100,200) 返回100
IF(0,100,200) 返回200
而 IF({1,0},100,200)呢?由一个数替换成一组数。IF会分别用1和0作为第1个参数进行计算,也 就是说会进行2次计算,返回2个结果,分别是 100 和200。返回的2个数也会按{1,0]的格式摆 放(1行2列),即:{100,200}
而如果100和200不是一个值,而各为一组值呢?如本例中 IF({1,0},B2:B6,A2:A6) 返回的将不是一组2个值,而是2列5行的一组值。如果放在单元格区域中,应该是这样子的:
其实也可以这样理解
IF({1,0},B2:B6,A2:A6)
把B2:B6的值放在1的位置,把A2:A6的值放在0的位置。重构成一个2列5行的数组,只是原B 列放在第1列,A列放在第2列了。
两列数调换了位置,就可以用VLOOKUP的从左向右查找了。
注:说到底,并不是vlookup函数可以实现反向查找,而是if({1,0}把两列数调换了位置而已。