分享

逆向查询的这几种常用方法,你最喜欢哪一种?

 刘卓学EXCEL 2021-04-02
下表是某公司员工的信息表,要根据E3单元格的工号逆向查询出对应的姓名。这种查询方式在工作中会经常用到,还不会的小伙伴要赶紧学起来。
方法1:vlookup+if重构数组

在F3单元格输入下面的公式,完成。

=VLOOKUP(E3,IF({1,0},C3:C12,A3:A12),2,0)
此公式IF({1,0},C3:C12,A3:A12)部分,是用if重构一个两列的数组,将工号放在第1列,姓名放在第2列,结果如下图所示。然后再用vlookup查找就可以了。
方法2:vlookup+通配符

在F3单元格输入下面的公式,按ctrl+shift+enter三键完成。

=VLOOKUP("*",IF(C3:C12=E3,A3:A12),1,0)
此公式IF(C3:C12=E3,A3:A12)部分,是用if判断C3:C12的工号是否等于E2,如果等于,返回A3:A12的姓名;否则返回false。if第3参数省略时,如果条件不成立则返回false。结果如下:

然后用vlookup通配符的方式查找第一个文本,并且返回第1列,得到最后的结果。注意vlookup用通配符的时候,必须用精确查找。

方法3:index+match

在F3单元格输入下面的公式,完成。

=INDEX(A3:A12,MATCH(E3,C3:C12,0))

此公式MATCH(E3,C3:C12,0)部分,用match查找E3在C3:C12区域中的位置,结果为5;然后用index返回A3:A12区域中第5行的姓名。

类似的公式还可以用offset和indirect,公式如下:
=OFFSET(A2,MATCH(E3,C3:C12,0),0)
=INDIRECT("a"&MATCH(E3,C3:C12,0)+2)
方法4:lookup

在F3单元格输入下面的公式,完成。

=LOOKUP(1,0/(C3:C12=E3),A3:A12)

公式中C3:C12=E3部分,判断C3:C12的工号是否等于E3,如果相等返回true,否则返回false,结果为{FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE}

然后用0除以上面的数组,0除以false得错误值,除以true得0,结果为{#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!}

最后用lookup查找1,就会找到0的位置,返回对应的姓名。

今天的分享就到这里,如果你有其他方法,欢迎分享和讨论。
链接:

https://pan.baidu.com/s/18oYMivz78D_GYLaWU6nbTA

提取码:f7ch

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多