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

Excel文本匹配需求:忽略大小写空格、首尾通配符(VBA及公式实现)

实现忽略大小写、空格的首尾通配文本匹配(Excel公式+VBA)

一、Excel公式实现

通过组合文本处理与查找函数,可直接在单元格内完成需求:

公式示例

=ISNUMBER(SEARCH(SUBSTITUTE(B1," ",""), SUBSTITUTE(A1," ","")))

公式说明

  • SUBSTITUTE(text, " ", ""):移除文本中所有空格,消除空格对匹配的干扰
  • SEARCH(find_text, within_text):在目标文本中查找指定字符串,默认不区分大小写,匹配成功返回起始位置,失败返回错误值
  • ISNUMBER(value):判断SEARCH结果是否为有效数字(即匹配成功),返回布尔值TRUE或FALSE

测试验证

  • A1输入Test SAmple round2、B1输入test sample,公式返回TRUE
  • A1输入t.TestSAmpleround2、B1输入test sample,公式返回TRUE

二、VBA自定义函数实现

如果需要批量处理或集成到其他宏逻辑中,可编写自定义函数:

VBA代码

Function MatchIgnoreCaseAndSpace(originalText As String, matchText As String) As Boolean
    ' 清理文本:移除所有空格
    Dim cleanedOriginal As String
    Dim cleanedMatch As String
    cleanedOriginal = Replace(originalText, " ", "")
    cleanedMatch = Replace(matchText, " ", "")
    
    ' 不区分大小写判断是否包含目标字符串(首尾通配等价于包含匹配)
    MatchIgnoreCaseAndSpace = InStr(1, cleanedOriginal, cleanedMatch, vbTextCompare) > 0
End Function

使用方法

  1. 按下Alt + F11打开VBA编辑器
  2. 插入新模块,粘贴上述代码
  3. 返回Excel,在单元格中输入:
    =MatchIgnoreCaseAndSpace(A1,B1)
    
    其中A1为待匹配原文本,B1为匹配模式文本

代码说明

  • Replace(text, " ", ""):批量移除文本内的空格
  • InStr(1, cleanedOriginal, cleanedMatch, vbTextCompare):通过vbTextCompare参数强制不区分大小写查找,返回匹配位置(0表示未找到)
  • 最终通过判断位置是否大于0,返回匹配结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:22:43