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
然后返回另一个数组: FALSE
, TRUE
, TRUE
--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
是区分大小写的 – 如果您不想区分大小写,可以用SEARCH
replace
使用VLOOKUP
并find这些文本
"*No*" => "*"&B2"*" "*here*" => "*"&C2"*" "*ha*" => "*"&D2"*"
星号*
表示replace任何文本