您的位置首页生活百科

Excel如何精确匹配行列字段,不使用vlookup

Excel如何精确匹配行列字段,不使用vlookup

的有关信息介绍如下:

Excel如何精确匹配行列字段,不使用vlookup

有时候,我们需要从另一个张表中匹配获取本表中没有的字段,Excel提供了一个函数:vlookup(hlookup),这个函数有个坏处,你无法向左匹配,就是说,你要获取的列,必须在待匹配列的右边。这篇经验将使用两外两个函数,实现更精确的匹配功能。

假设有一张表如下图所示,共有800多名人员信息。

而你所需要的,仅仅是填充下面的表:

先学习两个函数:

match( val, arr, n )

match函数,有三个参数,他返回 val所指定的值在 arr 数组中所在的位置索引,如果val不在arr中,则返回N/A,n表示匹配模式,一般传递0值,表示精确匹配。

例如:

match( "c", { "a", "b", "c", "d" }, 0 )

它的计算结果是3,因为 “c”在数组{"a","b","c","d"}中排在第三位。

如下图:

index( arr, ind )

index函数返回在arr数组中第ind个元素的值。

比如:

index( {"a","b","c","d", 3 }

它的计算结果是 c,因为第三个元素就是"c"。如下图:

以那个需求表为例,填充数据可以使用下面的公式:

=INDEX(Sheet2!B:B,MATCH($B3,Sheet2!$A:$A,0))

公式原理:

match返回B3单元格的值(名字)在sheet2表A列(也是名字,但作为一个数组来看)所在的位置索引,实际就是看”曹操“这个名字在整个sheet2表中的A列中在第几行。

然后index返回B列的第几行(match的计算结果)。如下图:

填充公式:

一下就可以得到整个结果,如下图: