在上一篇文章(Excel之VLOOKUP函数的精确匹配,快速获取一一对应的数据! - 简书)中,我们使用了VLOOKUP函数的精确匹配来查询并快速输入数据,这一强大的工具提升了数据处理的效率,然而VLOOKUP函数也有其局限之处:假设我们有很多列的数据,则在每列中都要输入VLOOKUP函数,这并不是高效利用时间的方法。
我们既不能简单使用拖拽功能,也无法复制粘贴函数公式于其他列中,因为该函数的第三个参数在拖拽或复制时并不能随着单元格的变化而变化。
另一个需要考虑的问题是,VLOOKUP函数的第二个参数,查询的数据区域可能会增删改数据(特别是添加、删除或移动列数据时),这样的话VLOOKUP函数则会被破坏,导致出错。
为了解决上面的问题,使我们在使用VLOOKUP函数更加灵活和稳定,我们来介绍一下MATCH函数,了解一下这个函数如何可以帮助我们。
MATCH函数好比一个微型的VLOOKUP函数:给定一个查询值,在查询区域中找到与之匹配的数据,返回该查询值在查询区域中的位置,而非对应的值。
我们利用MATCH函数来查找“Short Description”这一标题在International Price List工作表的数据表格中标题所在的位置是几。
在E4单元格中,我们输入MATCH函数,第一个参数与VLOOKUP函数中的相同,为lookup_value,所要查询的值,我们点击选择E5单元格的“Short Description”这一标题。
MATCH函数的第二个参数lookup_array,我们点击International Price List工作表,选择数据表格的标题行(A3至E3单元格)。
MATCH函数的第三个参数是[match_type],我们选择精确匹配或输入数字0。
按Enter键后,Customer Quote工作表中的E4单元格中即可返回结果“3”,说明“Short Description”在查询的数据区域中所在的列为第3列。
鼠标放在E4单元格的右下角,变成黑色十字后,向右拖拽,这样F4和G4单元格中会分别返回“Category”和“Retail Price”所在的列数。
我们先将“Category”中原有的数据删掉,双击E6单元格,修改VLOOKUP函数的第三个参数,我们可以不用再直接输入列数,而可以使用MATCH函数来替代,但此处我们可以引用E4单元格,并且对其使用混合引用,即锁定行而不锁定列,这样在拖拽或复制函数公式时则会很方便。
按Enter键后,“Category”列的数据会准确获取,我们在向右拖拽函数公式时,“Category”和“Retail Price”列则会出现#N/A错误。
出现错误的原因是在向右拖拽时,第一个参数查询值会因着相对引用而选择Loc Code的数据,而非Item的数据。
因此,我们在这里不选择使用拖拽的方式,而是直接复制E6单元格中的函数公式,再选中F6和G6单元格,右击选择粘贴“公式”。
粘贴之后,“Category”和“Retail Price”的数据均快速完成填充。
为了使我们的表格看上去更整洁,我们可以将E4至G4单元格中的数据进行隐藏,所使用的方法之一是:选中这三个单元格,点击“开始”选项卡,“字体颜色”选择纯白色即可。
通过以上案例,我们发现MATCH函数可以使VLOOKUP函数在应用的过程中更加强大和灵活。MATCH函数一般不单独使用,而是和其他查询类的函数相结合,下一期我们会分享一个非常经典的搭配——INDEX和MATCH,敬请期待!