Excel包含关系数据查询,你这样写就对了!

职场   教育   2024-10-21 23:13   江苏  
嗨!大家好,我是小编-E精精

今天我们来做一个答疑,直接来看问题!

▍需求说明

A:C三列为数据源区域,现在需要根据E列的单号,查询对应的项目!结果返回在F列!


问题的难度不大, 我们只需要找到E列单号在C列的哪一行中即可定位对应的A列数据!

▍参考解法01

第一种解决思路,就是传统的查询思路,我们拿E2单元格的“单1”来说,直接使用FIND函数,查询C列中是否包含,配合ISNUMBER判断!

FIND函数会返回首次出现的位置,如果不包含就会返回错误,所以我们只要判断是否是数字即可,是数字说明包含,否则不包含


通过ISNUMBER函数来判断

之后把这个部分作为FILTER函数的第二参数,也就是筛选条件,筛选数据即可!

=FILTER($A$2:$A$4,ISNUMBER(FIND($E2,$C$2:$C$4)))


以上就是第一种解法,比较传统的思路!也是最好理解的思路!

下面我们再看看其他思路!


▍参考解法02

条件的判断,还是可以使用新的正则函数,同时筛选,也可以使用IF等函数处理!

函数公式如下:核心部分是用REGEXP函数测试是否包含,TOCOL函数处理是处理掉不满足条件利用文本没有添加双引号报的错,最后的@符号,主要处理多个满足条件的结果问题,返回首个!

=@TOCOL(IF(REGEXP($C$2:$C$4,$E2,1),$A$2:$A$4,\),2)



如果你还停留的老版本,连FILTER函数都没有,那么怎么办,我是想说凉拌的,但是真的不能够,还是有解法的!


▍参考解法03

低版本函数解法!其实也没啥,同样的逻辑判断,只是满足条件,我们就返回对应的行号,可能有多个,我们用一个聚合函数,比如MIN或者MAX等函数,处理成单值即可,然后配合其他查询引用类函数都可以,毕竟行号都有了,INDEX或者INDIRECT完全OK的!

=INDIRECT("A"&MAX(IF(ISNUMBER(FIND(E2,C2:C4)),ROW(C2:C4))))



OK!关于这个问题,我们就简单聊这么几种解法,兼顾新老版本~因为够用了吧!

▼ 加入星球,一起交流


Excel办公实战
分享Excel及WPS函数、技巧、VBA、PBI、JSA等办公技能。助你轻松实现办公自动化!易办公◎早下班!
 最新文章