1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 【Excel】偷懒小技巧3:金额小写自动转换为大写

【Excel】偷懒小技巧3:金额小写自动转换为大写

时间:2020-05-23 11:12:51

相关推荐

【Excel】偷懒小技巧3:金额小写自动转换为大写

1 背景

看造价文件,突然发现了这么个东东。

点击进去一看,果然是编辑好公式可以自动生成那种。发现了新东东,大喜过望,原来还可以这样。

仔细看了下公式,嵌套又嵌套,好像有点明白,又好像晕乎乎。还是自己做一遍吧,看的别人的终究是别人的。

2 思路分析

2.1 逻辑判断

假设输入单元格为A1,输出单元格为A2。有以下几种情况:

A1为空,输出A2也为空;A1为整数,输出A2为金额的大写加上“元整”后缀;A1为小数点后一位,输出A2为金额的大写加上“角”后缀;A1为小数点后二位,输出A2为金额的大写加上“角”“分”后缀。

上述逻辑用Ifs函数实现。(If函数嵌套也可以,不过看起来没有Ifs清晰。)

2.2 小写转大写

数字转换为大写用Text(值,“[DBNUM2]”)函数实现。

2.3 元、角、分判断和加后缀

当A1等于A1的整数部分值时,可知A1为整数,添加后缀“元整”;当A1×10等于A1×10的整数部分时,可知A1小数点后仅一位,整数部分添加后缀“元“,小数部分添加后缀“角”;当A1×10大于A1×10的整数部分时,可知A1小数点后不止一位,在“元”“角”基础上添加后缀“分”。

数字取整用Int函数,添加后缀用&连接符。

3 公式实现

最终完成的公式如下:

=IFS(A1="","",A1-INT(A1)=0,TEXT(A1,"[DBNUM2]")&"元整",A1*10-INT(A1*10)=0,TEXT(INT(A1),"[DBNUM2]")&"元"&TEXT(A1*10-INT(A1)*10,"[DBNUM2]")&"角",A1*10-INT(A1*10)>0,TEXT(INT(A1),"[DBNUM2]")&"元"&TEXT(INT(A1*10)-INT(A1)*10,"[DBNUM2]")&"角"&TEXT(INT(A1*100)-INT(A1*10)*10,"[DBNUM2]")&"分")

4 总结与思考

文档原来的公式如下:

思路大致一样,但是有几处差异。

因为If函数嵌套,阅读较困难;一开始的=“”&,不明白出于什么考虑;“角整”的说法,有些奇怪;如果金额为1001.01,会输出为壹仟零壹元零壹分,也没有错误,但是重复的零有点拗口(新公式会输出“壹仟零壹元零角壹分”,多一个“角”,感觉好一点)。

5 后记

虽然只是一个小小的公式,但是仔细分析起来,东西还挺多的。新知识新技能+1。

【原创内容,引用请注明出处:【Excel】偷懒小技巧3:金额小写自动转换为大写】

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。