REPLACE( ) 函数
用新的字符串替换指定字符串的所有实例。
语法
REPLACE(字符串,原文本,新文本)
参数
名称 | 类型 | 描述 |
---|---|---|
字符串 |
字符 |
在其中替换字符的值。 |
原文本 |
字符 |
要替换的字符串。该搜索区分大小写。 |
新文本 | 字符 | 用于替换原文本中的值的文本 。 |
输出
字符。
示例
基本示例
返回 "a12345efg":
REPLACE("abcdefg","bcd","12345")
返回 "Rd.":
REPLACE("Road","Road","Rd.")
返回 "ac":
REPLACE("abc","b","")
高级示例
移除指定的字符
使用 REPLACE( ) 可将指定字符串替换成空字符串 (""),从而将其从源字符串中的指定字符串。
返回 "1234 Scott":
REPLACE("1234 Scott rd.", "rd.", "")
域长度调整
如果新文本 ("ABC") 比原文本 ("X") 长,则生成的字符串的域长度被自动增加以适应第一次替换:
返回 "9ABC9",域长度被从 3 个字符增加到 5 个字符:
REPLACE("9X9", "X", "ABC")
域长度不会为后续的替换操作自动增加,并且如果域不是足够长以容纳所有新字符,则可能产生截断。
返回 "9ABC9A":
REPLACE("9X9X", "X", "ABC")
要避免截断,您可以使用 BLANKS() 函数或字面量空格增加字符串的长度。
返回 "9ABC9ABC":
REPLACE("9X9X" + BLANKS(2), "X", "ABC")
REPLACE("9X9X" + " ", "X", "ABC")
如果生成的字符串比字符串短,则生成的字符串被用空白填充,以保持相同的域长度。
返回 "9X9 ":
REPLACE("9ABC9", "ABC", "X")
备注
工作原理
REPLACE( ) 函数用新字符串替代现有字符串的每个实例。
返回 "1234 Scott Road":
REPLACE("1234 Scott rd.", "rd.", "Road")
何时使用 REPLACE( )
使用 REPLACE( ) 可以对格式不一致的数据域(如地址域)进行规格化,或者替换格式编辑不佳的域中的无效信息。要准确执行,诸如重复项测试、联接或关联表之类的操作要求数据具有正常化或标准化的格式。
区分大小写
REPLACE( ) 函数区分大小写。如果您在原文本 中指定 "RD.",且字符串中的值为小写,则新文本值将不会被替换,因为找不到匹配项。
如果字符串有可能混合大小写,请首先使用 UPPER( ) 函数把所有字符转换为大写。
返回 "1234 SCOTT ROAD":
REPLACE(UPPER("1234 Scott rd."), "RD.", "ROAD")
防止意外的替换
在构造 REPLACE( ) 表达式时,您必须注意字符串中每个可能的原文本实例,以避免造成无意的替换。
返回 "645 RichaRoad Road",因为 "Richard" 的最后两个字母是 "rd":
REPLACE("645 Richard rd ", "rd", "Road")
通过向原文本中的值添加一个前导空格和一个结尾空格 (“ rd{sp”),可阻止该函数替换名称中出现的 "rd" 实例,因为这些实例中无前导空格。
返回 "645 Richard Road":
REPLACE("645 Richard rd ", " rd ", " Road")