#EXCEL# ;#SUBSTITUTE#; #字符串函数#
使用环境:WIN10 HOME版,WPS 2019
字符串替换函数SUBSTITUTE,其函数原型为:SUBSTITUTE(text,old_text,new_text,[instance_num])
字符串处理函数SUBSTITUTE
替换序号用于”原字符串“多次出现的场景,比如SUBSTITUTE("原字符串原字符串原字符串","原字符串","——",2),其结果为“原字符串——原字符串”。
这里重点分享用于转换金额大写的场景
阿拉伯数字转换成大写金额
具体使用公式为:=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXT(INT($A2),"[dbnum2]")&TEXT(MOD($A2,1)*100,"[dbnum2]圆0角0分"),"零角零分","整"),"零角","零"),"零分","整")
公式从内到外分解为:TEXT(INT($A2),"[dbnum2]"),其作用就是将金额截取整数部分,int()函数不四舍五入,并将整数部分转换成金额大写,"[dbnum2]"其效果与NUMBERSTRING函数,即numberstring($a2,2)的效果相同,numberstring的具体使用这里就不阐述了。这部分效果展示如上图第二行。
TEXT(MOD($A2,1)*100,"[dbnum2]圆0角0分"),其作用就是截取小数部分,转换成“圆*角*分”,这部分效果展示如上图第三行。
SUBSTITUTE(TEXT(INT($A2),"[dbnum2]")&TEXT(MOD($A2,1)*100,"[dbnum2]圆0角0分"),"零角零分","整"),其作用就是处理不带小数的情况,替换成“整”。这部分效果展示如上图第四行。
SUBSTITUTE(SUBSTITUTE(TEXT(INT($A2),"[dbnum2]")&TEXT(MOD($A2,1)*100,"[dbnum2]圆0角0分"),"零角零分","整"),"零角","零"),其作用就是处理“零角”,换成“零”,这部分展示效果如上图第五行。
最后一个SUBSTITUTE函数处理不带分的情况,这部分展示效果如上图第六行。
我们可以根据实际情况要求,对相应部分进行调整。