上一篇介绍的VLOOKUP实现对根据范围内的第一列某值可以快速找到其在范围内同行的某列的结果,同样match+index可以实现同样的结果。
先说match的语法
MATCH(lookup_value, lookup_array, [match_type])
第一个参数lookup_value和
VLOOKUP函数第一个参数一样为查找值,为将要在lookup_array中匹配到的值。
第二个参数lookup_array,查找范围,单独为查找lookup_value的一列或者一列的某一片区域。
第三个参数[match_type],匹配类型,可选。数字 -1、0 或 1。 match_type 参数指定 Excel 如何将 lookup_value 与 lookup_array 中的值匹配。此参数的默认值为 1。
1 或省略 MATCH 查找小于或等于 lookup_value 的最大值。 lookup_array 参数中的值必须以升序排序,例如:...-2, -1, 0, 1, 2, ..., A-Z,FALSE, TRUE。
0 表示 MATCH 查找完全等于 lookup_value 的第一个值。 lookup_array 参数中的值可按任何顺序排列。
-1表示MATCH 查找大于或等于 lookup_value 的最小值。 lookup_array 参数中的值必须按降序排列,例如:TRUE, FALSE, Z-A, ...2, 1, 0, -1, -2, ... 。
match函数返回结果为匹配值在选定范围的行数
我们一般选精确匹配值就是0作为匹配类型,如下图1所示要查找的值
如图1所示,a处在A1:A5的第一个位置所以返回1,d在第四个位置返回4,找不到则返回#N/A。
下面介绍index函数的功能
先说index的语法
INDEX(array, row_num, [column_num])
第一个参数array表示索引的范围
第二个参数row_num表示要索引的值在array的第几行
第三个参数column_num表示要索引的值在array的第几列
index就是返回某个范围具体几行几列位置的值。下面具体举个示例
如图2所示,要找范围A1:B5范围内第三行第二列的值,则可通过index查找,返回值cc,cc值位于A1:B5范围的第三行第二列符合条件。
下面介绍match结合index实现vlookup功能
如图3所示,E列求得b处在A1:A5的范围的第几行,已知行数后就可以求得具体其相同行第几列的位置。
match结合index可以实现向左查询
如图4所示,先在范围b值在B1:B5处在第几行,知道行数后通过index索引范围,可以查找处在索引范围的相同行的第几列的值,这里取b值左边第一列位置值。得到bbb值。
欢迎交流