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

如何用Excel公式检测同一列两个单元格是否存在部分文本匹配?

检测Excel同一列单元格的部分文本匹配方案

为什么你的原公式无效

你用的=IF(ISNUMBER(SEARCH(F3,F15)),"Yes","No")是检查F3的完整内容是否作为子串存在于F15中,而你的需求是两个单元格包含共同的部分文本片段(比如示例中的"regulation BI"),逻辑不匹配所以无法得到预期结果。

解决方案

1. 检测是否包含指定关键词

如果已经明确要匹配的关键词(比如"regulation BI"),用以下公式返回TRUE/FALSE:

=AND(ISNUMBER(SEARCH("regulation BI", F3)), ISNUMBER(SEARCH("regulation BI", F15)))

若关键词放在其他单元格(比如G1),可动态引用:

=AND(ISNUMBER(SEARCH(G1, F3)), ISNUMBER(SEARCH(G1, F15)))

2. 自动检测任意共同文本片段(指定最小长度)

如果要自动识别两个单元格中是否存在至少N个连续字符的共同片段(比如设为5个字符),使用以下数组公式:

  • Excel 365/2021直接输入即可;旧版本需按Ctrl+Shift+Enter确认
=SUMPRODUCT(--(ISNUMBER(SEARCH(MID(F3,ROW(INDIRECT("1:"&LEN(F3)-4)),5),F15))))>0

说明:把公式中的5改成你需要的最小匹配长度(比如3),LEN(F3)-4是因为要提取长度为5的片段,起始行最多到总长度-4。

3. 列出同一列中匹配的单元格地址

若要在G3单元格列出F列中所有与F3存在部分匹配的单元格地址(以5字符匹配为例),使用Excel 365专属公式:

=TEXTJOIN(", ", TRUE, BYROW(F$2:F$1000, LAMBDA(cell, IF(cell<>"", IF(SUMPRODUCT(--(ISNUMBER(SEARCH(MID(F3,ROW(INDIRECT("1:"&LEN(F3)-4)),5),cell))))>0, ADDRESS(ROW(cell), COLUMN(cell)), ""), "")))

说明:将F$2:F$1000替换为你的实际数据范围,避免整列引用导致卡顿。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 00:33:17