跳转至

REPLACE 函数

1. 函数概述

REPLACE 是 Excel 文本处理函数之一,用于按位置替换文本字符串中的指定部分:从某个起始位置开始,删除指定数量的字符,并用新的文本替换它们。

它的核心特点是:

  • 按字符位置替换:不关心要替换的内容是什么,只看“从第几位开始,替换多少位”。
  • 适用于固定格式文本的批量处理:如编号、日期字符串、手机号脱敏、截取并改写固定段等。

注意:REPLACESUBSTITUTE 的区别在于:REPLACE 按“位置和长度”替换,SUBSTITUTE 按“匹配到的具体文本内容”替换。


2. 基础语法

REPLACE(old_text, start_num, num_chars, new_text)

3. 参数说明

参数名 是否必填 含义 说明
old_text 原始文本 可以是文本、单元格引用、或返回文本的公式结果
start_num 开始替换的位置 从 1 开始计数(第 1 个字符的位置为 1)
num_chars 要替换的字符数 从 start_num 起算,删除/替换的字符数量
new_text 用于替换的新文本 会插入到替换位置,替代被移除的字符

补充要点:

  • start_num1-based(从 1 开始),不是从 0 开始。
  • num_chars 决定“删除多少个字符”,并由 new_text 替换。
  • new_text 可以是空字符串 "",用于“删除指定位置的一段字符”。

4. 基础用法示范

下面示范均为常见业务场景,便于直接套用。为便于阅读,示例中用具体文本演示,实际使用时可用单元格引用替换。

4.1 替换固定位置的一段字符

需求:将文本 "ABCD-1234" 中的前 4 个字符替换成 "WXYZ"

=REPLACE("ABCD-1234", 1, 4, "WXYZ")

结果:

  • "WXYZ-1234"

解释:

  • 从第 1 位开始,替换 4 个字符(即 ABCD),替换为 WXYZ。

4.2 替换中间某段

需求:将 "订单-202601-0008" 中的月份 "202601" 改为 "202512"(月份长度固定为 6)。

=REPLACE("订单-202601-0008", 4, 6, "202512")

结果:

  • "订单-202512-0008"

解释:

  • "订单-" 占 3 个字符,因此月份开始位置为第 4 位。
  • 替换 6 位,刚好覆盖 "202601"

4.3 插入文本(num_chars = 0)

需求:在 "A1001" 的第 2 位后插入 "-",得到 "A-1001"

=REPLACE("A1001", 2, 0, "-")

结果:

  • "A-1001"

解释:

  • 从第 2 位开始替换 0 个字符,等价于在第 2 位“插入”新文本。

4.4 删除指定位置的一段字符

需求:删除 "CN-2026-01" 中的 "-"(假设要删除第 3 位的字符)。

=REPLACE("CN-2026-01", 3, 1, "")

结果:

  • "CN2026-01"

解释:

  • 从第 3 位开始删除 1 个字符,用空字符串替换,相当于删除。

4.5 脱敏:替换中间若干位为星号

需求:将手机号 "13812345678" 的中间 4 位替换成 "****",得到 "138****5678"

=REPLACE("13812345678", 4, 4, "****")

结果:

  • "138****5678"

解释:

  • 手机号第 4 位开始是中间段(固定 4 位),替换即可。

4.6 与其他函数组合

需求:将邮箱 "jerry@example.com" 的用户名部分替换成 "user",得到 "user@example.com"

思路:用户名长度不固定,但 "@" 的位置可由 FIND 找到,然后替换从第 1 位到 @ 前的所有字符。

=REPLACE("jerry@example.com", 1, FIND("@", "jerry@example.com")-1, "user")

结果:

  • "user@example.com"

解释:

  • FIND("@", ...) 返回 @ 的位置。
  • @ 位置减 1 得到用户名长度。
  • 从第 1 位开始替换用户名长度字符为 "user"

5. 总结

REPLACE 的本质是“按位置替换”,掌握它的关键是理解三个点:

  1. 从第几位开始start_num 从 1 开始计数。
  2. 替换多少位num_chars 决定删掉多少字符并被替换。
  3. 替换成什么new_text 可以是新文本、空文本(删除),也可以通过公式动态生成。

实务中,REPLACE 最适合处理“格式稳定、位置固定或可定位”的文本,例如:

  • 编号/订单号固定段替换
  • 日期字符串固定位置改写
  • 账号/手机号脱敏
  • 结合 FIND / LEN / LEFT / MID 实现动态替换与插入

只要你的场景满足“替换段能用位置和长度确定”,REPLACE 往往比按内容匹配更稳定、更高效。