数据查询本身并不存在正向或逆向,只是在过去20多年中VLOOKUP一直占据着查询类函数的王者地位,因其只能支持从左到右的查询方式,给大家造成从右到左的查询就是“逆向查询”的印象。那么,逆向查询的问题要如何来解决呢?
强制执行:VLOOKUP+IF
确切地说,VLOOKUP不支持直接逆向查询,搭配IF函数还是可以的。
=VLOOKUP(E2,IF({1,0},B2:B11,A2:A11),2,0)
其原理是利用IF函数构建一个数据区域作为第二参数,这个区域中查询项和被查询项被调换了左右位置。
VLOOKUP逆向查询
在高版本Excel中把IF函数单独列出来,利用溢出功能直观地看到其构建出来的数据区域。
IF构建数据区域
经典组合:INDEX+MATCH
这对难兄难弟长期作为VLOOKUP的备胎执行着逆向查询任务,因其灵活性也深得人心。
=INDEX(A2:A11,MATCH(E2,B2:B11,0))
INDEX负责划定范围,在A2:A11中查询,MATCH负责侦查线索”A005”的相对位置,将其作为INDEX的第二参数,最终实现精准查询。
INDEX+MATCH逆向查询
冷门选手:CONCAT+IF
=CONCAT(IF(B2:B11=E2,A2:A11,""))
笔者个人常用组合,但在其他文章或视频中鲜有出境,只要具备数组的基础知识,这个套路并不难理解:IF函数通过对比返回一个数组,CONCAT排除其中的空值。
CONCAT+IF逆向查询
后起新秀:XLOOKUP
=XLOOKUP(E2,B2:B11,A2:A11)
无需多言,公认的未来20年查询类函数王者XLOOKUP,其他函数眼里遥不可及的逆向查询对于它来说只是基本功能而已。但目前低版本的Excel中无法使用。
XLOOKUP逆向查询
理解了以上四种方法的基本逻辑,自然可以衍生出其他类似的组合,比如:
VLOOKUP+CHOOSE
LOOKUP
OFFSET+MATCH
INDIRECT+MATCH
......