![EXCEL 2010 检查单元格中的子字符串值是否与单元格范围内的其他字符串匹配](https://linux22.com/image/1306571/EXCEL%202010%20%E6%A3%80%E6%9F%A5%E5%8D%95%E5%85%83%E6%A0%BC%E4%B8%AD%E7%9A%84%E5%AD%90%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%80%BC%E6%98%AF%E5%90%A6%E4%B8%8E%E5%8D%95%E5%85%83%E6%A0%BC%E8%8C%83%E5%9B%B4%E5%86%85%E7%9A%84%E5%85%B6%E4%BB%96%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%8C%B9%E9%85%8D.png)
我已经被这个问题困扰好几个小时了。
我有包含字符串值的单元格范围:
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)