如果ColA中的某个单元格包含ColC中列表的子string,那么可以在ColB中返回该子string吗?

我有一个ColC列表,我想通过ColAsearch来查看:

(1)单元格是否包含其中一个子string?
(2)它包含哪个子string?

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

=INDEX(C2:C25,MATCH(FALSE,ISERROR(FIND("*"&C2:C25&"*",A2)),0)) 

我不能做第二次,并把价值返回到ColB。

例如, abacavir A2含有列表中的vir (C25)。 我想要B2说vir ,而不是'真'或'1'。

此外,如果ColA中的单元格包含多个来自列表的值,ColB是否可以给出多个值?

电子表格样本

VBA可能是最简单的。 插入一个模块并粘贴下面的代码。 然后确保select数据表格,然后运行名为“stem”的macros。

 Sub stem() Dim stem As String Dim lastRow As Long Dim f As Variant Dim fRow As Long lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row i = 2 With ActiveSheet Do stem = .Cells(i, 3).Value With .Range("A1:A" & lastRow) Set f = .Find(stem, LookIn:=xlValues) If Not f Is Nothing Then fRow = f.Row ActiveSheet.Cells(fRow, 2).Value = stem End If End With i = i + 1 Loop Until .Cells(i, 3) = "" End With End Sub 

我同意VBA看起来可能是最方便的总体,但肯定可能没有。 删除C1并使用select性粘贴…,移调复制C2:C25。 C2填充:

 =IF(ISNUMBER(MATCH("*"&C$1&"*",$A2,0)),C$1,"") 

复制到Z2,然后C2:Z2下来,以适应。 然后你应该有一个matrix,找出哪个string是干的。

要在ColumnB中得到结果,请使用这种types的长连接公式:

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

并复制下来以适应。