Excel中,如何判断D列中的每个字段是否在A列中的所有字段中被包含存在,如果存在,返回对应的B列中的值?

如题。和“VLOOKUP”函数功能很相似,但“VLOOKUP”条件是A列和D列中的字段相等,而我要的是A列的某字段包含了D列的字段,例如A字段是“中华人民共和国”,包含了D字段的“人民”。

使用index、match、if和数组函数组合

IF(ISERROR(MATCH(1,IF(ISERROR(FIND(D2,$A$2:$A$5)),0,1),0)),"此词不存在","此词在第"&INDEX($A$2:$B$5,MATCH(1,IF(ISERROR(FIND(D2,$A$2:$A$5)),0,1),0),2)&"组")

实现过程说明:

1、使用数组公式,就是输入公式后要按Ctrl+shift+Enter三个键,直接按Enter不行

2、条件判断:IF(ISERROR(FIND(D2,$A$2:$A$5)),如果在A列单元格中找到对应的字符返回1,找不到返回0,比如找“天王”的时候就返回{0,0,0,1}

3、使用match函数MATCH(1,IF(ISERROR(FIND(D2,$A$2:$A$5)),0,1),0)看匹配找到的位置,如找“天王”就是在{0,0,0,1}中找1的位置,返回4,如果都找不到就是{0,0,0,0},match函数就返回错误值,在单元格填写“此词不存在”

4、使用index返回代号,比如上图就是在A2到B5这个范围类找出第3步匹配的第4行,第2列,就是单元格B5的值“4”

注意:这个公式只能找第一个匹配的行,如果A列中有多行都能找到词B的字符,只返回最前面的一行


最后,有用请点采纳、赞,编辑不易,谢谢

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-09-04

    逻辑不通,“厂”有两个,为什么是第二个不是第一个。

    如果你的数据具有逻辑唯一性vlookup是可以的,如图所示:

追问

重点是D在A中有没有,有的话,能告诉我在哪最好,如果不是唯一,不管返回哪个都可以的。你的公式以我现在的水准是真没看懂,但是,,好用,,真的是可以。受教了,我好好研究下你这VLOOKUP怎么用的如此高深!

追答

星号是通配符。

本回答被提问者采纳
第2个回答  2020-09-04

追问

按照你的应用示例来看,可以达到我要的结果,返回T OR F也是可以的。最好是在示例中把你具体的“islike(XXXX)" xxx这部分内容以你的示例为例截图给我看你怎么写的,因为引用单元格通配符的规则我本就是有些晕的。你用到VB自定义函数啊。。。。这个我很不懂,结果是这样的,是你写错了,还是我抄错了?

追答

抄错了

再仔细看看

第3个回答  2020-09-04
如果有多个,只要第一个么?没有呢?
相似回答