前言
近段时间,小必老师一直在忙书稿的修改问题,再有一个月的时间,新书《Excel人力资源实战宝典》马上就可以和大家见面了。今天,抽空给大家更新一篇关于模糊查找匹配与精确查找匹配的案例。
剧透:该书主要从人力资源中的招聘与培训管理、员工关系管理、绩效管理、考勤与假期管理、薪酬与福利管理以及人员规划等模块为出发点,紧密贴合实际案例,深入浅出地讲解了Excel的基础操作、函数与公式、数据透视表、图表以及Power Query等功能。是每个HR工作效率宝典。即将上市,敬请期待。
如下图所示,根据报名人数的范围与类型从右边的单价表中查找对应的单价。
首先在空白的单元格区域中整理一下单价列表,如下图所示:
公式
在D2单元格中输入公式,按组合键
{=INDEX($I$17:$R$21,MATCH(A2,IF(C2=$G$16,$G$17:$G$21,$H$17:$H$21),1),MATCH(LOOKUP(B2,$I$15:$R$15)&C2,$I$15:$R$15&$I$16:$R$16,0))}
这个公式里面主要用到了INDEX+MATCH的经典语法,但是更巧妙地是使用LOOKUP函数。
公式解释
该部分MATCH(A2,IF(C2=$G$16,$G$17:$G$21,$H$17:$H$21),1)其实返回的是预报率处于那个一个比例的范围内,MATCH函数的第三个参数为1时表示模糊匹配。
该部分MATCH(LOOKUP(B2,$I$15:$R$15)&C2,$I$15:$R$15&$I$16:$R$16,0)相对来说稍微有些复杂。其中LOOKUP(B2,$I$15:$R$15)表示查获B2与I15:R15中的值那个最为接近,如1500与1500出现两次时,返回第二个1500。而表示LOOKUP(B2,$I$15:$R$15)&C2这两部分连接在,再使用MATCH(LOOKUP(B2,$I$15:$R$15)&C2,$I$15:$R$15&$I$16:$R$16,0)这部分来精确地查找,可以具体确定这两个条件同时成立时的的位置。MATCH函数的第三个参数为0时表示精确匹配。
最后使用INDEX函数返回最终的结果。