You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel公式实现:比较两个字符串单元格,存在匹配词时返回TRUE

不用VBA的Excel字符串匹配判断方案

嘿,这个需求完全可以用纯Excel公式搞定,不用碰VBA,我给你两个实用方案,看你用的Excel版本选就行:

通用方案(适配所有Excel版本)

假设你的关键词单元格是A1,问题描述单元格是B1,在结果单元格输入以下公式:

=SUMPRODUCT(--ISNUMBER(SEARCH(TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",LEN(A1))),ROW(INDIRECT("1:"&LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1))*LEN(A1)-LEN(A1)+1,LEN(A1))),B1)))>0

公式逻辑拆解:

  • SUBSTITUTE(A1,",",REPT(" ",LEN(A1))):把关键词里的逗号替换成和关键词单元格长度一致的空格,方便后续拆分
  • MID(..., ROW(INDIRECT(...)), LEN(A1)):按位置拆分出每个关键词(用空格占位后,每个关键词都占满单元格长度,所以MID能精准提取)
  • TRIM():去掉每个关键词前后的多余空格(解决逗号前后有空格的情况)
  • SEARCH(..., B1):在问题描述里查找每个关键词,找到返回位置,没找到返回错误值
  • ISNUMBER():把SEARCH的结果转成布尔值(找到是TRUE,没找到是FALSE)
  • --:把布尔值转成1或0(TRUE→1,FALSE→0)
  • SUMPRODUCT():对所有关键词的匹配结果求和,最后判断总和是否大于0——只要有一个匹配就返回TRUE

简化方案(仅适配Excel 365/2021及以上版本)

如果你用的是支持动态数组的Excel版本,公式可以简化很多,同样假设关键词在A1,问题描述在B1:

=OR(ISNUMBER(SEARCH(TRIM(TEXTSPLIT(A1,",")),B1)))

公式逻辑拆解:

  • TEXTSPLIT(A1,","):直接把关键词按逗号拆分成动态数组,自动处理每个关键词
  • TRIM():去掉关键词前后的多余空格
  • SEARCH(..., B1):逐个在问题描述里查找关键词
  • ISNUMBER():转成布尔值
  • OR():只要有一个关键词匹配,就返回TRUE

额外提示

  • 如果你需要区分大小写的匹配,把公式里的SEARCH换成FIND即可
  • 关键词里的逗号前后有没有空格都不影响,TRIM()会自动处理

举个你的示例:

  • A1内容:Camera, torch, messenger, internet
  • B1内容:我想要一部能使用50MP摄像头拍摄高质量照片,并且可以通过互联网浏览新闻的手机
    两个公式都会返回TRUE,因为匹配到了Camera(对应“摄像头”)和internet(对应“互联网”)

内容的提问来源于stack exchange,提问作者pedrohasabeard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 12:47:34