多语言展示
当前在线:1185今日阅读:75今日分享:44

左右逢源,match与index联手使数据查找更自如

众所周知,vlookup函数是Excel中功能极为强大查找类函数,但它也有一个先天缺陷,即只能实现从左向右的查找,要求查找值必须位于查找区域的最左一列。这一特点,常常让我们在工作中有时不得不调整数据表的列次。但有时不允许改变数据表格式,我们就应该使用match函数和index函数配合来解决这一问题了。  话说这天梁山泊的神机军师朱武下山找南山酒店掌柜旱地忽律朱贵喝酒,见到朱贵正为数据查找的问题发愁。
工具/原料
1

excel2010及以后的版本

2

match(),index()这两个函数

方法/步骤
1

朱武问起,朱贵说原来自己正在想办法如何通过姓名值在表中反查到这些人员的代号,因为在另一张表中是按代号保存这些人的隐秘信息,却没有姓名。但一早上试用了好多次vlookup()函数都不行,老是提示查找错误。朱武检查后,告诉朱贵他所列的vlookup()函数公式是正确的,但是vlookp()函数只能实现从左向右的查找,要求查找值必须位于查找区域的最左一列,在这个查找中,姓名位于查找区域的第2位,当然就查不到了。

2

要解决这一问题,朱武说需要通过两个高手的配合,即match()和index()函数。match()函数可以实现查找功能,即在某一区域中找到查找值的位置,而index()则可以根据指定的位置,找到该位置的对应值。首先我们使用match()函数来找到指定姓名在数据区域的位置。I2单元格中的公式为:=MATCH(H2,B:B,0),其中H2表示要查找的姓名,B:B表示在数据区域的B列查找,0表示精确查找。按下回车后,得到返回值2,说明,H2单元格中的姓名在数据区域B列的第2行。

3

确定了位置,index()就可以出马了,利用index()拿到指定位置的数据值。我们在J2单元格中输入公式:=index(A:A,I2),其中A:A表示数据区域中的A列,这是我们要找的编号所在列,I2是我们刚找到的姓名所在行号,A列的这一行必然就是这个姓名对应的编号。于是我们按回车键后,得到返回值“甲字001号”,这样就得到了我们要找的姓名所对应的编号。

5

朱贵说,我明白了。另外我觉得可以把两个公式写在一起,比如在I2单元格中可以输入:=index(A:A,match(H2,B:B,0)),这样就可以直接得到姓名对应的编号。然后再把公式向下拖拉复制,就完成了查找操作。朱武听了哈哈大笑,称赞朱贵学习知识能举一反三,进步很快。

注意事项
1

学习Excel最重要的就是要多思考,多练习,善于举一反三。

2

欢迎大家批评交流。

推荐信息