Excel - 用于搜索多个术语并显示匹配术语的公式

Excel - Forumla to seacrh for mutliple terms and show the matching term

我面临的挑战是,我需要在 Excel 中搜索多个字词,并为每个匹配不同字词的单元格取回结果。

我知道有一个公式组合可以搜索多个字词,但这不会给我匹配的字词。下面的示例仅返回“0”或“1”。

=IF(ISNUMBER(SEARCH({"TermA","TermB","TermC"},A1)),"1","0")
|   |         A       |     B   |
| 1 | This is TermA   |  TermA  |
| 2 | Some TermB Text |  TermB  |
| 3 | And TermA Text  |  TermA  |
| 4 | another TermC   |  TermC  |

背景 我必须对值进行一些规范化,因此寻找一些可以识别值并列出匹配项的论坛。用于搜索的值应该稍后在另一页上,以便可以轻松扩展。

感谢您提供的一些提示和方法,它们会让我走上正确的方向。

到return所有匹配的字词:

=INDEX(FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[.='TermA' or .='TermB' or .='TermC']"),COLUMN(A1))

如果根本没有找到匹配项,则换行 IFERROR()


如果有 ExcelO365 并且您引用一个范围,事情就会变得容易得多:

E1中的公式:

=TRANSPOSE(FILTER(C:C,ISNUMBER(FIND(C:C,A1))))

=INDEX(FILTER(C:C,C:C<>""),MATCH(1, COUNTIF(A1, "*"&FILTER(C:C,C:C<>"")&"*"), 0))

适用于office 365版本。如果以前的版本将 FILTER(C:C,C:C<>"") 替换为 C:C 作为您的示例或任何您的搜索值范围。 Table参考也可以

如果包含您的字词的文本在该文本的任何位置包含匹配值,则公式会搜索您的值列表中的第一个匹配项。它 returns 第一场比赛。