在excel中,如何使用函数将数字人民币转换成大写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在excel中,如何使用函数将数字人民币转换成大写?相关的知识,希望对你有一定的参考价值。

通过设置单元格式可以使RMB数字转换成大写格式, 如123.56=壹佰贰拾叁元伍角陆分;
但我要使用函数编写。

利用相对应的函数即可在excel中将数字人民币转换成大写,具体操作请参照以下步骤,演示软件版本为Excel2007。

1、首先在电脑上打开一个Excel文件,进入编辑区,如图所示。

2、然后在B1单元格中输入目标数字123.56,如图所示。

3、然后选中B2单元格作为结果输出单元格,如图所示。

4、然后输入下图中的函数命令,公式中的B1是之前输入阿拉伯数字的单元格。

5、按下回车键,即可得到结果。完成以上设置后,即可在excel中,使用函数将数字人民币转换成大写。

参考技术A 可以用这个函数,相对比较简单一些:
=IF(A1<=0,,TEXT(INT(A1),"[dbnum2]人民币G/通用格式")&"元"&IF(INT(A1*10)-INT(A1)*10=0,IF(INT(A1)*(INT(A1*100)-INT(A1*10)*10)=0,"","零"),TEXT(INT(A1*10)-INT(A1)*10,"[dbnum2]")&"角")&IF((INT(A1*100)-INT(A1*10)*10)=0,"整",TEXT((INT(A1*100)-INT(A1*10)*10),"[dbnum2]")&"分"))
这个是A1是数字的情况下,同理,数字在哪个单元格,就直接把A1进行替换就可以了。
参考技术B 假如数据在A1单元格
=SUBSTITUTE(SUBSTITUTE(IF(-RMB(A1),IF(A1<0,"负",)&TEXT(INT(ABS(A1)+0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(RMB(A1),2),"[dbnum2]0角0分;;整"),),"零角",IF(A1^2<1,,"零")),"零分","整")追问

好长呀,可以解释一下吗?还有没有更简单一点的方法

追答

没有简单的,这是最简单的了。解释起来比较麻烦,你先了解一下SUBSTITUTE、INT、RIGHT、TEXT等函数的用法。

追问

我想知道那个【dbnum】是什么意思

追答

可以下拉的,你再试试。

追问

谢谢,可以用,求详解!

本回答被提问者采纳
参考技术C 假设A1是你输入的数字金额,在旁边加一列如下公式:
=SUBSTITUTE(SUBSTITUTE(IF(A1<0,"负","")&TEXT(TRUNC(ABS(ROUND(A1,2))),"[DBNum2]")&"圆"&IF(ISERR(FIND(".",ROUND(A1,2))),"",TEXT(RIGHT(TRUNC(ROUND(A1,2)*10)),"[DBNum2]"))&IF(ISERR(FIND(".0",TEXT(A1,"0.00"))),"角","")&IF(LEFT(RIGHT(ROUND(A1,2),3))=".",TEXT(RIGHT(ROUND(A1,2)),"[DBNum2]")&"分",IF(ROUND(A1,2)=0,"","整")),"零圆零",""),"零圆","")追问

我想知道这么一大串的公式解释

追答

SUBSTITUTE是文本替换函数,意义不用详细说明吧。
DBNum2是格式函数,数字转换为中文大写
公式处理过程是这样的:
如果是负数,先写一个“负”字,然后再用绝对值转换为中文大写;
对于数值转换,先转换小数点前面的,即元数;
然后再处理是否有小数位,如果没有则是加“整”
如果有,再处理角和分。

参考技术D 最简单方便操作,无需用到函数
选中单元格,右击——》设置单元格式——》特殊——》中文大写数字追问

我知道,可是我要的是函数!

Js将数字转化为中文大写

参考技术A function number_chinese(str)

                    var num = parseFloat(str);

                    var strOutput = "",

                        strUnit = '仟佰拾亿仟佰拾万仟佰拾元角分';

                    num += "00";

                    var intPos = num.indexOf('.'); 

                    if (intPos >= 0)

                        num = num.substring(0, intPos) + num.substr(intPos + 1, 2);

                   

                    strUnit = strUnit.substr(strUnit.length - num.length);

                    for (var i=0; i < num.length; i++)

                        strOutput += '零壹贰叁肆伍陆柒捌玖'.substr(num.substr(i,1),1) + strUnit.substr(i,1);

                   

                    return strOutput.replace(/零角零分$/, '整').replace(/零[仟佰拾]/g, '零').replace(/零2,/g, '零').replace(/零([亿|万])/g, '$1').replace(/零+元/, '元').replace(/亿零0,3万/, '亿').replace(/^元/, "零元")

           

以上是关于在excel中,如何使用函数将数字人民币转换成大写?的主要内容,如果未能解决你的问题,请参考以下文章

在Excel中如何让人民币小写变大写

小写数字自动转换成大写人民币金额两张表怎么在桌面找不同吗?

VBA 如何将数字转换为中文大写

请问在Excel里怎么用VBA把中文大写的数字转换成阿拉伯数字?

小写金额怎样生成大写

C++将阿拉伯数字转换为大写的中文数字,求修改指正