excel

关注公众号 jb51net

关闭
软件教程 > 办公软件 > excel >

别只会查找替换了! excel最新版本高级替换函数SUBSTITUTES用法

脚本之家

问题,要将内容里面的数字提取出来,并用*作为分隔符号连接起来。

内容比较有规律,并不难,跟来看看。

传统的思维,将空格替换掉,再将MM替换掉,最后将X替换成*,也就是3次替换。可以直接用Ctrl+H替换,也可以用3个SUBSTITUTE函数。

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"X","*"),"MM",)," ",)

最新版本,有一个高级替换函数SUBSTITUTES,可以一次性将字符全替换掉。

=SUBSTITUTES(A2,{" ","MM","X"},{"","","*"})

2个替换函数语法几乎一样,唯一差别就是带S支持常量数组,能一次替换多个。

语法:

=SUBSTITUTES(内容,{"旧字符1","旧字符2","旧字符3"},{"新字符1","新字符2","新字符3"})

当然,还可以借助高版本的TEXTJOIN+REGEXP,这种就是通用的,不管里面混合着什么无关的字符,都可以搞定。

REGEXP将第2参数设置为[0-9]+,就是将所有数字提取出来。

=REGEXP(A2,"[0-9]+")

现在新增一些无关的字符,也不影响结果,比替换函数更智能。

而TEXTJOIN就可以按分隔符号合并数字,组合起来就可以。

=TEXTJOIN("*",1,REGEXP(A2,"[0-9]+"))

假如现在是要获取数字相乘的结果,而不是表达式。

用REGEXP提取出来的数字是文本格式,需要用--转换成数值格式。

而PRODUCT就是获取数字乘积的结果。同理,有的时候需要数字之和,就换成SUM即可。

=PRODUCT(--REGEXP(A2,"[0-9]+"))

有条件的话,都安装最新版本,这样写起公式更简单,更智能。