问题
日常中我们用VLOOKUP一般一次会匹配一列的结果,即根据原始数据的A列得到与之对应的B列的结果。那么如果我们还想知道C列、D列等多个结果的话,除了写多个VLOOKUP公式外,有没有更加快捷的方法呢?
原始数据
预期结果
通过给出的姓名,使用一个公式一次性匹配出多个字段
方法一
-
在H2单元格中输入公式
=VLOOKUP($G2,$A:$E,COLUMN(B1),0)
分别向右和向下拖动H2中的公式,填充所有空值单元格即可得到所有结果。
方法二
选中H2:J2单元格
在公式栏中输入公式
=VLOOKUP(G2,A:E,{2,3,4},0)
按住 Ctrl+Shift+Enter执行公式
向下拖动H2:J2中的公式,即可得到最后结果
公式解析
方法一
方法一理解起来较为简单,主要是利用COLUMN函数在向右拖动的时候获得不同的列数值,作为VLOOKUP第三个参数,从而达到匹配不同列的目的。
该方法需要注意两点:
公式中的绝对引用不要写错。
该方法只能获取连续不同列的值,如果是不连续的列就没法进行匹配了。
方法二
方法二公式中使用了常量数组,公式会显得更加简洁。其中的数组{2,3,4}表示班级、语文成绩、数学成绩分别在原始数据中的第2,3,4列(以姓名为起始列)。
而且无需考虑求值列在原始数据中是否连续,甚至先后顺序都不需要考虑,例如下图1结果列为非连续列,下图2结果列为乱序列,但是都不影响结果的输出,只需要数组中的列数与列名相对应即可。
非连续列,不影响结果 乱序列,不影响结果总结
本文的知识点较为简单,且有多种方法可以实现,即便不会这些方法,不过是多写两个公式。主要是想让大家对数组这个知识点留个意,后续还有很多操作会用到它。