给大家这样一张表格,通过员工编号查询员工姓名、性别,相信看过vlookup文章的朋友都知道如何查询。
今天介绍两种方法给大家。
第一个方法就是采用辅助列,比如在编号的左边再插入一列;那么编号变成了B列,姓名变成了C列;令A2=C2
,下拉填充,然后使用vlookup查询。
最重要的是公式
F2=VLOOKUP(E2,IF({1,0},B2:B5,A2:A5),2,0)
大家看到公式先不要晕,我们来拆解这个公式:
1、先看里面的 IF({1,0},B2:B5,A2:A5),我们前面讲过IF函数
if(条件,结果1,结果2)
条件成立,返回结果1,否则返回结果2;
那么我们现在看到 IF 的条件是 {1,0},结果1是B2:B5,结果2是A2:A5;
{1,0}表示的是一个集合,里面有1和0两个数字;对于IF函数来说,它会把1和0分别当作条件运行一次。
所以IF会运行两次:
第一次是 IF(1,B2:B5,A2:A5),在Excel中1作为条件被看作总是成立的;所以IF(1,B2:B5,A2:A5)返回的就是B2:B5;
第二次是 IF(0,B2:B5,A2:A5),在Excel中0作为条件被看作总是不成立的;所以IF(0,B2:B5,A2:A5)返回的就是A2:A5;
IF两次运行的结果返回的就是B2:B5,A2:A5这么一个区域。
所以我们更惊讶的发现:
IF({1,0},B2:B5,A2:A5)的真正作用是让B2:B5和A2:A5互换了位置。
画在图上就相当于
2、里面的IF看完了,外层的vlookup函数就好理解了,按照上图来使用vlookup查询,大家都懂的。这个公式的难点就在于内部的IF函数;
问大家一个问题,把内部的IF函数改写成IF({0,1},A2:A5,B2:B5),结果会不会一样呢?为什么呢?
虽然我们没有怎么讲辅助列的方法,但是辅助列实际上还是很有用的。
因为方法二我们理解之后就会明白,比如最左边新增了身份证号,如果我用姓名查询身份证号;反向查询的公式就得修改为F2=VLOOKUP(E2,IF({1,0},C2:C5,A2:A5),2,0)
因为反向查询公式只能调换两列的位置,随着查询目的的变化,公式也要变化
但是如果我们采用辅助列,在最左边新建一列等于姓名:
两种方法各有优劣,辅助列简单不容易错,但是比较笨重;
方法二的反向查询公式更灵活,但不容易理解。
联系客服