今天的目标:
反向查找中的IF{1,0}是什么意思?
Martin问,VLOOKUP反向搜索名字,如何用数组公式解决呢? 原理是什么?
不客气!
夸我好吗 1字值1元!
1-反向查找
让我们看看下表。 现在我们需要根据[姓名]找到[员工ID]。
大家可以想到用VLOOKUP函数,但是VLOOKUP只能从左往右查找,也就是只能查找[name]右边的数据。 左侧无法勾选【员工ID】。
方法一
如果要查找,可以把【员工编号】移到【姓名】栏的右边,然后正常写VLOOKUP函数即可。
对应的公式如下:
=VLOOKUP(G2,$A$1:$C$30,2,0)
方法二
把【员工编号】移到【姓名】的右边,这是必须的步骤,否则VLOOKUP无法计算。
如果在表格中不移动,那就用函数公式移动,所以就有了IF{1,0}的公式。
例如,在下表中,要交换 A 列和 B 列数据的顺序,可以使用 IF{1,0} 公式。
公式如下:
=IF({1,0},$B$2:$B$7,$A$2:$A$7)
IF{1,0}是一个数组公式,和下面的IF函数本质上是一样的。
如果是1,参考B栏【姓名】,如果是0,参考A栏【员工编号】。
将两个公式合并为一个公式,参数页 1 成为对数组范围 $D$1:$E$1 的引用。
将返回值改为一个数组区域引用,即:$B$2:$B$7和$A$2:$A$7vlookup返回值为0,一个公式可以反馈两列数据。
最后带入D1:E1的值,即{1,0}vlookup返回值为0,得到最终的公式。
公式如下:
=IF({1,0},$B$2:$B$7,$A$2:$A$7)
VLOOKUP函数中的IF{1,0}也是如此,用于交换两列的顺序。
=VLOOKUP(G2,IF({1,0},$B$1:$B$30,$A$1:$A$30),2,0)
你明白吗? 不,谢谢,请[赞]。
2- INDEX函数解决方案
其实对于大多数人来说,我不推荐使用数组公式,很难理解。
比较常用的方法是使用INDEX和MATCH函数来实现。
1-匹配功能
首先使用 MATCH 函数查找名称所在的位置。
公式如下:
=匹配(G2,$B$2:$B$30,0)
2- 索引函数
然后用INDEX根据名字的位置在[员工工号]列中查找对应的工号并返回。
公式如下:
=INDEX($A$2:$A$30,H2)
3-合并公式
最后结合INDEX和MATCH函数也能达到同样的效果,而且公式也更好理解。
公式如下
=INDEX(A:A,MATCH(G2,B:B,0))
3- 总结
函数公式其实就是将我们在表中的操作转化为两个公式的操作。
这和写代码是一样的。 如果你觉得手工做起来很麻烦,那就用代码来做吧。
不管是代码还是手动,要做的事情都是一样的,只是代码效率更高。
考验你
我使用 IF{1,0} 写了一个公式。 猜猜公式计算的结果应该是哪一个?
公式如下:
=IF({1,2},$B$1:$B$7,$A$1:$A$7)
计算结果是什么?
我是喜欢梳头的Excel老师拉小邓
如果本文对您有帮助,请帮忙“点赞”、“观看”、“转发”。
这对我来说很重要,可以让拉小登更有动力继续分享优质内容。