【问题标题】:MS Excel: Search, Find and Extract Specific Text Cell containing text stringMS Excel:搜索、查找和提取包含文本字符串的特定文本单元格
【发布时间】:2015-01-27 16:04:05
【问题描述】:

虽然,我见过比较相似或相近的帖子

使用 MS Excel MS Excel 2010,我希望能够搜索单元格范围(A1 列:A25),以查找单元格字符串(C2 列)中的特定文本是否与单元格范围(A1:A26)中的匹配项然后输出在相同或相邻单元格中找到的相应匹配关键字结果。如果未找到匹配的文本,则显示“未找到匹配”

虽然我使用的下面显示的示例公式确实有效,但仅表明它在单元格范围内找到或未找到单词,我需要它返回找到的实际匹配关键字文本与“找到”或“未找到” ”。

=IF(SUM(IFERROR(FIND(A1:A26,C2),0))>0, "找到", "未找到")

例子:

单元格字符串在单元格 C2 中包含以下文本:

“昨天我在我家后院发现了一只迷路的德国牧羊犬”

关键词搜索词:A1:A26栏 狗的种类 阿芬平舍 阿富汗猎犬 艾瑞代尔梗 秋田 阿拉斯加雪橇犬 美国猎狐犬 美国斯塔福德郡梗 美国水猎犬 安纳托利亚牧羊犬 法国斗牛犬 德国宾舍犬 德国牧羊犬 德国短毛指针 德国刚毛指针 巨型雪纳瑞 伊马尔梗格伦 金毛猎犬 戈登塞特 大丹犬 大瑞士山 大比利牛斯山脉 灰狗 鹞 爱尔兰塞特犬 爱尔兰梗

返回和显示的结果/答案 = 德国牧羊犬

如果可能的话,请告诉我,因为我将非常感谢任何帮助解决我的问题。

美香3

【问题讨论】:

  • 您指定的匹配不匹配(“Sheppard”与“Shepherd”)

标签: string text find excel-formula


【解决方案1】:

假设您正在 A 列中搜索 C 列中的字符串,请在 B 中键入此数组公式:

=IFERROR(INDEX($C$2:$C$6,MAX(IF(ISERROR(FIND($C$2:$C$6,A2)),-1,1)*(ROW($C$2:$C$6)-ROW($C$2)+1))), "None")

您可以在这里看到我在C2C6 中有多个字符/字符串的搜索列表。如果找到其中一个搜索字符串,则将其列在 B 列中,否则将显示 "None"

这项工作的关键是将上述公式复制到 cel B2 中,当您仍处于编辑模式时按 Ctrl+Shift+Enter 而不是像往常一样仅按 Enter。如果您在按下三个组合键后看到在公式中添加了 { 和 },您就会知道它可以正常工作。之后,您可以将公式复制到 A25 或任何您需要的地方。

请注意,您可以根据需要延长或缩短搜索列表,只需确保更新公式以反映范围即可。您需要在 C 列中填写所有犬种,并更改公式中的每个 $C$2:$C$6 以等于您的搜索列表范围。而且,请记住,对数组公式的任何更改都需要Ctrl+Shift+Enter 才能正常工作。

【讨论】:

  • Mitch,感谢您出色的回复,帮助我处理文本字符串中的搜索和返回值。我是该网站的新手,但我必须承认,我对复制待解决问题的响应能力、准确性和演示印象深刻。
【解决方案2】:

这不是 Excel 的设计目的,但您可以使用辅助列来完成它。在 B 处插入一个新列(这会将 C2 移动到 D2)。然后将这个公式粘贴到 B2 中:

=IF(ISERROR(FIND(A2,D$2)),"",A2)

填写该公式直到 A27(您说 A26,但如果您包含标题“TYPE OF DOGS”,则您的示例转到 A27)。只有当狗的品种包含在 D2 中的文本中时,才会输出狗的品种。

最后,转到您想要包含输出的任何单元格,然后粘贴:

=CONCATENATE(B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15,B16,B17,B18,B19,B20,B21,B22,B23,B24,B25,B26,B27)

【讨论】:

  • Choirbean,我非常感谢您为我的问题提供解决方案。您提供的公式非常适合我试图实现的目标。
猜你喜欢
  • 1970-01-01
  • 2016-12-17
  • 2019-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-24
  • 2021-11-17
  • 2017-06-08
相关资源
最近更新 更多