Excel VLOOKUP和FIND组合

我有两列,A和B,包含值。 我想在C列中插入值,其中每个都包含在A和B中。

我想要的结果的例子:

ABC Hello No No Nothere here here YesNo ha 

由于“这里”包含在“Nothere”中,因此必须添加。 与“是”中的“否”相同

据我所知,我可以使用FIND找出是否存在string,并使用VLOOKUP来search整个列。 但是我怎样才能在整个列中使用FIND? 因为使用VLOOKUP,我必须search一个特定的值,并且将逐列更改。

我怎样才能做到这一点? (我不需要使用FIND也不需要使用VLOOKUP,我刚刚提到这是我正在做的研究)。

那么你肯定可以使用FIND ,或者至less不区分大小写: SEARCH (如果你仍然想要区分大小写的search,使用FIND而不是SEARCH )。

 =IF(SUMPRODUCT(--ISNUMBER(SEARCH(B1,$A$1:$A$3))),B1,"") 

SEARCH首先返回一个数组: #VALUE!4

ISNUMBER然后返回另一个数组: FALSETRUETRUE

--ISNUMBER表示那些被转换为1和0,1为TRUE,否则为--ISNUMBER

SUMPRODUCT将总结数组中的数字,在这种情况下为2,对于excel来说这被认为是TRUE,因此您将得到B1作为最终结果。


你也可以使用MATCH

 =IF(ISERROR(MATCH("*"&B1&"*", $A$1:$A$3, 0)), "", B1) 

这可能更简单,或者如果你想坚持使用VLOOKUP

 =IF(ISERROR(VLOOKUP("*"&B1&"*", $A$1:$A$3, 1, 0)), "", B1) 

一个简短的方法….但需要“数组入口”

=IF(COUNT(FIND(B1,A$1:A$3)),B1,"")

CTRL + SHIFT + ENTER确认

正如Jerry所说, FIND是区分大小写的 – 如果您不想区分大小写,可以用SEARCHreplace

使用VLOOKUP并find这些文本

 "*No*" => "*"&B2"*" "*here*" => "*"&C2"*" "*ha*" => "*"&D2"*" 

星号*表示replace任何文本