Vlookup、Lookup、Xlookup全走开,Excel最牛查找公式来了!
Vlookup、Lookup、Xlookup是Excel查找函数中的三剑客,好象没有它们搞不定的查找难题。但,昨天小编翻到的的一用户提问,让这三个函数都傻眼了。
下图户籍表中,C列为户编号。每户有N个成员,户编号每户唯一。(如户编号275的家庭有两个成员,户主和儿子)
问题来了:根据i列户编号,从左表中查找出该编号的所有家庭成员,而且是同时查找多个户编号。
别说多个编号同时查找,就是只查找一个户编号,Vlookup、lookup、和xlookup都很实现。那么上图演示中到底用了什么公式,这么牛X?
别急,小编要一点点揭开这个最牛查找公式的谜底。
在office365中新增了 Filter函数 ,它可以很简单的实现一对多查找:
=FILTER(B2:G39,C2:C39=I2)
FILTER函数的工作原理是:
第1个参数给定一个数据表,根据第2个参数返回的true(条件成立)或Flase(条件不成立)来确定结果为True的行。
我们把=FILTER(B2:G39,C2:C39=I2)中的C2:C39=I2拆出来放在H列,来看一下筛选的过程:
所以,学会用filter函数的关键,就是构建第二个参数的条件。
本例中需要同时查找多个户编号,条件该怎么设置呢?
这样?把一个单元格换成区域。哦,出错了!
=FILTER(B2:G39,C2:C39=I2:I3)
其实,多对多的对比可以转换为多对一。我们可以用textjoin函数(office365新增)把i列的户编号连接起来。
=TEXTJOIN(“,”,,I2:I3)
然后再进行用isnumber+find函数组合逐一对比是C列的编号是否包含在合并的户编号中。
=ISNUMBER(FIND(C2,$K$2))
当然,上图中只是为了演示计算过程,在实际设置公式时是不需要辅助列的,直接用整个C列区域对比:
=FILTER(B2:G39,ISNUMBER(FIND(C2:C39,TEXTJOIN(“,”,,I2:I5))))
小编说:今天用了两个office365新增函数解决多对多查找的难题。可能有人问不用新函数可以解决吗?可以,但公式无比复杂,不是一般用户能掌握的。但大家可以试试多用辅助列,也许可以解决这个问题。