乐于分享
好东西不私藏

我终于用一个公式搞定了Excel金额转大写,整数小数都完美!

我终于用一个公式搞定了Excel金额转大写,整数小数都完美!
如下图,财务人员的许的表格中,要求将金额转换为大写。
转换要求:
(1)如果是整数,则转换为“XXX元整”
(2)如果是小数,则转换为“XXX元X角X分”
一、相关函数介绍
1、IF函数
IF(条件, 成立时T, 不成立时F)
如果条件成立,则值为T,否则值为F
2、INT函数
INT(N)
取N的整数部分,如int(3.14),结果为3,不会进行四舍五入。
3、RIGHT函数
RIGHT(文本S, 长度L)
截取S最右边的L个符号,如right("abcd", 2),结果为cd。如果L的值大于S的长度,则截取整串文本。
4、ROUND函数
ROUND(A, N)
对数字A保留N位小数,并进行四舍五入。如round(3.14159, 2),结果为3.14,再如round(567.558, 2),结果为567.56。
5、TEXT函数
TEXT(值, "格式代码")
将值按格式代码的方式显示,并转换为文本(⚠️结果是文本)。如果您对格式代码不太了解,可以参考9个“自定义格式”代码与解析,彻底搞懂Excel自定义数字格式,嫌麻烦?复制就能用!
二、公式推导分析
如文章开头的图片中,要根据B4单元格的值,正确读出人民币大写金额,需要按如下逻辑进行组织:
1、如果金额是整数,则按整数的方式读出金额。
2、否则,按小数的方式读出金额。
3、得出公式的基本框架为:
=IF(INT(B4)=B4, 按整数读金额, 按小数读金额)
INT(B4)=B4表示B4的整数部分等于B4,意味着这个数其实没有小数,那么,它一定是一个整数。当然,这只是个框架,现在还不能直接使用,接下来继续一步步推导分析。
4、整数金额怎么读?
根据9个“自定义格式”代码与解析,彻底搞懂Excel自定义数字格式,嫌麻烦?复制就能用!中的介绍,使用[DBNum2]G/通用格式读数,再在后面添加元整两个字即可。
TEXT(B4, "[DBNum2]G/通用格式元整")
如果所有的金额都是整数,那么直接采用第4步的公式就能解决问题,但现实情况是:金额一般都带有小数。
5、小数金额怎么读?
(1)先读出整数部分
TEXT(INT(B4), "[DBNum2]G/通用格式元")
其中INT(B4)是指取B4的整数部分,TEXT实现将它转换为中文大写数字。但是,其格式代码末尾没有“”字,因为后面还有
(2)再读小数部分
TEXT(RIGHT(ROUND(B4,2), 2), "[DBNum2]0角0分")
ROUND(B4,2):将金额保留2位小数,并进行四舍五入,如此可以确保金额一定是2位小数。
RIGHT(ROUND(B4,2), 2):截取金额最右边的2位数字,即金额的小数部分。
最后,将这个小数部分按0角0分的格式并转换为中文大写的方式输出。
(3)将整数部分和小数部分拼接起来(用&运算符)
TEXT(INT(B4), "[DBNum2]G/通用格式元") & TEXT(RIGHT(ROUND(B4,2), 2), "[DBNum2]00分")
公式中,&前面是整数部分的读法,&后面是小数部分的读写,拼接起来就是一个完整小数的读法。
下面看一下全是小数的结果
三、最终公式
现在,我们有了金额是整数时的读法公式,也有了金额是小数时的读法公式,现在将它们替换掉原来的IF公式框架中对应的部分就好了,得公式如下:
=IF(INT(B4)=B4, TEXT(B4, "[DBNum2]G/通用格式元整"), TEXT(INT(B4), "[DBNum2]G/通用格式元") & TEXT(RIGHT(ROUND(B4,2), 2), "[DBNum2]0角0分"))

如果实在觉得难以理解和编写,你完全可以复制上面的最终公式,然后将B4替换成你需要转换的单元格就可以啦。
最后,祝您工作愉快(* ̄3 ̄)╭♡!

相关学习资料