编按:哈喽,大家好!在上一期区间查询的教程中,我们掌握了IF、LOOKUP、VLOOKUP三种最基础的函数解法,相信小伙伴们再次面对区间查询的问题时也能沉着应对啦。但仅仅三种基础的函数解法怎么够,今天我们要说的是比VLOOKUP函数更厉害的三大经典嵌套组合。学会了这三种经典嵌套组合,相信小伙伴们也能在职场上纵横一番了。
【引言】
Excel函数是Excel重要的组成部分,400多个工作表函数(不包含宏表函数和VBA函数),每一个都有其实际存在的意义,只是我们没有使用到而已。而将一个函数的返回值作为另外一个函数的参数参与运算的方式就是函数的嵌套,此类写法的函数过程就是“嵌套函数”。
我们继续上次的“区间取值”,借此学习一些比较经典的嵌套函数是如何解决此类问题的。(本篇为经典嵌套函数篇)
【数据源】
要求:根据B列的数值,在E列的范围条件中找到对应范围在H列的区间系数,并提取到C列计提系数中。
图1
【解题方案】
方法四:INDEX MATCH函数
图例:
图2
C2单元格函数:
=INDEX($H$2:$H$6,MATCH(B2,$G$2:$G$6,1))
函数解析:
INDEX MATCH函数的方式,应该也算是某些同学的解题思路之一。只要了解了函数的语法,这个方法并不难。
INDEX函数,在使用上有两种方式:数组形式、引用形式。我们今天用到的是数组形式。
INDEX函数语法:INDEX(array, row_num, [column_num]),其解释可以理解为,在一个区域中,找到指定行号和列号的交叉点,将其返回至单元格中。
因为我们是在H2:H6这一列区域中提取值,所以我们只用了row_num参数,忽略了column_num。(反之亦然)
那么我们如何来判断要返回第几行的区间系数呢?那就需要MATCH函数来解决了。
MATCH函数语法:MATCH(lookup_value, lookup_array, [match_type]),其解释可以理解为,返回在一个区域中第一次出现该数据的位置序号。
MATCH函数的第三参数和VLOOKUP的第四参数,有着异曲同工之妙,都可以用作模糊查询和精确查询,不过MATCH函数的模糊查询有两个值1(小于),-1(大于)。利用MATCH函数找到数据在条件区域G列中所处的位置序号,再用INDEX函数找到对应的区间系数就达到了我们的需求。
方法五:OFFSET MATCH函数
图例:
图3
C2单元格函数:
=OFFSET($G$1,MATCH(B2,$G$2:$G$6,1),1,1,1)
函数解析:
这个方法使用了EXCEL函数中的漂移函数——OFFSET函数。它可以根据我们给定的条件,从某一个单元格,移动到另一个单元格或者区域,并返回地址引用。
OFFSET函数的语法:OFFSET(reference, rows, cols, [height], [width]),其函数解释可以理解为从某个基准单元格开始,先上(下)移动,再左(右)移动,这样就得到了一个新的基准点,以新的基准单元格定出高度和宽度,形成的单元格或区域作为引用地址。(如果返回的是单独的单元格,那么就会直接返回该单元格的值;如果是区域,那么它就可以参与其他函数的调用)
因为条件区域是G2:H6,那么我们就把基准值设置成G1单元格,向下偏移量我们用MATCH函数来解决(用法参考【方法四】的内容),向右偏移一行,最后得出公式。
方法六:CHOOSE MATCH函数
图例:
图4
C2单元格函数:
=CHOOSE(MATCH(B2,$G$2:$G$6,1),$H$2,$H$3,$H$4,$H$5,$H$6)
函数解析:
这个方法是用CHOOSE函数来处理区间取值的问题。
CHOOSE函数语法:CHOOSE(index_num, value1, [value2], ...),其函数作用可以理解为找出value1, [value2], ...中的第index_num位次上的值,并返回单元格。函数最多可以有254个value,同时index_num的值也必须是1~254之间的一个数字。
CHOOSE函数也是一个很强大的函数,它不仅可以返回一个单元格的值,也可以返回一个区域的引用,作为其他函数运算的参数。
本例中我们依然是使用了MATCH函数来找到对应的区间,然后返回了H2到H6单元格的内容。
【编后语】
作为区间取值的《中篇》内容,主要讲了三个比较常用的嵌套函数,之所以称之为“经典嵌套函数”,是因为这些嵌套函数,可以被应用到很多的方面,不仅仅是区间问题。
当然,我们也可以自己来对函数进行多种组合,但是函数的嵌套使用,一定是基于对独立函数的充分理解之后,才可以使用的,比如我们今天的案例,MATCH函数的返回值是数值型,那么就一定要把它放到一个数值型的参数位置上,否则函数就会报错的。
,