Excel/谷歌表格匹配子串多值并提取对应分类值的方法咨询
你当前使用的=SUMPRODUCT(ISNUMBER(SEARCH(TRANSPOSE($B$17:$B$20),A2)))公式仅能返回A2单元格命中B17:B20区域关键词的数量,若要提取命中的具体关键词内容,可按以下场景选择对应公式:
单匹配场景(同一单元格最多命中1个预设关键词)
如果A列内容最多只会匹配到B17:B20中的一个值,可使用如下公式:
- 谷歌表格 / Excel 365/2021及以上版本直接使用:
=IFERROR(INDEX($B$17:$B$20,MATCH(TRUE,ISNUMBER(SEARCH($B$17:$B$20,A2)),0)),"无匹配")
- 旧版Excel使用时需输入公式后按
Ctrl+Shift+Enter三键触发数组计算。
多匹配场景(同一单元格可能命中多个预设关键词)
如果需要返回同一单元格命中的所有关键词,可使用如下公式:
- 谷歌表格 / Excel 365版本直接使用:
=TEXTJOIN("、",TRUE,FILTER($B$17:$B$20,ISNUMBER(SEARCH($B$17:$B$20,A2)),"无匹配"))
公式中的、为多个关键词的分隔符,可根据需求替换为逗号、空格等其他符号。
- 旧版Excel暂不支持FILTER函数,需通过辅助列或VBA实现多匹配结果提取。
内容的提问来源于stack exchange,提问作者Carol.Kar
相关产品推荐
相关产品推荐

