分享

XLOOKUP是怎么把VLOOKUP拍死在沙滩上的

 郑广学老师 2023-03-02 发布于湖北

VLOOKUP作为查询函数的王者近两年有点惨,经常被拿来当作绿叶承托XLOOKUP的强大。

如果你是初学者,还没有掌握VLOOKUP/HLOOKU/LOOKUP这一系列函数,建议跳过它们直接学习XLOOKUP.

如果是VLOOKUP的现有用户,正在过渡到XLOOKUP,那么你需要了解一下两者最重要的一个差别:

VLOOKUP要求查询区域和返回值区域连续。XLOOKUP对查询区域和返回区域的位置没有要求。

复习一下VLOOKUP

=VLOOKUP(G3,A1:E7,5,0)

示例中第二参数的区域A1:E7涉及A列到E列,但其实需要的数据只存在于A列和E列,中间三列数据被无辜地包含进去,数据结构上被限制。

XLOOKUP

=XLOOKUP(G3,A1:A7,E1:E7)

示例中XLOOKUP的参数只涉及A列和E列,此时在其中间插入或删除任意列,查询结果任然保持正确。

如果仅此而已,XLOOKUP也未见得有多么的强大,接下来的案例将解释为什么说“XLOOKUP对查询区域和返回区域的位置没有要求”

=XLOOKUP(G3,A1:A7,D7:D13)

查询区域与返回区域的位置完全错位,这是VLOOKUP不敢想的。

=XLOOKUP(G3,E3:E9,B5:B11)

除了上下错位,左右调换也是没有问题的

=XLOOKUP(E3,C3:C9,XL反向!B5:B11)

甚至查询区域和返回区域根本不在同一个工作簿上也照常工作,VLOOKUP敢想?

更进一步,XLOOKUP的查询区域和返回区域已经不只是区域,可以将其理解为两个数组。

返回”D”所在的行号

=XLOOKUP("D",B3:B9,ROW(B3:B9))

选中ROW(B3:B9)按F9,可以看到返回区域实际上就是一个数组

=XLOOKUP("D",B3:B9,{3;4;5;6;7;8;9})

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多