绝对被低估的Excel函数:MATCH
查找函数上一期
说到Excel的查找函数,人们总会想起vlookup。的确,vlookup非常方便实用,一个函数就能查到想要的值。但vlookup有排序的限制,所以人们忽略了,还有一套用法更灵活的函数可以用。
MATCH
下面让我来隆重介绍,今日的主角——MATCH函数。
在Microsoft的官网中,给MATCH下的定义是“在引用或数组中查找值”。这里的值指的不是像vlookup函数那样返回相应单元格的值,而是返回该值在区域中的位置。
位置的表现形式为数字,排在第一个就是1,排在第二个就是2,……第一百位就是100。我们暂时不去思考这个数字有什么用,先看下这个函数的语法。
语法:
MATCH(lookup_value, lookup_array, [match_type])
解释一下即:
MATCH(要查找的值, 查找的区域, 查找方式)
参数三可以是{0,1,-1}
若参数三为0,参数二可以为任何顺序
若参数三为1,参数二必须为升序,参数三可忽略
若参数三为-1,参数二必须为降序
该函数可以忽略错误值
看起来公式比vlookup更长了,但也有相应的好处,比如无需为了查找首列而改变数据的位置,无需特地排序等。
OFFSET
OFFSET这个函数就有趣了,官方给的定义是“从给定引用中返回引用偏移量”。如果把单元格看做数学里的数轴,那么OFFSET就是指定坐标(0,0)再按规则偏移,返回偏移的单元格。
语法:
OFFSET(reference, rows, cols, [height], [width])
解释:
OFFSET(参照点/起点, 偏移的行, 偏移的列, [框选的行数], [框选的列数])
参数二、三可以为负数,但参数四、五必须为正
若参数四、五被省略,则宽度与高度与参数一相同
将MATCH与OFFSET组合,写出公式:
=OFFSET($A$2,MATCH($H$4,$A$3:$A$22,0),MATCH(I$3,$B$2:$F$2,0))
OFFSET的优缺点和INDEX类似,看起来公式比vlookup更长,但也无需为了查找首列而改变数据的位置,无需特地排序。
总结
虽然可以和MATCH函数打配合的还有CHOOSE、INDIRECT等等,但个人感觉还是INDEX或OFFSET更加常用。VLOOKUP作为查找函数非常好用,但也有自身的局限,比如只能查到第一个,无法查重名、有时还需要改变数据结构或排序等。
MATCH虽不能直接查重复项,但可以将原有的范围减去第一个数据所在的范围,然后再查剩下的范围。而且不用特别关注排序问题,或者位置需不需要改动的问题,可谓更加灵活多变。
当然,函数说到底还是要解决实际问题。根据实际需求来写函数,不同的思路可以得到不一样的答案,这也是我列出所有解法的原因——没有绝对正确的答案,最重要的是思路。
最后我会将这个表上传,需要的朋友可以自取。我是小若,我们下期见。
查找函数示例链接提取码: rvnr
sctomorrow
校验提示文案
洪荒玺
校验提示文案
值友2457851051
校验提示文案
[已注销]
校验提示文案
crysiswen
校验提示文案
crysiswen
校验提示文案
值友2457851051
校验提示文案
洪荒玺
校验提示文案
[已注销]
校验提示文案
sctomorrow
校验提示文案