Excel如何在单个单元格匹配多个指定字符串并罗列结果
实现方案
适用Excel 365 / 2021及以上版本
直接在C1单元格输入以下公式即可:=TEXTJOIN(", ",TRUE,FILTER($B$1:$B$2,ISNUMBER(SEARCH(", "&$B$1:$B$2&", ",", "&A1&", ")),""))
公式逻辑说明:
- 给A1内容前后拼接
,,让A1里每个关键词前后都有统一的分隔符,避免出现「product1匹配到product10」的部分匹配误判问题 - 用SEARCH函数判断B列每个关键词前后加
,后是否存在于处理后的A1内容中,存在则返回对应位置,ISNUMBER转换为布尔值TRUE - FILTER筛选出所有匹配成功的B列关键词
- TEXTJOIN用
,作为分隔符拼接所有筛选结果,参数TRUE表示自动跳过空值
如果需要区分大小写匹配,把公式中的
SEARCH替换为FIND即可。
适用Excel 2019及更早版本
如果你的Excel版本没有FILTER函数,使用以下公式:=SUBSTITUTE(TRIM(IF(ISNUMBER(SEARCH(", "&B1&", ",", "&A1&", ")),B1&" ","")&IF(ISNUMBER(SEARCH(", "&B2&", ",", "&A1&", ")),B2&" ",""))," ",", ")
公式逻辑说明:
- 逐个判断B1、B2是否匹配A1中的元素,匹配成功则输出关键词加空格,否则输出空
- 用TRIM去掉拼接后首尾的多余空格
- 用SUBSTITUTE把关键词之间的空格替换为
,得到最终结果
如果后续需要增加更多匹配项(比如B3、B4),只需在公式中按规则拼接更多IF判断段即可。
内容的提问来源于stack exchange,提问作者guanluan chen
相关产品推荐
相关产品推荐

