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

E精精
E精精

WPS函数专家

嗨!大家好,我是小编-E精精

最近在社区做了不少答疑,今天我们抽其中一个,跟大家一起交流学习一下!提供3种思路!

▍需求说明

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!关于这个问题,我们就简单聊这么几种解法,兼顾新老版本~因为够用了吧!

江苏省
浏览 93
收藏
13
分享
13 +1
11
+1
全部评论 11
 
小陶同学
打卡,不能没有wps ai
· 湖北省
回复
 
王禹成
王禹成

创作者俱乐部成员

打卡E老师
· 浙江省
回复
E精精
E精精

WPS函数专家

· 江苏省
回复
 
天高云淡
学习
· 湖北省
回复
 
幸福春
学习
· 山东省
回复
 
亂雲飛渡
学习
· 广东省
回复
 
LG
111
· 河南省
回复
 
saAE86
打卡
· 广东省
回复
 
懒得批爆
懒得批爆

创作者俱乐部成员

将简单的事情复杂化,你是最优秀的
· 四川省
回复
E精精
E精精

WPS函数专家

· 江苏省
回复
 
qzuser
打卡
· 山西省
回复