很多小伙伴喜欢用VLOOKUP函数来实现查询的功能,但很多时候如果查询条件列在查询结果列的的右边时,查询是不能成功的,这时候非要用还得使用数组来实现,如果数组使用的不灵光,理解起来是比较费劲的比如经常用到的if({1,0})的方法。这时候我推荐使用INDEX函数。
INDEX函数的语法有两种形式,我们这里使用比较简单的形式:
INDEX(array, row_num, [column_num])也就是INDEX(区域, 行数,列数)
比如下面的查询,利用VLOOKUP函数和INDEX函数来实现:
通过这个函数我们可以发现INDEX不仅有行数还有列数,都是可以变化的,但是VLOOKUP只有列号,那就意味着INDEX还可以实现HLOOKUP函数的功能,比如下面的例子:
同时从上面的例子中也看出,在行数和列数的我用的都是常量,是不会根据数据的变化而变化的,这时我们可以使用MACH函数,这个函数也经常和VLOOKUP函数和HLOOKUP函数结合使用。
把其中的一个常量改变就可以了,比如第二个示例中条件是西瓜,我们通过区域可以看到,如果通过品种为条件查询价格,那价格那一行是固定的,但是西瓜、南瓜、冬瓜是变化的,我们可以把列号用MACH函数进行替换: