VLOOKUP向左引用问题解决
VLOOKUP通常是单列查找,然后返回列向右的列结果。
如上图,如果是按姓名查找年龄,则
=VLOOKUP(F2,$B$1:$D$10,3,0)
如果改成按姓名查询所属公司,因为公司在姓名列的左侧,则需改成
=VLOOKUP(F2, IF({1,0}, B:B, A:A), 2, 0)
或者
=VLOOKUP(F2, IF({1,0}, B$1:B$10, A$1:A$10), 2, 0)
参数解析:
oF2:待查找的姓名(如“酆花”)。
oIF({1,0}, B:B, A:A):交换B列(姓名)和A列(公司名称)的位置,生成虚拟数组。
o2:返回虚拟数组的第2列(即原A列的公司名称)。
o0:精确匹配。
VLOOKUP中套用IF的范围,B:B是姓名列,A:A是需要返回的列;精确查找后面的参数(2,0)不需要修改。
=VLOOKUP(G2,IF({1,0},E$2:E$10,A$2:A$10),2,0)
若使用Excel 365或2019+版本,XLOOKUP更简洁且支持任意方向查找:
=XLOOKUP(F2,B:B,A:A,"未找到",0,1)
=XLOOKUP(P2,B$2:B$10,A$2:A$10)
通用方法:INDEX+MATCH组合
=INDEX(A:A,MATCH(F2,B:B,0))
·参数解析:
oMATCH(F2, B:B, 0):在B列中精确查找姓名位置。
oINDEX(A:A, ...):根据位置返回A列的对应公司名称。
其他函数(新版本)
=FILTER(A:A,B:B=F2)