EXCEL区间查询匹配(模糊匹配)几种方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EXCEL区间查询匹配(模糊匹配)几种方法
如图,我们的任务是需要根据各位员工的工资水平匹配岗位称职。
主要有以下三种方法:(一)多层嵌套IF函数
在D2输“=IF(C2<5001,$G$2,IF(C2<8001,$G$3,IF(C2<12001,$G$4,IF(C2<20001,$G$5,$G$6))))”,然后下拉,使用IF函数进行5层嵌套,比较粗暴麻烦,随着分类规则增多,嵌套层数会更多,不适合我国现行的科学发展观,是一种淘汰的方法。
(二)INDEX+MATCH函数,高效匹配区间
首先根据薪资职称对应表构建一个范围表,每个职称对应薪资空间的最大值,最高职称对应值可根据薪水列表情况进行设定,大于所有员工薪水最高值即可,如上图。
在D2单元格输入INDEX+MATCH函数,INDEX函数的第一个参数是职称指定区域,第二个参数是相对位置,也就是MATCH函数返回的值,意思是指定区域相对位置的值,例如INDEX ($J$1:$J$6,3),返回值则为“高级”。
MATCH函数第一个参数是查找值薪水C2,第二个参数是查找区域I列,第三个参数选择模糊查询(-1),返回比查找值C2大的值的最数值在查找区域的位置(行数)。
比如7996,在I列中查找比7996大,但最小的至为8000,在I列中相对位置为5(第五行),故返回值为5.
因此D2单元格函数应为“=INDEX($J$1:$J$6,MATCH(C2,I:I,-1))”,然后复制下拉即可完成其他匹配。
需要注意的是构建的查找范围必须是降序的,也就是参数由大到小,否则会返回错误值。
(三)VLOOKUP函数
首先根据薪资职称对应表构建一个范围表,每个职称对应薪资的最低值,如上图。
在D2单元格输入VLOOKUP函数,其中参考值为C2,查找区间为之前构建的范围($I$2:$J$6)(绝对引用,防止下拉公式时范围变化),列数未2,选择模糊查找(1或TRUE),以此公式为“=VLOOKUP(C2,$I$2:$J$6,2,1)”,点击回车,拖动鼠标下拉复制即可完成。
需要注意的是,我们构建区间范围时必须为升序,如果打乱顺序将返回错误值,如图。