今天要讲解的是区间模糊匹配的案例,根据补助标准,将A2到A10区域的各位大神填写其工作年限对应的补助。
分析:左边是各位大神的工作年限,右边是补助标准表,意思就是1-2年补助100,3-4年补助200,5-6年补助300,7-8年补助400,9到10年补助600。我想大家看到这样的区间,是不是最先想到用if函数,但是,假如区间有十几二十多个,用if函数岂不是要用到N个if函数嵌套,不仅麻烦,而且容易出错。
一般if函数适用于条件较少的区间,多条件区间用什么呢?有很多很多个常用函数,像vlookup函数、index+match函数、offset+match函数、lookup函数、hlookup+match函数等等(需要注意数据区间是否包含!不要粗心出错了)。。。
现在我们做这道题,我建议如果对函数掌握处于前期,可以用辅助列添加到其中。如图(等下讲解的前九种方法都是用辅助列完成)
方法一
用if函数,=IF(B2<$S$3,100,IF(B2<$S$4,200,IF(B2<$S$5,300,IF(B2<$S$6,400,600)))),五个条件区间,用四个if函数判断。
方法二
vlookup函数做法:=VLOOKUP(B2,$S$2:$T$6,2)
方法三
index+match函数做法:=INDEX($T$2:$T$6,MATCH(B2,$S$2:$S$6))
方法四
offset+match函数做法:=OFFSET($T$1,MATCH(B2,$S$2:$S$6),)
方法五
lookup函数做法:=LOOKUP(B2,$S$2:$S$6,$T$2:$T$6)
方法六
hlookup+match函数做法:=HLOOKUP($T$2,$2:$6,MATCH(B2,$S$2:$S$6))
方法七
indirect函数做法:=INDIRECT("T"&MATCH(B2,$S$1:$S$6))
方法八
indirect+address+match+column函数做法:=INDIRECT(ADDRESS(MATCH(B2,$S$1:$S$6),COLUMN(T1)))
方法九
2016office版本的新函数IFS函数做法:=IFS(B2<$S$3,$T$2,B2<$S$4,$T$3,B2<$S$5,$T$4,B2<$S$6,$T$5,B2>=$S$6,$T$6)
从第十种方法开始,都是不借助辅助列直接完成,因为需要用left函数提取第一个数字,除了最后一种方法lookup函数不需要数组公式,其他都需要按ctrl+shift+enter构成数组公式。
方法十
vlookup+if函数构建数组:=VLOOKUP(B2,IF({1,0},--LEFT($R$2:$R$6),$T$2:$T$6),2),ctrl+shift+enter构建数组公式
方法十一
index+match函数:=INDEX($T$2:$T$6,MATCH(B2,--LEFT($R$2:$R$6))),ctrl+shift+enter构建数组公式
方法十二
offset+match函数:=OFFSET($T$1,MATCH(B2,--LEFT($R$2:$R$6)),),ctrl+shift+enter构建数组公式
方法十三
indirect函数:=INDIRECT("T"&MATCH(B2,--LEFT($R$1:$R$6))),ctrl+shift+enter构建数组公式
方法十四
choose+match函数做法:=CHOOSE(MATCH(B2,--LEFT($R$2:$R$6)),$T$2,$T$3,$T$4,$T$5,$T$6),ctrl+shift+enter构建数组公式
方法十五
lookup函数:=LOOKUP(B2,--LEFT($R$2:$R$6),$T$2:$T$6)
以上15种方法都不是很难,只要你会这个函数,基本就能看得懂~
不懂的+要表格的私聊我~