MATCH函数使VLOOKUP函数更灵活高效
这篇文章中,我们将探讨灵活利用VLOOKUP函数的第3个参数的有效方法。
一键直达 >> Excel公式与函数之美15:VLOOKUP函数的秘密
一键直达>>Excel 公式与函数之美16:MATCH函数的几个秘密
一键直达>>Excel公式与函数之美19:理解VLOOKUP函数第4个参数的真实含义
目的
VLOOKUP函数的第3个参数指定想要返回的值的位置。例如,如果想要从所查找区域的第2个位置或第2列返回金额,则应指定该参数为2。
图1
从图1所示的工作表中的“表1”中返回第1列的金额,在B8中使用公式:
=VLOOKUP(A8,表1,2,0)
然而,如果想要使用列标题(如本例中的“金额”)而不是整数值2与Excel进行交互,会得到什么结果,例如
=VLOOKUP(A8,表1,”金额”,0)
返回错误。
显然,Excel不允许使用列标题来引用列。难道不是吗?
技巧
实际上,我们此时要做的就是如何将列标题(金额)转换成相应的整数(2)。
技巧:对第3个参数使用MATCH函数来代替整数
MATCH函数返回列表项的相对位置。因此,要求MATCH函数在表的标题行查找相应标题(金额),返回其位置值。接着,VLOOKUP函数使用该位置值。
例如,因为“金额”在表中的第2列,所以下面的公式返回2:
=MATCH("金额",表1[#标题],0)
在示例中,可以使用下面的公式:
=MATCH(B7,表1[#标题],0)
这样,要使用列标题来查找相应的值,上文中的公式就可变为:
=VLOOKUP(A8,表1,MATCH(B7,表1[#标题],0),0)
这个技巧允许引用列标题来代替位置值。下面是这项技术的一些有趣的应用。
示例1:改变列顺序
如果使用数字作为VLOOKUP函数的第3个参数,那么当所查找表的列顺序改变时,找到的数据将不是想要的数据,因为Excel不会自动更新相应的数字。然而,使用MATCH函数代替数字作为VLOOKUP函数的第3个参数,可以得到正确的结果,这使得工作簿更灵活有效。
如图2所示,开始时要求查找第2列中的相应数据。
图2
但是,如果将图2中的第2列和第3列交换,如图3所示,使用MATCH函数代替2作为VLOOKUP函数的第3个参数,能够确保在列的顺序发生改变时,仍然获得正确结果。
图3
示例2:插入新的列
如果在查找的表中所要查找的列前插入新列,那么使用数字作为参数的VLOOKUP函数的结果将会改变,不会得到想要的数据。但是,使用MATCH函数代替数字作为参数,则不会受到插入新列的影响。
如图4所示,要返回第5列的数据。
图4
在第5列前插入一个新列后,原来的第5列变成了现在的第6列,如图5所示,公式不需要修改,结果仍然不变。
图5
示例3:二维查找
使用传统的VLOOKUP函数,只能垂直查找匹配的值。然而,配合使用MATCH函数,可以实现二维查找,其中,VLOOKUP函数查找行,而MATCH函数查找列。
如下图6所示的工作表,想要获取某本书在某电商网站的价格。在单元格B7中输入电商网站名,在单元格A7中是要查找的图书名。此时,使用VLOOKUP函数查找图书在表中的行,而使用MATCH函数查找电商网站所在的列,从而获取表中的价格数据。
图6
结语
在使用VLOOKUP函数时,将MATCH函数作为其第3个参数,能够实现很多有趣的应用。