乐于分享
好东西不私藏

再给大家推荐一个好用的WPS函数SUB……

再给大家推荐一个好用的WPS函数SUB……

Hi,大家好,我是星光
前两天给大家分享了WPS独有的一个函数:SheetsName,今天再给大家分享另外一个,同样也是WPS目前所独有的,叫做SUBSTITUTES
相比于大家所熟悉的SUBSTITUTE函数,这个家伙多了一个S,是英文单词的复数形式,复数即为多,因此它表示可以执行多重替换任务。
我举个小栗子。
📝随着社会的发展,我们正在大踏步的走进和谐新时代,有许多寓意不美好的旧词被时髦的优雅的新词代替了。
比如说,过去的啃老,现在叫做全职儿女,缺心眼,是钝感力超绝,拍马屁,那是提供情绪价值……
如下图所示,在表格的D~E列,提供了旧词所对应的新词。
在该表的A~B列,是如下图所示的数据源,现在需要将A列中可能出现的多个旧词替换为对应的新词。
这事如果用Excel来解决,通常需要使用REDUCE函数,涉及环节比较多,协调成本比较高,落地过程比较繁琐。
=REDUCE(    A2,    D$2:D$9,    LAMBDA(s, d,        SUBSTITUTE(            s,            d,            VLOOKUP(d, D:E, 20)        )    ))
而如果使用WPS的话了——平台就是生产力,平台赋能,实现能力复用与价值外溢,让业务问题在系统内自然消解~~
摊手,说人话,那就一个SUBSTITUTES函数的事👇
=SUBSTITUTES(A2,D$2:D$9,E$2:E$9)
SUBSTITUTES函数的第1参数指定需要处理的数据源,第2参数指定需要替换的旧关键字列表,第3参数指定第2参数关键字列表所对应的替换后的新关键字。
以本例而言,我们需要处理的数据源是B2单元格,需要替换的旧关键字列表为D2:D9区域,替换后的新值是E2:E9区域。
另外,该函数的第1参数也可以是数组形式,此时,它是一个动态数组公式,会将返回的多个计算结果自动溢出到单元格区域中。
=SUBSTITUTES(A2:A9,D2:D9,E2:E9)
……
这么好用的函数,使用中有没有需要注意的地方呢?
那当然是——有的,老铁,有的。
当被替换的旧关键词之间有被包含的关系时,一定要记得按字符串长度降序排序。
怎个意思呢?我举个非常粗犷的例子。
假设有一个句子:张三去见张三丰,张三说张三丰一点都不疯。
现在,我需要将张三替换为张三丰,将张三丰替换为张三。
公式可能会写成这样:
=SUBSTITUTES(    A2,    {"张三","张三丰"},    {"张三丰","张三"})
但计算结果变成了:
张三丰去见张三丰丰,张三丰说张三丰丰一点都不疯
正确的结果应该是:
张三丰去见张三,张三丰说张三一点都不疯
究其原因,从字面上来讲,张三是张三丰的一部分,优先替换张三,就会把张三丰误替换成张三丰丰——所以这是一个设置替换优先级的问题。
解决办法也很简单,按字数排序,谁字多就让谁优先被替换。
修正后的公式如下(字多的张三丰,排在字少的张三前面):
=SUBSTITUTES(    A2,    {"张三丰","张三"},    {"张三","张三丰"})
如果替换的项目比较多,更建议嵌套排序函数:
=LET(    _lst,SORTBY(D2:E3,-LEN(D2:D3)),    SUBSTITUTES(A2,CHOOSECOLS(_lst,1),CHOOSECOLS(_lst,2)))
打个响指,盖木欧瓦,有什么表格问题照例可以在会员微信群中提问交流,挥挥手,下期再见~

🚂>>~

超低价Excel终身会员:一次付费

永久迭代学习,学习问题永久答疑

扩展阅读

Excel.VBA常用代码合集
WPS.JSA宏常用代码合集
从Excel出发带你轻松学会SQL

本文由公众号“Excel星球”首发。

点击阅读原文系统学习Excel!

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 再给大家推荐一个好用的WPS函数SUB……

猜你喜欢

  • 暂无文章