Excel如何精确匹配行列字段,不使用vlookup
有时候,我们需要从另一个张表中匹配获取本表中没有的字段,Excel提供了一个函数:vlookup(hlookup),这个函数有个坏处,你无法向左匹配,就是说,你要获取的列,必须在待匹配列的右边。这篇将使用两外两个函数,实现更精确的匹配功能。
需求分析
- 01
假设有一张表如下图所示,共有800多名人员信息。
- 02
而你所需要的,仅仅是填充下面的表:
基础学习
- 01
先学习两个函数: 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"}中排在第三位。 如下图:
- 02
index( arr, ind ) index函数返回在arr数组中第ind个元素的值。 比如: index( {"a","b","c","d", 3 } 它的计算结果是 c,因为第三个元素就是"c"。如下图:
实际运用
- 01
以那个需求表为例,填充数据可以使用下面的公式: =INDEX(Sheet2!B:B,MATCH($B3,Sheet2!$A:$A,0)) 公式原理: match返回B3单元格的值(名字)在sheet2表A列(也是名字,但作为一个数组来看)所在的位置索引,实际就是看”曹操“这个名字在整个sheet2表中的A列中在第几行。 然后index返回B列的第几行(match的计算结果)。如下图:
- 02
填充公式: 一下就可以得到整个结果,如下图:
赞 (0)