妙用VLOOKUP+MATCH函数组合轻松搞定Excel中的乱序字段数据查询

个人微信号 | (ID:LiRuiExcel520)

微信服务号 | 跟李锐学Excel(ID:LiRuiExcel)

微信公众号 | Excel函数与公式(ID:ExcelLiRui)

昨天的教程介绍了VLOOKUP+COLUMN函数组合优化多列数据查询问题的使用方法,可以批量搞定多字段数据查询,但是对原始数据有个要求,就是查询字段和数据源字段的顺序一致。

如果遇到乱序字段查询,VLOOKUP+COLUMN组合就不再适用了,需要根据实际情况选择更优化的解法,那就是VLOOKUP+MATCH函数组合。

本文结合实际案例介绍VLOOKUP+MATCH函数组合的巧妙用法,轻松搞定Excel中的乱序字段数据查询问题,下文具体介绍。

比如按照姓名查询多个科目的成绩,动图演示如下图所示。

这个案例中有5个科目需要查询,传统方法是写5个公式分别查询对应的科目成绩,改进后可以仅用1个公式批量查询5个乱序科目的成绩。

建议你先自己思考2分钟,下文具体介绍传统方法和改进方法。

传统方法查询语文成绩:

由于语文成绩在数据源中位于第3列,所以VLOOKUP函数的第三参数设置为3,示例公式如下。

=VLOOKUP(A13,$A$2:$F$10,3,0)

公式示意图如下所示:

传统方法查询化学成绩:

由于化学成绩在数据源中位于第6列,所以VLOOKUP函数的第三参数设置为6,示例公式如下。

=VLOOKUP(A13,$A$2:$F$10,6,0)

公式示意图如下所示:

传统方法查询物理成绩:

由于物理成绩在数据源中位于第5列,所以VLOOKUP函数的第三参数设置为5,示例公式如下。

=VLOOKUP(A13,$A$2:$F$10,5,0)

公式示意图如下所示:

传统方法查询英语成绩:

由于英语成绩在数据源中位于第4列,所以VLOOKUP函数的第三参数设置为4,示例公式如下。

=VLOOKUP(A13,$A$2:$F$10,4,0)

公式示意图如下所示:

传统方法查询数学成绩:

由于数学成绩在数据源中位于第2列,所以VLOOKUP函数的第三参数设置为2,示例公式如下。

=VLOOKUP(A13,$A$2:$F$10,2,0)

公式示意图如下所示:

这样的方法虽然可以实现5个科目成绩查询,但是需要写5次公式,分别设置VLOOKUP函数的第三参数,修改为对应的列号数字。

改进方法使用COLUMN函数:

改进思路是使用Excel函数自动生成VLOOKUP函数的第三参数,使其随着公式所在位置向右填充的时候,根据查询的字段返回对应的列号,这种需求可以用MATCH函数满足。

MATCH函数用于在原始数据源的标题行中查询公式所在位置上方的字段名称,并返回其位置对应的数字。

示例公式如下。

=MATCH(B12,$A$1:$F$1,0)

公式示意图如下所示:

MATCH函数的作用:

按照上面介绍的原理,我们的需要是VLOOKUP函数第三参数根据上图第12行的字段名次在数据源中的位置决定,而MATCH函数正好可以帮助我们计算出这个相对位置,而且随着公式向右侧填充,结果也跟随上方科目字段的变化而自动更新。

示例公式如下。

=MATCH(F12,$A$1:$F$1,0)

公式示意图如下所示:

VLOOKUP+MATCH组合用法:

明白了MATCH函数的原理,就可以让其配合VLOOKUP函数代替手动输入第三参数了。

示例公式如下。

=VLOOKUP($A13,$A$2:$F$10,MATCH(B12,$A$1:$F$1,0),0)

公式示意图如下所示:

VLOOKUP+MATCH向右填充公式:

当公式填充至最右侧时,示例公式如下。

=VLOOKUP($A13,$A$2:$F$10,MATCH(F12,$A$1:$F$1,0),0)

公式示意图如下所示:

这些常用的经典excel函数公式技巧可以帮你在关键时刻解决困扰,有心的人赶快收藏起来吧。

希望这篇文章能帮到你!怕记不住可以发到朋友圈自己标记。

(0)

相关推荐