EXCEL 2010 检查单元格中的子字符串值是否与单元格范围内的其他字符串匹配

EXCEL 2010 检查单元格中的子字符串值是否与单元格范围内的其他字符串匹配

我已经被这个问题困扰好几个小时了。

我有包含字符串值的单元格范围:

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区分大小写,如果你不想让公式区分大小写,请替换FINDSEARCH

假设 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)

答案3

毫无疑问巴里会让我难堪

但是在 C1 中复制这样的内容将适用于 xl07 和 xl10

一起输入数组公式

=IFERROR(INDEX(A$1:A$3,MATCH(TRUE,NOT(ISERROR(FIND(A$1:A$3,B1))),0)),"not found")

对于所有 xl 版本,再次按下 =IF(NOT(ISNA(MATCH(TRUE,NOT(ISERROR(FIND(A$1:A$3,B1))),0))),INDEX(A$1:A$3,MATCH(TRUE,NOT(ISERROR(FIND(A$1:A$3,B1))),0)),"not found")

相关内容