如何查找字符串列表中是否存在子字符串(如果是,则返回列表中的完整值)

时间:2014-06-04 16:45:04

标签: string excel search contains

我在A5中有一个品牌名单:A7655 我在D5中列出了潜在的子串:D1400

我需要在可能的情况下为每个子字符串找到相应的品牌名称。大多数这些子字符串包含在品牌名称列表中的一个单元格中。返回列出子串的列表上的第一个品牌名称是可以的。

例如:我在D5中的子串是“ABC工作室” - 如果我搜索我的整个列表,我看到有一个品牌名称“ABC Studios,LLC”。在E5中,我想返回ABC Studios,LLC。如果列表中没有匹配返回0或者某些东西没问题。

我玩= ISNUMBER(搜索(A5,$ D $ 5:$ D $ 1400))没有成功。谢谢!

3 个答案:

答案 0 :(得分:1)

E5 中输入:

=IFERROR(OFFSET(A5,MATCH("*" & D5 & "*",A5:A7655,0)-1,0),"")

并复制下来。

答案 1 :(得分:1)

在公式方面,找到 last 匹配字符串实际上稍微简单一些:

= IFERROR(查看(2 ^ 15,搜索(D5,$ A $ 5:$ A $ 7655),$ A $ 5:$ A $ 7655),“找不到匹配”)

用于查找第一个匹配字符串:

= IFERROR(指数($ A $ 5:$ 7655澳元,匹配(TRUE,INDEX(ISNUMBER(搜索(D5,$ A $ 5:$ A $ 7655))),))),“找不到匹配” )

此致

答案 2 :(得分:0)

我建议用二维网格做这个。使用品牌名称作为左列(行标签),子串作为顶行(列标题)。那么B2中的公式将是:

=IF(ISERROR(FIND(B$1,$A2)),B$1,$A2)

向上和向下填充该公式,底部的行将填充为每个子字符串找到的最后一个品牌名称。如果没有找到品牌名称,它将只返回子字符串。 (您可以通过在填充完成后更改第一行中的公式使其返回为空 - 将B$1替换为""。)