首页 EXCE如何把数字转化成中文大写金额格式

EXCE如何把数字转化成中文大写金额格式

举报
开通vip

EXCE如何把数字转化成中文大写金额格式EXCEL  如何把数字转化成中文大写金额格式  在EXCEL表中把数字转化成中文大写金额格式是财务人员在日常工作中的一个难题,虽然在EXCEL中的单元格格式设置中有一个特殊格式中可以转换在中文大写数字,但不能给出元、角、分整的中文金额特定格式,许多财务人员为之一筹莫展,最后只能手工输入,降低了EXCEL的使用效率,但如果TRUNC工作表函数,这个问题将迎刃而解,  如单元格A1=123459.72,须在某一格记录其中文大写金额,则在该格内输入函数: ="大写人民币:"&IF(TRUNC(A1)=0,"",TEXT...

EXCE如何把数字转化成中文大写金额格式
EXCEL  如何把数字转化成中文大写金额格式  在EXCEL表中把数字转化成中文大写金额格式是财务人员在日常工作中的一个难题,虽然在EXCEL中的单元格格式设置中有一个特殊格式中可以转换在中文大写数字,但不能给出元、角、分整的中文金额特定格式,许多财务人员为之一筹莫展,最后只能手工输入,降低了EXCEL的使用效率,但如果TRUNC工作表函数,这个问题将迎刃而解,  如单元格A1=123459.72,须在某一格记录其中文大写金额,则在该格内输入函数: ="大写人民币:"&IF(TRUNC(A1)=0,"",TEXT(TRUNC(A1),"[DBNum2]G/通用格式")&"元")&IF(TRUNC(A1*10)-TRUNC(A1*10,-1)=0,IF(TRUNC(A1*100)-TRUNC(A1*100,-1)<>0,"零",""),TEXT(TRUNC(A1*10)-TRUNC(A1*10,-1),"[DBNum2]G/通用格式")&"角")&IF(TRUNC(A1*100)-TRUNC(A1*100,-1)=0,"",TEXT(TRUNC(A1*100)-TRUNC(A1*100,-1),"[DBNum2]G/通用格式")&"分")&IF(TRUNC(A1*100)-TRUNC(A1*100,-1)=0,"整","")  回车后将得到完整的大写中文金额格式,这个函数将广泛应用于支票 大家知道,在Excel中,可以通过设置单元格格式,把单元格的阿拉伯数字直接以中文数字形式来显示,但该格式并不适用于显示票据大写金额。   我以前在使用Foxpro时,是通过自定义函数,把小写金额的数字转化为字符后,进行分析转换的。当然,在Excel中也可以使用VBA来编写自定义函数,但这种方式对不利于表格共享。   实际上,Excel中的中文大写数字格式功能,已经基本能够解决整数的大写金额显示的问题,我们所要解决的是当金额出现角分位的情况。   解决的方法是使用复合函数,考虑到人民币的单位是元,辅币有角分两个单位,一般金额取值的精确度为小数后两位。同时,当金额有角位没有分位时,大写金额后可写“整”也可以不写“整”,此时较为规范的写法是不要写“整”字。那么,函数设置可以这样考虑:如果金额为零直接显示“”;对于数值元位以上部分,利用Excel的中文大写数字表示法在中文大写数字后直接加“元”字表示;如果元以上金额为空,则直接显示空字符;如果金额为整数,直接在中文数字后加“整”字;如果角位为零分位不为零,角位上写“零”;分位为零时,分位显示空字符。   于是,假定票据上的小写金额栏位在单元格K9上,那么,我们可以在对应的大写金额栏位上填入下面这个复合函数: ="人民币"&IF(ROUND(G10,2)<0,"负","")&IF(ROUND(ABS(K9),2)=0,"",IF(ROUND(K9,2)<0,"负","")&IF(ROUND(ABS(K9),2)<1,"",TEXT(INT(ROUND(ABS(K9),2)),"[dbnum2]")&"元")&IF(LEFT(RIGHT(TEXT(K9,"0.00"),2),1)="0",IF(RIGHT(TEXT(K9,"0.00"),1)="0","整",IF(ROUND(ABS(K9),2)<1,"","零")),TEXT(LEFT(RIGHT(TEXT(K9,"0.00"),2),1),"[dbnum2]")&"角")&IF(RIGHT(TEXT(K9,"0.00"),1)="0","",TEXT(RIGHT(TEXT(K9,"0.00"),1),"[dbnum2]")&"分"))   这里用到的几个函数有: TEXT(value,format_text)  将数值转换为按指定数字格式表示的文本。           Value    是待转换的数值,可直接替换为数值、计算结果为数字值的公式,或对包含数字值的单元格的引用。           Format_text    指定的显示格式,为“单元格格式”对话框中“数字”选项卡上“分类”框中的文本形式的数字格式。上述函数中"[dbnum2]"是中文大写数字的格式标志。 ABS(number)  返回数字的绝对值。绝对值没有符号。           Number   需要计算其绝对值的实数。 INT(number)  将数字向下舍入到最接近的整数也称为取整函数           Number    需要进行向下舍入取整的实数。 IF(logical_test,value_if_true,value_if_false)  条件函数。执行真假值判断,根据逻辑计算的真假值,返回不同结果。          Logical_test    表示计算结果为 TRUE 或 FALSE 的任意值或表达式。         Value_if_true    logical_test 为 TRUE 时函数返回值。         Value_if_false    logical_test 为 FALSE 时函数返回值。 ROUND(number,num_digits)  返回某个数字按指定位数取整后的数字。          Number    需要进行四舍五入的数字。          Num_digits    指定的位数,按此位数进行四舍五入。          本例中数字精确到小数后2位。 LEFT(text,num_chars)   取字符串左侧若干字符          Text   是包含要提取字符的文本字符串。          Num_chars   指定要由 LEFT 所提取的字符数。 RIGHT(text,num_chars)   取字符串右侧若干字符          Text   是包含要提取字符的文本字符串。          Num_chars   指定希望 RIGHT 提取的字符数。 &  是字符连接符。   港币的中文大写显示方法与人民币相同,美元因为没有角位,其辅币单位只有美分,因此中文大写函数如下: ="美元"&IF(ROUND(G10,2)<0,"负","")&IF(ROUND(ABS(K9),2)=0,"",IF(ROUND(K9,2)<0,"负","")&IF(ROUND(K9,2)<0,"负","")&IF(ROUND(ABS(K9),2)<1,"",TEXT(INT(ROUND(ABS(K9),2)),"[dbnum2]")&"元")&IF(RIGHT(TEXT(K9,"0.00"),2)="00","整",TEXT(RIGHT(TEXT(K9,"0.00"),2),"[dbnum2]")&"分"))   日元没有辅币,可以直接使用Execl提供的大写中文表达格式加“元”字进行转换: =IF(ROUND(ABS(K9),2)=0,"",IF(ROUND(K9,2)<0,"负","")&IF(ROUND(K9,2)<0,"负","")&TEXT(INT(ABS(K9)),"[dbnum2]")&"元"&"整")在EXCEL中自动产生货币金额的大写形式 作者:flyings         EXCEL以其强大的制表功能深得广大用户得喜爱,尤其是需要经常制作表格得工作人员,如财会人员。在财会人员所做的表格中,经常要将货币金额转化为大写形式,而EXCEL本身并不提供该功能。笔者通过宏命令,制作了一个大写转换的程序,提供给需要的朋友们参考。       假设金额小写存放在 "A1 "单元格中,大写保存在 "A2 "单元格中,通过运行下列的宏命令,即可自动将小写金额转化为大写形式,如12345678.12的大写形式为壹仟贰佰叁拾肆万伍仟陆佰柒拾捌元壹角贰分。     Sub   宏1()     money   =   LTrim(Str(Workbooks( "Book2 ").     Sheets( "Sheet1 ").Range( "A1 ").Value   *   100))     '   取单元格中的小写金额     '   "Book2 "   为文件名     '   "Sheet1 "   为工作表名     '   "A1 "   为存放小写金额的单元格名   k   =   Len(money)   l   =   1     dxmc   =   "零壹贰叁肆伍陆柒捌玖 "   dwmc   =   "分角元拾佰仟万拾佰仟 "     umoney   =   " "   Do   While   k   >   0     Number   =   Val(Mid(money,   l,   1))     If   Number   >   0   Then     umoney   =   umoney   +   Mid(dxmc,   Number   +   1,   1)     umoney   =   umoney   +   Mid(dwmc,   k,   1)     Else     If   k   >   1   Then       '如果没有分为零,则不显示分值及单位     If   k   Mod   4   <>   3   Then     '如果元、万上的值为零,则只显示单位     umoney   =   umoney   +   Mid(dxmc,   Number   +   1,   1)     Else     umoney   =   umoney   +   Mid(dwmc,   k,   1)     End   If     End   If     End   If     k   =   k   -   1     l   =   l   +   1   Loop     Workbooks( "Book2 ").Sheets( "Sheet1 ").     Range( "A2 ").Value   =   umoney     '   将大写金额写入单元格     '   "Book2 "   为文件名     '   "Sheet1 "   为工作表名     '   "A2 "   为存放大写金额的单元格   End   Sub在D9中输入数字,粘贴以下内容到其他任意单元格内即可 IF(D9<0,"金额为负无效",IF(AND((INT(D9*10)-INT(D9)*10)=0,(INT(D9*100)-INT(D9*10)*10)=0),TEXT(INT(D9),"[dbnum2]")&"元整",IF((INT(D9*100)-INT(D9*10)*10)=0,TEXT(INT(D9),"[dbnum2]")&"元"&TEXT(INT(D9*10)-INT(D9)*10,"[dbnum2]")&"角整",TEXT(INT(D9),"[dbnum2]")&"元"&TEXT(INT(D9*10)-INT(D9)*10,"[dbnum2]")&"角"&TEXT(IF((INT(D9*1000)-INT(D9*100)*10)>=5,(INT(D9*100)-INT(D9*10)*10)+1,INT(D9*100)-INT(D9*10)*10),"[dbnum2]")&"分整"))) 标签: Access VBA   . 假定你要在A5输入阿拉佰数字,B5转换成中文大写金额(含元角分),请在B5单元格输入如下公式: =IF((INT(A5*10)-INT(A5)*10)=0,TEXT(INT(A5),"[DBNum2]G/通用格式")&"元"&IF((INT(A5*100)-INT((A5)*10)*10)=0,"整","零"&TEXT(INT(A5*100)-INT(A5*10)*10,"[DBNum2]G/通用格式")&"分"),TEXT(INT(A5),"[DBNum2]G/通用格式")&"元"&IF((INT(A5*100)-INT((A5)*10)*10)=0,TEXT((INT(A5*10)-INT(A5)*10),"[DBNum2]G/通用格式")&"角整",TEXT((INT(A5*10)-INT(A5)*10),"[DBNum2]G/通用格式")&"角"&TEXT(INT(A5*100)-INT(A5*10)*10,"[DBNum2]G/通用格式")&"分")) =IF(ROUND(K11,2)<0,"负"&IF(ABS(ROUND(K11,2))<1,"",TEXT(INT(ABS(ROUND(K11,2))),"[dbnum2]")&"元")&IF(MOD(INT(ABS(ROUND(K11,2)*10)),10)=0,IF(INT(ABS(ROUND(K11,2)))*MOD(INT(ABS(ROUND(K11,2)*100)),10)=0,"","零"),TEXT(MOD(INT(ABS(ROUND(K11,2)*10)),10),"[dbnum2]")&"角")&IF(MOD(INT(ABS(ROUND(K11,2)*100)),10)=0,"整",TEXT(MOD(INT(ABS(ROUND(K11,2)*100)),10),"[dbnum2]")&"分"),IF(ROUND(K11,2)=0,"零",IF(ROUND(K11,2)<1,"",TEXT(INT(ROUND(K11,2)),"[dbnum2]")&"元")&IF(MOD(INT(ROUND(K11,2)*10),10)=0,IF(INT(ROUND(K11,2))*MOD(INT(ROUND(K11,2)*100),10)=0,"","零"),TEXT(MOD(INT(ROUND(K11,2)*10),10),"[dbnum2]")&"角")&IF(MOD(INT(ROUND(K11,2)*100),10)=0,"整",TEXT(MOD(INT(ROUND(K11,2)*100),10),"[dbnum2]")&"分")))
本文档为【EXCE如何把数字转化成中文大写金额格式】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_005190
暂无简介~
格式:doc
大小:30KB
软件:Word
页数:5
分类:生活休闲
上传时间:2017-09-19
浏览量:54