我已经被这个问题困扰好几个小时了。
我有包含字符串值的单元格范围:
A1 文本1
A2 文本2
文本3
其他列具有其他字符串值,例如:
B1 文本1示例文本
B2 文本2示例文本
B3 文本3示例文本
B4 文本1示例文本
B5 文本1示例文本
我必须检查 A 列中的文本是否是 B 列中文本的子字符串。如果是,则在 C 列中设置 A 列中的文本。
像这样:
B1 文本1示例文本 - C1 文本1
B2 文本2示例文本 - C1 文本2
B3 文本3示例文本 - C1 文本3
B4 文本1示例文本 - C1 文本1
B5 文本1示例文本 - C1 文本1
答案1
这应该可以在 Excel 2010 中使用,并且不需要“数组输入”
=IFERROR(LOOKUP(2^15,FIND(A$1:A$3,B1),A$1:A$3),"not found")
FIND
区分大小写,如果你不想让公式区分大小写,请替换FIND
为SEARCH
假设 A1:A3 不包含空白
答案2
我暂时无法让 Dave (brettdj) 的解决方案发挥作用。
这是一个可以工作的 UDF:
Function copyText(rSubstr As Range, rText As Range)
'Check if any of the cell value from rSubstr exists in rText
Dim c As Range
If rText.Count > 1 Then Exit Function
For Each c In rSubstr
If InStr(1, rText.Value, c.Value) > 0 Then
copyText = c.Value
Exit Function
End If
Next c
End Function
只需在工作表中使用此函数即可:
=copyText($A$1:$A$3;B1)