2022-10-04 13:45来源:m.sf1369.com作者:宇宇
要将人民币小写金额转换成大写格式,用Excel提供的格式,将自定义格式类型中的“[dbnum2]G/通用格式”改为“[dbnum2] G/通用格式“元””来实现。但在转换小数时却出现了问题,比如¥6,050.09只能转换为“陆仟零伍拾.零玖圆”。那么用Excel能不能解决这一先天不足呢?其方法有以下两种(以下均对B1转换,假设B1是通过函数ROUND( )四舍五入取得二位小数的小写金额数,其值为¥6,050.09)。
一、在三个连续的同行单元格中转换
1. B2中输入公式 “=IF(B1<0,金额为负无效,INT(B1))”,计算结果为¥6,050.00,然后点击“格式→单元格→数字→特殊→中文大写数字→确定”,B2显示“陆仟零伍拾”,再点击“格式→单元格→数字→自定义”,将“类型”编辑框中的“[dbnum2]G/通用格式”修改为:[dbnum2](“人民币”)G/通用格式“元”,此时B2显示:“(人民币)陆仟零伍拾元”。
2. C2中输入“=IF(B1<0,,INT(B1?10)-INT(B1)?10)”,同样C2改为:[DBNum2]G/通用格式“角”,C2显示:“零角”。
3. D2中输入“=IF(B1<0,,INT(B1?100)-INT(B1?10)?10)”,同样D2改为:[DBNum2]G/通用格式“分”, D2显示:“玖分”。
这样在连续的三个同行单元格中实现了大写金额格式的转换,如图1所示。为了使转换符合财务格式,B2应右对齐,C2列宽无间隔,且不设左右边框线,D2要左对齐。
二、用Excel提供的函数转换
个位为0,则不显示;不为0,显示“XXX元”;不为0、且角位和分位均为0,显示“XXX元整”;元角分位均为0,则显示“零元整”。
小数点后面第一位为0、且元位或分位有一为0,则不显示;为0、且元位和分位均不为0,则显示“零”;不为0,显示“X角”。
小数点后面第二位为0,则显示“整”;不为0,显示“X分”。
根据以上思路在B2中输入公式:
“IF(B1<0,金额为负无效,IF(OR(B1=0,B1=),(人民币)零元整));
IF(B1<1,(人民币),TEXT(INT(B1),[dbnum2](人民币)G/通用格式)&&元)&&IF(INT(B1?10)-INT(B1)?10=0);
IF(INT(B1)?(INT(B1?100)-INT(B1?10)?10)=0,,零),TEXT(INT(B1?10)-INT(B1)?10,[dbnum2])&&角)&&IF((INT(B1?100)-INT(B1?10)?10)=0,整,TEXT((INT(B1?100)-INT(B1*10)*10),[dbnum2])&&分)))”。
确认后B2显示:“(人民币)陆仟零伍拾元零玖分”。以后使用时将公式复制到有关单元格中,若转换的对象B1发生了变化,可点击“编辑→替换”将B1替换掉。
设置单元格格式,数字,特殊,中文大写数字,这样就可以了。要加一个元整,需要点了特殊之后,选中中文大写数字,然后点击自定义,会看见 [DBNum2][$-804]G/通用格式 这个时候在这句话后面加上 元整 ,注意双引号要是英文输入状态下的双引号。
补充一下,hjj5118 的意思我明白了。综合tangjiangli的答案,我教hjj5118 做:
第一步,打开已有的表格,同时把这个网页也打开,稍后能用到这个公式。因为公式太长,必须得用复制,粘贴的方法,才保准。
第二步,复制公式,冒号后一个也不能落下。
即:=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,,整)),零元零,),零元,) 。
第三步,双击进入A2,使A2单元格中有光标在闪,点粘贴。
第四步,回车。
1.假设要转换的数字小写金额在A列
2.选中要转换的数字所在的单元格区域,按下CTRL+1组合快捷键,弹出设置单元格格式对话框
3.在“数字”选项卡下单击“特殊”选择“中文大写数字”,然后单击“确定”
4.以上是通过设置单元格式的方式将数字转换为大写数字,但是并没有严格按照财务对大小写金额的转换要求。
如果要严格按照财务对大小写金额转换的要求来说,可以在B2单元格输入公式
=SUBSTITUTE(SUBSTITUTE(TEXT(INT(A2),[DBNum2][$-804]G/通用格式元&IF(INT(A2)=A2,整,))&TEXT(MID(A2,FIND(.,A2&.0)+1,1),[DBNum2][$-804]G/通用格式角)&TEXT(MID(A2,FIND(.,A2&.0)+2,1),[DBNum2][$-804]G/通用格式分),零角,零),零分,)
5.然后按住鼠标左键拖动B2单元格右下角的填充柄到B列的其它单元格区域,即可。
6.通过以上两种方法基本可以满足各种金额大小写转换的要求了。