跳转至

SUBSTITUTE 函数

1. 函数概述

SUBSTITUTE 用于在文本字符串中,把指定的旧文本替换为新的文本。它的核心优势是:

  • 只替换你指定的那一段内容(按文本匹配)
  • 支持选择性替换:可以只替换第 1 次、第 2 次……或替换全部出现次数
  • 适用于清洗数据、统一格式、批量修正文案等场景

补充理解:SUBSTITUTE 是“按内容替换”,不是“按位置替换”。它会在原文本中查找与 old_text 完全匹配的片段并替换。


2. 基础语法

SUBSTITUTE(text, old_text, new_text, [instance_num])

3. 参数说明

3.1 text

  • 含义:要处理的原始文本(可以是单元格引用,也可以是直接写入的字符串)
  • 类型:文本/单元格引用
  • 示例:A2"北京-朝阳区-望京"

3.2 old_text

  • 含义:你想被替换掉的旧文本片段(必须精确匹配)
  • 类型:文本
  • 示例:"-""有限公司"" "(空格)

3.3 new_text

  • 含义:用于替换 old_text 的新文本
  • 类型:文本(也可以是空字符串)
  • 示例:"/"""(表示删除)

3.4 [instance_num](可选)

  • 含义:指定替换第几次出现的 old_text
  • 规则:

    • 省略:替换所有匹配到的 old_text
    • 填数字 1:只替换第 1 次出现
    • 填数字 2:只替换第 2 次出现,以此类推
  • 类型:数字(正整数)


4. 基础用法示范

4.1 替换所有出现次数(最常用)

需求:把手机号中的 - 统一去掉

  • 原文本:138-0013-8000(在 A2)
=SUBSTITUTE(A2,"-","")

结果13800138000


4.2 只替换指定第 N 次出现

需求:把字符串中的第 2 个短横线 - 替换为 /

  • 原文本:2026-01-14(在 A2)
=SUBSTITUTE(A2,"-","/",2)

结果2026-01/14


4.3 替换空格:清理多余间隔

需求:把文本中的空格替换为空(删除空格)

  • 原文本:A B C(在 A2)
=SUBSTITUTE(A2," ","")

结果ABC


4.4 替换特定词:统一名称或口径

需求:把“有限公司”替换为“公司”

  • 原文本:企业空间有限公司(在 A2)
=SUBSTITUTE(A2,"有限公司","公司")

结果企业空间公司


4.5 组合替换:多步清洗(嵌套使用)

需求:把文本中的 - 换成空,并把 去掉

  • 原文本:产品-名称(新版)(在 A2)
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"-",""),"(",""),")","")

结果产品名称新版

思路:从内到外逐步替换,每一层替换一种目标字符。


4.6 结合单元格参数:让替换规则可配置

需求:在表格中可配置替换规则

  • A2:原文本
  • B2:旧文本
  • C2:新文本
=SUBSTITUTE(A2,B2,C2)

结果:当你修改 B2/C2 时,替换结果自动更新,适合批量清洗模板化处理。


5. 总结

  • SUBSTITUTE 的定位是:按文本内容匹配并替换,适合做规范化、清洗、口径统一。
  • 不传 [instance_num] 时会替换全部匹配项;传入数字后可以精确控制只替换第 N 次出现。
  • 常见高频场景:

    • 删除特定字符(用 "" 替换)
    • 统一分隔符(如 - 改为 /
    • 替换词汇以统一命名
    • 多步清洗(嵌套多个 SUBSTITUTE
  • 实操建议:当清洗规则多且稳定时,用嵌套 SUBSTITUTE;当规则需要经常变动时,把 old_text/new_text 放到单元格里做可配置方案。