index和match做搭档,干活不累,查询起来真方便

可以查询的函数有很多,比如lookup、vlookup、hlookup、新来的XL函数,即使不是查询专用函数,比如sumifs,sumproduct、offset等也来抢查询这个饭碗,我们今天说的index+match组合也是一个为查询而生的函数,但我估计知道怎么使用的不足50%,连hlookup都不太知道,在工作中大行其道的还是vlookup。
vlookup还是有局限性的,就是要查询的条件区域必须在返回值的前面,要么需要对调下列,要么通v过数组公式来实现,总之很麻烦,举个例子,如下所示:
大家可以看到,我查询太原属于哪一个省,出现了错误值,因为它在后面没能找到返回值,所以报错没找到,如果非要解决只能破坏表的结构或利用数组了。
在实际工作中index就没这个问题了,尤其是和match结合之后,它就有点说不上的强悍了,可以说能够替代vlookup与和hlookup的大部分功能。
那我们就先说下这两个函数的语法吧,index有数组形式和引用形式,今天主要是说它的数组形式,INDEX(引用区域,第几行,第几列),这也是使用最多的形式。
用这个来解决上面的例子我们可以在C10单元格,我们输入=INDEX(A2:B7,1,1),就可以得到了,A2:B7是引用区域,我们要这个区域的第一行第一列就是我们要的结果。所以我们输入了1,1。
但是只是单独使用index会有一个困扰,那就是我们需要知道我们所要的结果在第几行、第几列,这不是太累了么。那怎么解决呢,这时候match函数就派上用场了,我叫他匹配函数,可以解决第几行或第几列的问题,上表中我们明显可以看到我们所需返回的结果在第一列,这个地方没必要用match,但是在第几行就有点多了,如果有2000行那就麻烦了,这个就有必要用match函数了。
同样我们也说一下match函数的用法
match(查找的值, 查找区域, match_type),最后一个我们可以输0,也就是精确匹配,这是用的比较多的,-1和1的用法我目前还没用到。
我们在D10单元格输入=MATCH(B10,B2:B7,0),我们可以看到我们知道查询的太原和结果山西是在同一行的,所以我们利用这一点,我们得到了太原的行,也就得到了结果所在的行。
这样我们就可以用MATCH(B10,B2:B7,0)嵌套到index函数中去了,我们将第二个参数1改为MATCH(B10,B2:B7,0),就完成了这两个函数的搭档工作。
(0)

相关推荐