如果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)
并复制下来以适应。