VLOOKUP函数是Excel中的一个纵向查找函数,它的语法结构为:=VLOOKUP (查找值,查找区域,列序数,匹配方式)

也就是从一个数据范围中查找并返回所需的结果,而返回的结果是在查找范围中位于第几列,包含隐藏的列,也就是根据第三参数的数字返回结果。所以VLOOKUP函数的第三个参数非常重要,它指定了查找结果所在列的位置,确定了返回的结果。VLOOKUP函数的第三个参数一般来说是一个数字。比如下图,数据源表格“分月销量”的第一列为产品名称,第二列到第13列(B列到M列)为销量,在“产品销售额”表格中我们需要从第一张表格中查找“可乐”的1月的销量,表示要从查找范围A:M列的第二列中查找“可乐”的销量,这时我们就需要将VLOOKUP函数的第三个参数设置为2。

excel中如何让VLOOKUP函数的第三参数动态变化?-趣帮office教程网

excel中如何让VLOOKUP函数的第三参数动态变化?-趣帮office教程网

首先我们选择“产品销售额“B3单元格,输入:

=VLOOKUP($A3,'分产品1-12月销量'!$A:$M,2,FALSE),这里的第一参数A3,需要将列锁定,第二参数A:M也进行锁定,这样公式复制到其他单元格时,公式引用的查找单元格始终是A列,查找范围始终是A:M列,再将公式向下填。我们看到公式中的第三参数是2,也就是从“分月销量”表中查找可乐的销量,返回表格中第二列的数据,而这个第三参数2是静态的,当我们要返回的列数发生变化时,这个数字不会发生变化。比如将公式复制到E列时,第三参数还是2,显然这样返回的结果是错误的。

excel中如何让VLOOKUP函数的第三参数动态变化?-趣帮office教程网

excel中如何让VLOOKUP函数的第三参数动态变化?-趣帮office教程网

那么怎么样才能让公式中的第三参数变成动态的呢?也就是让第三参数随着查找值的变化而变化呢?

这里我们需要用到MATCH函数,MATCH函数返回的是查找值在查找范围的位置,它的语法结构为:

=MATCH(查找值,查找区域,匹配方式)

所以我们可以将MATCH函数嵌套到VLOOKUP函数中,让MATCH函数返回的结果作为VLOOKUP函数的第三参数,这样第三参数就可以变成动态变化的值。在=VLOOKUP($A3,'分产品1-12月销量'!$A:$M,2,FALSE)这个公式中,第三参数的值是由我们要返回第几个月的数据决定的,比如要返回1月的数据,那么第三参数是2,返回2月的数据,第三参数是3,所以我们要让MATCH函数返回的值正好是第一张表中,月份在第一行中所处的位置。所以我们将第三参数改为公式:

MATCH(B$1,分月销量!$A$2:$M$2,0),这里需要锁定MATCH函数第一个参数查找值的行以及第二个参数查找范围。

完整的公式就是:

=VLOOKUP($A3,分月销量!$A:$M,MATCH(B$1,分月销量!$A$2:$M$2,0),FALSE)

将公式复制到E列和H列,来看一下返回的结果,那么这个时候返回的值就是第一行对应月份的销量数据,如果我们修改第一行的月份,将月份改成4月、5月、6月,那么VLOOKUP函数返回的结果也就发生了变化。

excel中如何让VLOOKUP函数的第三参数动态变化?-趣帮office教程网

excel中如何让VLOOKUP函数的第三参数动态变化?-趣帮office教程网

所以通过将MATCH函数嵌套到VLOOKUP函数的第三参数中,就可以实现VLOOKUP函数第三参数的动态变化,这个方法在实际工作中非常实用,有兴趣的可以学习一下。如有问题,欢迎留言。