String 如果ColA中的单元格包含ColC中列表中的子字符串,该子字符串是否可以在ColB中返回?

String 如果ColA中的单元格包含ColC中列表中的子字符串,该子字符串是否可以在ColB中返回?,string,excel,if-statement,String,Excel,If Statement,我有一个ColC中的茎的列表,我想在ColA中搜索以查看: (1) 单元格是否包含一个子字符串? (2) 它包含哪个子字符串 我可以用多种方式回答第一个问题,包括: =INDEX(C2:C25,MATCH(FALSE,ISERROR(FIND("*"&C2:C25&"*",A2)),0)) 我就是做不到第二步,然后将值返回到ColB中 例如,A2abacavir包含列表(C25)中的vir。我希望B2说的是vir,而不是“true”或“1” 另外,如果ColA中的单元格包含列表

我有一个ColC中的茎的列表,我想在ColA中搜索以查看:

(1) 单元格是否包含一个子字符串?
(2) 它包含哪个子字符串

我可以用多种方式回答第一个问题,包括:

=INDEX(C2:C25,MATCH(FALSE,ISERROR(FIND("*"&C2:C25&"*",A2)),0))
我就是做不到第二步,然后将值返回到ColB中

例如,A2
abacavir
包含列表(C25)中的
vir
。我希望B2说的是
vir
,而不是“true”或“1”

另外,如果ColA中的单元格包含列表中的多个值,ColB是否可以提供多个值


这里VBA可能是最简单的。插入模块并将下面的代码粘贴到其中。然后确保选择数据所在的工作表,然后运行名为“stem”的宏


我同意VBA看起来可能是整体上最方便的,但是没有它当然是可能的。删除C1并将C2:C25复制到其中,使用Paste Special…,转置。用以下内容填充C2:

=IF(ISNUMBER(MATCH("*"&C$1&"*",$A2,0)),C$1,"")  
复制到Z2,然后C2:Z2到合适的位置。然后,您应该有一个矩阵,其中包含在哪个字符串中找到的词干

要在B列中获得结果,请使用以下类型的长串联公式:

=TRIM(C2&" "&D2&" "&E2&" "&F2&" "&G2&" "& ... &Z2)  

然后根据需要复制。

@pnuts这是一个茎,所以每行一个可能性是有意义的。不过,一审的观点很好。
=TRIM(C2&" "&D2&" "&E2&" "&F2&" "&G2&" "& ... &Z2)