自学相伴,共同进步,大家好,这里是 EXCEL 自习室。
在VLOOKUP反向查询中,IF({1,0})是核心关键——今天就分步骤解释其原理,看完就能明白它到底在“做什么”,为什么能帮我们实现反向查找。
先回顾我们的核心场景:表格C列(部门)、E列(姓名),想根据E列(姓名)查C列(部门),相当于“逆着查”,正常VLOOKUP根本做不到——这时候,IF({1,0})就起到了“救场”作用。

1. 先明确核心对应关系:1=TRUE(真值),0=FALSE(假值)
这是Excel里的基础规则,数字1代表逻辑真值(TRUE),数字0代表逻辑假值(FALSE),后续所有操作都基于这个对应关系。
2. 回顾IF函数的基础语法
IF函数的标准语法的是:=IF(条件, 条件为真时返回的值, 条件为假时返回的值)
简单理解:给IF函数一个“判断条件”,如果条件成立(真值),就返回第二个参数的内容;如果条件不成立(假值),就返回第三个参数的内容。
3. 单独测试两个基础IF公式,看返回结果
结合我们的场景(E列=姓名,C列=部门),我们分别测试两个简单公式,看看各自的返回结果:
- 当IF函数的第一个参数是1(真值):公式为 =IF(1,E2:E10,C2:C10) 因为1代表TRUE(条件成立),所以这个公式会直接返回第二个参数的数据,也就是E2:E10(姓名列)的所有内容。

- 当IF函数的第一个参数是0(假值):公式为 =IF(0,E2:E10,C2:C10) 因为0代表FALSE(条件不成立),所以这个公式会直接返回第三个参数的数据,也就是C2:C10(部门列)的所有内容。

4. 关键一步:用数组写法合并两个公式,生成虚拟表格
上面两个公式,一个返回姓名列,一个返回部门列,我们需要把它们合并成一个,同时得到这两列数据——这就需要用到Excel的数组写法,也就是 IF({1,0},E2:E10,C2:C10)。
这里的{1,0}是一个常量数组,相当于同时把“1”和“0”两个条件传给IF函数,让它一次性执行两次判断、返回两组数据:
- 数组中的第一个值“1”(TRUE):返回第二个参数E2:E10(姓名列),作为虚拟表格的第一列;
- 数组中的第二个值“0”(FALSE):返回第三个参数C2:C10(部门列),作为虚拟表格的第二列。
这样一来,我们就生成了一张临时的虚拟表格:左边第一列是姓名(E列),右边第二列是对应部门(C列),完全贴合VLOOKUP的查找要求。
5. 最后:用VLOOKUP函数完成查找
有了虚拟表格,我们就可以套用完整的VLOOKUP公式:=VLOOKUP(J2,IF({1,0},E2:E10,C2:C10),2,FALSE)

我们逐参数解读,确保每个部分都懂:
- 第一个参数(J2):要查找的值,也就是我们要查询的姓名所在的单元格;
- 第二个参数(IF({1,0},E2:E10,C2:C10)):我们刚刚生成的虚拟表格,作为VLOOKUP的查找范围;
- 第三个参数(2):我们要返回的内容在虚拟表格的第2列(也就是部门列),所以输入数字2;
- 第四个参数(FALSE):代表“精确匹配”。
结合完整公式,看IF{1,0}的作用
完整公式:=VLOOKUP(J2,IF({1,0},E2:E10,C2:C10),2,0)
整体逻辑一句话讲透:
1. 用IF({1,0})拼出“姓名在左、部门在右”的虚拟表格;
2. VLOOKUP从J2(要查的姓名)出发,在虚拟表格的第一列(姓名列)里找这个姓名;
3. 找到后,返回虚拟表格的第2列(也就是部门列),这样就查到了对应部门。
夜雨聆风