分享

天天被吊打的VLOOKUP,结果谁都离不开!

 Excel不加班 2021-07-03

有一个奇怪的现象,有很多文章隔三差五就说某某函数比VLOOKUP强,但是VLOOKUP函数已经深入人心,谁也离不开!

随便VIP群内一搜,就有一大堆是关于VLOOKUP函数,几乎每个人都在用。

其实某某函数比VLOOKUP强,要取代之类的,都是在特定的情形下,并不非通用的,而VLOOKUP却是通用的。

1.SUMIFS和VLOOKUP

如果查找值是数字,那SUMIFS是比VLOOKUP更有优势。比如根据姓名查找工资,如果查找不到SUMIFS会显示0。

=SUMIFS(D:D,A:A,F2)



而VLOOKUP会显示错误值,需要再嵌套IFERROR让错误值显示0。

=IFERROR(VLOOKUP(F2,A:D,4,0),0)


根据姓名、职业两个条件查找工资。

=SUMIFS(D:D,A:A,F2,C:C,G2)


多条件对于VLOOKUP确实有点麻烦,要么数据源用辅助列将条件连接起来再查找,要么嵌套IF组成一个新区域再查找。

=VLOOKUP(F2&G2,IF({1,0},A:A&C:C,D:D),2,0)


看到这里,SUMIFS确实比VLOOKUP强,不过前提查找的是数字。如果换成文本,SUMIFS是无能为力的,比如查找性别,得到的却是0。

2.XLOOKUP和VLOOKUP

正常情况下,用VLOOKUP查找的时候,找不到对应值会显示#N/A,一般情况下需要嵌套IFERROR。

而XLOOKUP即便是找不到对应值,也不需要嵌套其他函数。

=XLOOKUP(E2,A:A,B:B,"")


语法说明:

=XLOOKUP(查找值,查找区域,返回区域,错误值显示值)

看到这里,确实比VLOOKUP强,不过这是Office365才有的函数,90%的人都不是这个版本。函数不通用,即使你电脑能用,但是要发给其他人就得考虑通用性,所以这个XLOOKUP只有理论价值,没有实际价值。

3.LOOKUP和VLOOKUP

LOOKUP在反向或者多条件查找有优势。比如刚刚的根据姓名、职业查找性别。

=LOOKUP(1,0/((F2=A:A)*(G2=C:C)),B:B)


经典查找模式,不区分方向,允许有多个条件,直接套上就可以,确实很强。

=LOOKUP(1,0/((查找值1=查找区域1)*(查找值2=查找区域2)),返回区域)

在大多数情况下,这两个函数是半斤八两,不过在某些情况下VLOOKUP比LOOKUP更好,比如要返回的区域不确定在哪列。

=LOOKUP(1,0/($F2=$A:$A),OFFSET($A:$A,0,MATCH(G$1,$1:$1,0)-1))


返回的区域不确定,VLOOKUP+MATCH就可以解决,不用OFFSET会更容易理解。

=VLOOKUP($F2,$A:$D,MATCH(G$1,$1:$1,0),0)


任何函数吊打VLOOKUP都是有特定的条件,也正因为如此一直以来VLOOKUP还是用得最多的。

推荐:长数字VLOOKUP不到,千万别转数字格式!

上文:你会跨工作簿统计吗?


你还记得VLOOKUP曾经被谁吊打过?

作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多