ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 148005|回复: 28

[分享] 【替换函数】REPLACE和SUBSTITUTE函数区别

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-12-1 21:25 | 显示全部楼层 |阅读模式
本帖最后由 时光鸟 于 2012-12-1 22:03 编辑

在Excel中的REPLACESUBSTITUTE函数都是用来替换字符串中的某些特定文本之用,其用法有哪些差异呢?(参考下图)

在文本字符串中用 new_text 替代 old_text。如果需要在某一文本字符串中替换指定的文本,请使用函数 SUBSTITUTE;如果需要在某一文本字符串中替换指定位置处的任意文本,请使用函数 REPLACE。
语法
SUBSTITUTE(text,old_text,new_text,instance_num)
Text   为需要替换其中字符的文本,或对含有文本的单元格的引用。
Old_text   为需要替换的旧文本。
New_text   用于替换 old_text 的文本。
Instance_num   为一数值,用来指定以 new_text 替换第几次出现的 old_text。如果指定了 instance_num,则只有满足要求的 old_text 被替换;否则将用 new_text 替换 Text 中出现的所有 old_text。
==============================
REPLACE 使用其他文本字符串并根据所指定的字符数替换某文本字符串中的部分文本。
REPLACEB 使用其他文本字符串并根据所指定的字节数替换某文本字符串中的部分文本。
    函数 REPLACE 面向使用单字节字符集 (SBCS) 的语言,而函数 REPLACEB 面向使用双字节字符集 (DBCS) 的语言。您计算机上的默认语言设置对返回值的影响方式如下:
无论默认语言设置如何,函数 REPLACE 始终将每个字符(不管是单字节还是双字节)按 1 计数。当启用支持 DBCS 的语言的编辑并将其设置为默认语言时,函数 REPLACEB 会将每个双字节字符按 2 计数,否则,函数 REPLACEB 会将每个字符按 1 计数。支持 DBCS 的语言包括日语、中文(简体)、中文(繁体)以及朝鲜语。
语法
REPLACE(old_text,start_num,num_chars,new_text)
REPLACEB(old_text,start_num,num_bytes,new_text)
Old_text   是要替换其部分字符的文本。
Start_num   是要用 new_text 替换的 old_text 中字符的位置。
Num_chars   是希望 REPLACE 使用 new_text 替换 old_text 中字符的个数。
Num_bytes   是希望 REPLACEB 使用 new_text 替换 old_text 中字节的个数。
New_text   是要用于替换 old_text 中字符的文本。

201108141949.png
(注意:上述图片有误,与实例对应后,C7处应为“w”,等有时间了再把图片改过来)

  REPLACE 函数主要是根据指定的字符起始位置,指定被替换的字符数,然后以新的字符串来替换。

  (1) 单元格E2:=REPLACE(A2,5,6,"@")
  在单元格A2中的字符串中,由第5个字符开始,一共6个字符,以“@”替换。
  (2) 单元格E3:=REPLACE(A3,6,4,"3333")
  (3) 单元格E4:=REPLACE(A4,11,4,"Excel")

  SUBSTITUTE 函数主要是将文本字符串中的某些特定文本以指定的新字符串替换。
  (1) 单元格E7:=SUBSTITUTE(A7,"w","&",1)
  在单元格A7中的的字符串中,由第1个字符开始,将所有的“w”以“&”替换,因为第一个w为大写,所以不会被替换。
  比较以下的不同:
  (2) 单元格E8:=SUBSTITUTE(A8,0,"A")
  没有指定起始位置,结果为:A2A11A81416AA15。
  (3) 单元格E9:=SUBSTITUTE(A9,0,"A",1)
  指定起始位置为第1个字符,结果为:A20110814160015。
  (4) 单元格E10:=SUBSTITUTE(A10,"o","")
  将单元格A10中的字符串的所有“o”,以空字符串替换,相当于将“o”删除。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-12-1 21:58 | 显示全部楼层
这两个替换公式对初学者很有帮助,楼主有心了!值得收藏!

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-3 13:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
clarezhang 发表于 2012-12-1 21:58
这两个替换公式对初学者很有帮助,楼主有心了!值得收藏!

细细看一下一些类似函数的区别,发现他们的存在都各有道理,各有各的用途,就像很多朋友说“vlookup完全能替换lookup,因为lookup不能精确查找”,这种说法是很不科学的,实际上lookup也可以实现精确查找。而且还可以达到与vlookup精确查找不一样的效果...

TA的精华主题

TA的得分主题

发表于 2012-12-3 20:01 | 显示全部楼层
时光鸟 发表于 2012-12-3 13:40
细细看一下一些类似函数的区别,发现他们的存在都各有道理,各有各的用途,就像很多朋友说“vlookup完全能 ...

Totally agree !!!

TA的精华主题

TA的得分主题

发表于 2012-12-12 19:24 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-12-12 21:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
说得浅显易懂,慢慢看了几遍就懂了,虽然平时用不着这两个函数,有所了解总有用得上的时候{:soso__1338037447984525586_1:}

TA的精华主题

TA的得分主题

发表于 2012-12-12 21:02 | 显示全部楼层
时光鸟 发表于 2012-12-3 13:40
细细看一下一些类似函数的区别,发现他们的存在都各有道理,各有各的用途,就像很多朋友说“vlookup完全能 ...

那下次讲讲这两个函数的区别呗

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-12 21:11 | 显示全部楼层
AB
1a5
2b4
3c3
4d6
5g8
6g7
7e9
8f12
9g14
10h15


=lookup(1,0/(A1:A10="g"),B1:B10) 返回的结果是14
=vlookup("g",A1:B10,2,0)  返回的结果是8

从上面的例子中可以看出,他们最大区别在精确匹配,前者返回最后一个符合要求的值,后者返回第一个符合要求的值

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-12 21:12 | 显示全部楼层
-0.林℃ 发表于 2012-12-12 21:02
那下次讲讲这两个函数的区别呗

主要区别回复在 8 楼

TA的精华主题

TA的得分主题

发表于 2012-12-12 21:20 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-16 02:14 , Processed in 0.051129 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表