数字大小写转换excel
- 格式:xlsx
- 大小:11.04 KB
- 文档页数:1
把单元格中数字快速转化为中文大写的方法将单元格中数字快速转化为中文大写的方法介绍在Excel中,有时我们需要将数字转化为中文大写,例如将12345转化为一万二千三百四十五。
本文将介绍几种快速将单元格中数字转化为中文大写的方法。
方法一:使用Excel自带函数Excel自带了一个函数=TEXT(value, "[$-0804][DBNum2]G/通用格式"),可以将数字转化为中文大写形式。
使用步骤: 1. 在一个空白单元格中输入=TEXT(A1, "[$-0804][DBNum2]G/通用格式"),其中A1为要转化的数字所在的单元格。
2. 按下Enter键即可看到转化后的中文大写数字。
方法二:使用VBA宏如果需要频繁使用该功能,可以使用VBA宏将其封装为一个函数,以便更加方便地调用。
使用步骤: 1. 按下ALT + F11打开VBA编辑器。
2. 在VBA编辑器中,选择要添加宏的工作簿。
3. 在模块中,插入以下VBA代码:Function ChineseNumber(ByVal Value As Variant) As S tringDim MyNumber As CurrencyDim DecimalPlace As IntegerDim Count As IntegerDim DecimalSeparator As StringDim Temp As StringDim DecimalValue As StringDim DecimalWords As StringDim ReturnValue As StringDecimalSeparator = "点"ReDim Place(9) As StringPlace(2) = "十"Place(3) = "百"Place(4) = "千"Place(5) = "万"Place(6) = "十"Place(7) = "百"Place(8) = "千"Place(9) = "亿"' Convert MyNumber to string, separate integral and decimalMyNumber = Trim(CStr(Value))DecimalPlace = InStr(MyNumber, ".")If DecimalPlace > 0 ThenDecimalValue = GetTens(Left(Mid(MyNumber, Decima lPlace + 1) & "00", 2))MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End IfCount = 1Do While MyNumber <> ""Temp = GetHundreds(Right(MyNumber, 3))If Temp <> "" Then ReturnValue = Temp & Place(Co unt) & ReturnValueIf Len(MyNumber) > 3 ThenMyNumber = Left(MyNumber, Len(MyNumber) - 3) ElseMyNumber = ""End IfCount = Count + 1LoopSelect Case ReturnValueCase ""ReturnValue = "零"Case "一十"ReturnValue = "十"End SelectChineseNumber = ReturnValue & DecimalSeparator & Dec imalValueEnd FunctionFunction GetHundreds(ByVal MyNumber)Dim Result As StringIf Val(MyNumber) = 0 Then Exit FunctionMyNumber = Right("000" & MyNumber, 3)' Convert the hundreds place.If Mid(MyNumber, 1, 1) <> "0" ThenResult = GetDigit(Mid(MyNumber, 1, 1)) & "百"End If' Convert the tens and ones place.If Mid(MyNumber, 2, 1) <> "0" ThenResult = Result & GetTens(Mid(MyNumber, 2))ElseResult = Result & GetDigit(Mid(MyNumber, 3))End IfGetHundreds = ResultEnd FunctionFunction GetTens(TensText)Dim Result As StringResult = "" ' Null out the temporary funct ion value.If Val(Left(TensText, 1)) = 1 Then ' If value betw een 10-19...Select Case Val(TensText)Case 10: Result = "十"Case 11: Result = "十一"Case 12: Result = "十二"Case 13: Result = "十三"Case 14: Result = "十四"Case 15: Result = "十五"Case 16: Result = "十六"Case 17: Result = "十七"Case 18: Result = "十八"Case 19: Result = "十九"Case ElseEnd SelectElse ' If value betw een 20-99...Select Case Val(Left(TensText, 1))Case 2: Result = "二十"Case 3: Result = "三十"Case 4: Result = "四十"Case 5: Result = "五十"Case 6: Result = "六十"Case 7: Result = "七十"Case 8: Result = "八十"Case 9: Result = "九十"Case ElseEnd SelectResult = Result & GetDigit _(Right(TensText, 1)) ' Retrieve ones place. End IfGetTens = ResultEnd FunctionFunction GetDigit(Digit)Select Case Val(Digit)Case 1: GetDigit = "一"Case 2: GetDigit = "二"Case 3: GetDigit = "三"Case 4: GetDigit = "四"Case 5: GetDigit = "五"Case 6: GetDigit = "六"Case 7: GetDigit = "七"Case 8: GetDigit = "八"Case 9: GetDigit = "九"Case Else: GetDigit = ""End SelectEnd Function4.按下CTRL + S保存宏。
excel数字转大写的方法数字转换成大写,如果只是一般的数字转换。
可以按下面的步骤操作:1 格式/单元格/数字选项卡中分类选“特殊”-在右侧可以找到大写格式。
如果是转换金额大写,下面是收集的超全的金额大小写转换的公式187个字符=SUBSTITUTE(SUBSTITUTE(TEXT(TRUNC(FIXED(A2)),"[>0][dbnum2]G/通用格式元;[<0]负[dbnum2]G/通用格式元;;")&TEXT(RIGHT(FIXED(A2),2),"[dbnum2]0角0分;;"&IF(ABS(A2)>1%,"整",)),"零角",IF(ABS(A2)<1,,"零")),"零分","整")183个字符=SUBSTITUTE(SUBSTITUTE(IF(A2>-0.5%,,"负")&TEXT(INT(FIXED(ABS(A2))),"[ dbnum2]G/通用格式元;;")&TEXT(RIGHT(FIXED(A2),2),"[dbnum2]0角0分;;"&IF(AB S(A2)>1%,"整",)),"零角",IF(ABS(A2)<1,,"零")),"零分","整")既然已加为精品,那再简化一点,并把200以内的公式贴出,请大家精简或指正.作者公式长度公式wshcw 181 =SUBSTITUTE(SUBSTITUTE(IF(A2>-0.5%,,"负")&TEXT(INT(ABS(A2) +0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(FIXED(A2),2),"[dbnum2]0角0分;; "&IF(ABS(A2)>1%,"整",)),"零角",IF(ABS(A2)<1,,"零")),"零分","整")wshcw 183 =SUBSTITUTE(SUBSTITUTE(IF(A2>-0.5%,,"负")&TEXT(INT(FIXED(A BS(A2))),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(FIXED(A2),2),"[dbnum2]0角0分;;"&IF(ABS(A2)>1%,"整",)),"零角",IF(ABS(A2)<1,,"零")),"零分","整")x.f.zhao 194 =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(A2>-0.5%,,"负")&TEX T(INT(FIXED(ABS(A2))),"[dbnum2]")&TEXT(RIGHT(FIXED(A2),2),"[dbnum2]元0角0分;;元"&IF(ABS(A2)>1%,"整",)),"零角",IF(ABS(A2)<1,,"零")),"零元",),"零分","整"),,TEXT(INT(ABS(A2)+0.5%),"[dbnum2]")&"元")&TEXT(RIGHT(FIXED(A2),2),"[dbn um2]0角0分;;"&IF(ABS(A2)>1%,"整",)),"零角",IF(ABS(A2)<1,,"零")),"零分","整") 69 =IF(A2=0,"零",IF(A2>-0.5%,,"负")&TEXT(INT(ABS(A2)),"[dbnum2]G/通用格式元;;")&SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(FIXED(A2),2),"[dbnum2]0角0分;; "),"零角",IF(ABS(A2)<1,,"零")),"零分","整"))=SUBSTITUTE(SUBSTITUTE(TEXT(TRUNC(FIXED(A2)),"[dbnum2]G/通用格式元;负[dbnum2]G/通用格式元;"&IF(A2>-0.5%,,"负"))&TEXT(RIGHT(FIXED(A2),2),"[db num2]0角0分;;"&IF(ABS(A2)>1%,"整",)),"零角",IF(ABS(A2)<1,,"零")),"零分","整") =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(B8<0,"负",)&TEXT(INT(ABS(B8))," [dbnum2];; ")&TEXT(MOD(ABS(B8)*100,100),"[>9][dbnum2]圆0角0分;[=0]圆整;[db num2]圆零0分"),"零分","整")," 圆零",)," 圆",)=SUBSTITUTE(SUBSTITUTE(TEXT(INT(A1),"[dbnum2]G/通用格式元;;")&TEXT(R IGHT(A1/1%,2),"[dbnum2]0角0分;;"&IF(A1,"整",)),"零角","零"),"零分","整")"大写(人民币):"&IF(A1-INT(A1)<0.005,TEXT(INT(A1),"[dbnum2]")&"元整",IF(A1* 10-INT(A1*10)<0.05,TEXT(INT(A1),"[dbnum2]")&"元"&TEXT(INT(A1*10-INT(A1)* 10),"[dbnum2]")&"角整",TEXT(INT(A1),"[dbnum2]")&"元"&TEXT(INT(A1*10-INT( A1)*10),"[dbnum2]")&"角"&TEXT((FIXED(A1*100,0)-INT(A1*10)*10),"[dbnum2]") &"分"))=IF(ABS(A2)<0.5%,"",SUBSTITUTE(SUBSTITUTE(IF(A2<0,"负",)&TEXT(INT(ABS (A2)+0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(FIXED(A2),2),"[dbnum2]0角0分;;整"),"零角",IF(ABS(A2)<1,,"零")),"零分","整"))um2]G/通用格式元;;")&TEXT(RIGHT(RMB(A1),2),"[dbnum2]0角0分;;"&IF(ABS(A1) >1%,"整",)),"零角",IF(ABS(A1)<1,,"零")),"零分","整")=IF(ABS(A2)<0.5%,"",SUBSTITUTE(SUBSTITUTE(IF(A2<0,"负",)&TEXT(INT(ABS (A2)+0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(RMB(A2),2),"[dbnum2]0角0分;;整"),"零角",IF(ABS(A2)<1,,"零")),"零分","整"))IF(-RMB(A2),SUBSTITUTE(SUBSTITUTE(IF(A2<0,"负",)&TEXT(INT(ABS(A2)+0.5 %),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(RMB(A2),2),"[dbnum2]0角0分;;整"),"零角",IF(ABS(A2)<1,,"零")),"零分","整"),"")=SUBSTITUTE(IF(-RMB(A2),IF(A2<0,"负",)&TEXT(INT(ABS(A2)+0.5%),"[dbnum2] G/通用格式元;;")&TEXT(RIGHT(RMB(A2),2),"[>9][dbnum2]0角0分;[>][dbnum2]0分;整"),""),"零分","整")=SUBSTITUTE(IF(-RMB(A2),IF(A2<0,"负",)&TEXT(INT(ABS(A2)+0.5%),"[dbnum2] G/通用格式元;;")&TEXT(RIGHT(RMB(A2),2),"[>9][dbnum2]0角0分;零[>][dbnum2]0分;整"),""),"零分","整")=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(ABS(A1)<1,,"零")),"零分","整")=TEXT(RMB(A1),"[=]g;"&TEXT(INT(ABS(A1)+0.5%),"[dbnum2]G/通用格式元;;")& SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(RMB(A1),2),"[dbnum2]0角0分;;整"),"零角",IF(ABS(A1)<1,,"零")),"零分","整"))SUBSTITUTE(IF(-RMB(A2),IF(A2<0,"负",)&TEXT(INT(ABS(A2)+0.5%),"[dbnum2] G/通用格式元;;")&TEXT(RIGHT(RMB(A2),2),"[>9][dbnum2]0角0分整;"&IF(ABS(A2 )<1,,0)&"[>][dbnum2]0分;整"),),"零分",)=SUBSTITUTE(IF(-RMB(A2),IF(A2>0,,"负")&TEXT(INT(ABS(A2)+0.5%),"[dbnum2] G/通用格式元;;")&TEXT(RIGHT(RMB(A2),2),"[>9][dbnum2]0角0分;"&IF(A2^2<1,,0)&"[>][dbnum2]0分;整"),),"零分","整")167个字符=SUBSTITUTE(SUBSTITUTE(IF(-RMB(A2),IF(A2>0,,"负")&TEXT(INT(ABS(A2)+0 .5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(RMB(A2),2),"[dbnum2]0角0分;;整") ,),"零角",IF(A2^2<1,,"零")),"零分","整")=SUBSTITUTE(IF(-RMB(A2),IF(A2<0,"负",)&TEXT(INT(ABS(A2)+0.5%),"[dbnum2] G/通用格式元;;")&TEXT(RIGHT(RMB(A2),2),"[>9][dbnum2]0角0分整;"&IF(A2^2<1, ,0)&"[>][dbnum2]0分;整"),),"零分",)另外稍为改一下(166个字符):=TEXT(A2,";负")&SUBSTITUTE(TEXT(INT(ABS(A2)+0.5%),"[dbnum2]G/通用格式元;;")&IF(-RMB(A2),TEXT(RIGHT(RMB(A2),2),"[>9][dbnum2]0角0分整;"&IF(A2^2 <1,,0)&"[>][dbnum2]0分;整"),),"零分",)=TEXT(RMB(A1),"[=]g;"&TEXT(INT(ABS(A1)+0.5%),"[dbnum2]G/通用格式元;;")& SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(RMB(A1),2),"[dbnum2]0角0分;;整"),"零角",IF(A1^2<1,,"零")),"零分","整"))=SUBSTITUTE(IF(-RMB(A2),TEXT(A2,";负")&TEXT(INT(ABS(A2)+0.5%),"[dbnum 2]G/通用格式元;;")&TEXT(RIGHT(RMB(A2),2),"[>9][dbnum2]0角0分;"&IF(A2^2<1, ,0)&"[>][dbnum2]0分;整"),),"零分","整")=SUBSTITUTE(SUBSTITUTE(IF(-RMB(A2,2),TEXT(A2,";负")&TEXT(INT(ABS(A2 )+0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(RMB(A2,2),2),"[dbnum2]0角0分; ;整"),),"零角",IF(A2^2<1,,"零")),"零分","整")=TEXT(LEFT(RMB(A1),LEN(RMB(A1))-3),"[>0][dbnum2]G/通用格式元;[<0]负[dbnu m2]G/通用格式元;;") & TEXT(RIGHT(RMB(A1),2),"[dbnum2]0角0分;;整")TEXT(INT(A3),"[dbnum2]")&"元"&IF(INT(A3*10)-INT(A3)*10=0,"",TEXT(INT(A3* 10)-INT(A3)*10,"[dbnum2]")&"角")&IF(INT(A3*100)-INT(A3*10)*10=0,"整",TEXT(I NT(A3*100)-INT(A3*10)*10,"[dbnum2]")&"分")=IF(OR(B1="",B1=0),"",TEXT(INT(B1),"[dbnum2]G/通用格式元;[dbnum2]G/通用格式元;;")&TEXT(--RIGHT(INT(B1*10)),"[dbnum2]#角;;;")&TEXT(--RIGHT(INT(B1*1 00)),"[dbnum2]#分;;整;"))。
Excel中数字的大小写转换,包括负数和小数,你都会操作吗?数字的大小写转换,应该是一项最基本的技能,如果手工进行,相信大家都会操作,但如果在Excel中对数字大小写转换,包括负数和小数,你还真的不一定会,如果还不掌握此技巧或者从事财务工作的人员,那就得详细的学习一下了。
技巧一:设置单元格格式法。
目的:将“金额”转换为大写形式。
方法:选定目标单元格区域,快捷键Ctrl+1打开【设置单元格格式】对话框,选择【分类】中的【特殊】,选择【类型】中的【中文大写数字】并【确定】即可。
解读:为了便于对比,所以将金额复制在了“备注”列。
技巧二:Numberstring函数法。
功能:按照指定的模式将≥0的数值转换为大写形式。
语法结构:=Numberstring(值或单元格地址,转换形式)。
解读:参数“转换形式”分为1、2、3三种,其中1为“中文小写”;2为“中文大写”;3为“数字大写”。
目的:将“金额”转换为大写形式。
方法:在目标单元格中分别输入:=NUMBERSTRING(G3,1)、=NUMBERSTRING(G3,2)、=NUMBERSTRING(G3,3)。
解读:1、Numberstring函数是系统隐藏函数,所以在编制公式时没有“联想提示”功能。
但参函数语法结构简单,所以也是数值转换的重要手段。
2、从“功能”中就可以看出,此函数只对≥0的数值有效,从结果中也验证了这一点,同时需要注意的时此函数转换后按照四舍五入的规则进行了取整操作。
技巧三:公式法。
目的:将“金额”转换为大写形式。
方法:在目标单元格中输入公式:=TEXT(LEFT(RMB(G3),LEN(RMB(G3))-3),'[dbnum2]G/通用格式元;负[dbnum2]G/通用格式元; ;')&TEXT(RIGHT(RMB(G3),2),'[dbnum2]0角0分;;整')。
解读:此公式相对来说较难理解,但只需修改其中的一个参数即可。
Excel表格怎么自动换算金额大写EXCEL表格怎么自动换算金额大写:A1是123.45,A2我怎么能出现壹佰贰拾叁元肆角伍分第一步,打开已有的表格,同时把这个网页也打开,稍后能用到这个公式。
因为公式太长,必须得用复制,粘贴的方法,才保准。
第二步,复制公式,冒号后一个也不能落下。
即:=SUBSTITUTE(SUBSTITUTE(IF(A1<0,"负","")&TEXT(TRUNC(ABS(ROUND(A1,2))),"[DBNum2]")&"元"&IF(ISERR(FIND(".",ROUND(A1,2))),"",TEXT(RIGHT(TRUNC(R OUND(A1,2)*10)),"[DBNum2]"))&IF(ISERR(FIND(".0",TEXT(A1,"0.00"))),"角","")&IF(LEFT(RIGHT(ROUND(A1,2),3))=".",TEXT(RIGHT(ROU ND(A1,2)),"[D BNum2]")&"分",IF(ROUND(A1,2)=0,"","整")),"零元零",""),"零元","") 。
第三步,双击进入A2,使A2单元格中有光标在闪,点粘贴。
第四步,回车。
2.如果没有小数点的,就直接在单元格右击-设置单元格格式-特殊-中文大写数字。
3. a列格式为数值-货币,b列格式为特殊-中文大写数字-自定义-格式后加上圆整函数:b1=a1EXCEL表格中怎么设置美元的大写金额1.比如说1.2美元输入自动变成“壹美元贰美分”这样。
Excel也可以实现对数字的⼤写转换及读写! Excel中数字⼤写,应⽤的⾮常普遍,尤其是财会⼈员,显得更为重要,但是你真的会对其进⾏设置吗?⼀、单元格格式法。
⽅法:1、选中⽬标单元格。
2、快捷键Ctrl+1打开【设置单元格格式】对话框。
3、选择【分类】-【特殊】-【中⽂⼤写数字】并【确定】。
解读:1、此⽅法的应⽤⾮常的普遍,也较为简单。
可以先录⼊数值然后进⾏转换,也可以先对单元格格式进⾏设置,然后输⼊,达到的效果都是⼀样哦!2、对数字进⾏直接转换,不进⾏四舍五⼊操作。
⼆、函数公式法。
(⼀)、NumberString函数法。
1、功能:对给定的数字根据指定的类型转换为⼤写形式。
2、语法结构:=NumberString(数值或引⽤,转换类型)。
其中转换类型有:1、2、3三种,其中1为“汉字⼩写”、2为“汉字⼤写”、3为“汉字读写”。
⽅法:在⽬标单元格中输⼊公式:=NUMBERSTRING(D3,1)、=NUMBERSTRING(D3,2)、=NUMBERSTRING(D3,3)。
解读:1、Numberstring函数为系统隐藏函数,在系统中是⽆法查询到相关说明的哦,⼤家只需要掌握其语法结构和代码1、2、3代表的意义即可哦!2、从转换的结构中可以得出,Numberstirng函数在转换为指定的类型时是按照“四舍五⼊”的⽅式进⾏的。
例如:66.98的转换结果为:六⼗七、陆拾柒、六七。
所以⼤家要注意哦!(⼆)公式法。
⽅法:在⽬标单元格中输⼊公式:=TEXT(LEFT(RMB(D3),LEN(RMB(D3))-3),'[dbnum2]G/通⽤格式元;负[dbnum2]G/通⽤格式元; ;')&TEXT(RIGHT(RMB(D3),2),'[dbnum2]0⾓0分;;整')。
解读:此公式⽐较复杂,⼤家在使⽤的时候只需要复制即可哦,但需要注意将公式中的参数做对应的修改。
具体请看下图。
教你Excel数字大写三招财务汇总表的合计处,一般都要有数字小写和中文大写两种形式,在 Exce l 软件中如何实现由小写向大写的转换?本文通过如图 1 所示的案例介绍三招,以满足不同要求的用户。
第一招,忽略“角”和“分”时,通过改变单元格数字属性实现转换由 B2 单元格中的数据向 B3 单元格转换的步骤如下:第一步、在 B3 单元格输入公式“ =B2 ”。
第二步、选定 B3 单元格,执行“格式-单元格”命令,打开“单元格格式”对话框,单击“数字”选项卡,在“分类”列表框内选择“特殊”,在“类型”列表框内选择“中文大写数字”,如图 2 所示,单击 [ 确定 ] 按钮。
设置对齐方式为“右对齐”。
如果单元格中显示“ ###### ”,说明本单元格要显示内容的宽度大于列宽,需要增加列宽或合并单元格。
第三步、在 C3 单元格内输入“元整”二字,设置对齐方式为“左对齐”。
第二招,需要将元、角、分填写齐全时,通过插入内置函数实现转换由 B5 单元格中的数据向 B6 单元格转换可以插入函数如下:激活 B6 单元格,输入“ =TEXT(INT(ROU ND(B5,2)),"[dbnum2]")&" 元 "& TEXT(INT(ROUND(B5,2)*10)-INT(ROUND(B5,2))*10,"[dbnum2]")&" 角 "&TEXT (INT(ROUND(B5,2)*100)-INT(ROUND(B5,2)*10)*10,"[dbnum2]")&" 分" ”。
函数简析:函数分成三个部分,在第一部分中, ROUND(B5,2) 是将 B5 单元格中的数字四舍五入到百分位; INT(ROUND(B5,2)) 是取 ROUND(B5,2) 的整数部分; TEXT(INT(ROUND(B5,2)),"[dbnum2]") 是将 INT(ROUND(B5,2)) 转化成中文大写形式; & 把单位“元”前面的中文大写字符串和“元”连接。
在EXCEL中将数字转换为人民币大写的三种方式鉴于EXCEL本身提供将数字转换为大写表示的功能根本不能正常应用在实际投标或财务应用之中,所以要自己建设,暂时找到了三种实现途径,经过测试均功能正常,还有一种是在书上找到的,懒得KEYIN进来了,反正也差不多了。
方法1,通过在EXCEL表格框(例如在“B1”单元)中直接输入以下公式:=IF(A1<0,"金额为负无效",(IF(OR(A1=0,A1=""),"(人民币)零元",IF(A1<1,"(人民币)",TEXT(INT(A1),"[dbnum2](人民币)G/通用格式")&"元"))))&IF((INT(A1*10)-INT(A1)*10)=0,IF(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”中输入数字,就可看到效果。
方法2,通过VBA(宏)输入转换公式: 点击菜单“工具”->“宏”->“VisualBasic编辑器”,在编辑器窗口中,点击菜单“插入”->“模块”,在出现的窗口中输入以下内容:Function daxie(ByVal Num) ' 人民币中文大写函数Application.Volatile TruePlace = "分角元拾佰仟万拾佰仟亿拾佰仟万"Dn = "壹贰叁肆伍陆柒捌玖"D1 = "整零元零零零万零零零亿零零零万"If Num < 0 Then FuHao = "(负)"Num = Format(Abs(Num), "###0.00") * 100If Num > 999999999999999# Then: daxie = "数字超出转换范围!!": Exit FunctionIf Num = 0 Then: daxie = "零元零分": Exit FunctionNumA = Trim(Str(Num))NumLen = Len(NumA)For J = NumLen To 1 Step -1 ' 数字转换过程temp = Val(Mid(NumA, NumLen - J + 1, 1))If temp <> 0 Then ' 非零数字转换NumC = NumC & Mid(Dn, temp, 1) & Mid(Place, J, 1) Else ' 数字零的转换If Right(NumC, 1) <> "零" ThenNumC = NumC & Mid(D1, J, 1)ElseSelect Case J ' 特殊数位转换Case 1NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, J, 1)Case 3, 11NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, J, 1) & "零"Case 7If Mid(NumC, Len(NumC) - 1, 1) <> "亿" ThenNumC = Left(NumC, Len(NumC) - 1) & Mid(D1, J, 1) & "零"End IfCase ElseEnd SelectEnd IfEnd IfNextdaxie = "(人民币)" & FuHao & Trim(NumC)End Function然后切换回excel,在“A2”单元中输入数字,在“B2”单元中输入:“=DaXie(A2)”,就可看到效果。
把阿拉伯数字转化成中文小写数字,我们都知道,通过单元格格式设置就可以实现,如下图:但是上面的转化有时并不能满足我们的需求,比如,我们需要把13转化成十三,而不是一十三,这时我们该怎么办呢?下面我们先学习下把阿拉伯数字转化成中文数字的一个函数。
一、NUMBERSTRING功能:EXCEL中隐藏了一个将小写数字转换成中文大写数字的函数:NUMBERSTRING,此函数可以方便的实现小写数字到中文大写数字的转化,而且有三个参数可以选择,以展现三种不同的大写方式。
此函数仅支持正整数,不支持有小数的数字。
语法:=NUMBERSTRING(VALUE,TYPE)value:要转化的数字type:返回结果的类型,有三种:1,2,3示例:=NumberString(1234567890,1) 返回结果:一十二亿三千四百五十六万七千八百九十=NumberString(1234567890,2) 返回结果:壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾=NumberString(1234567890,3) 返回结果:一二三四五六七八九〇[dbnum1]是将阿拉伯数字转换为汉字,如:123转换为一二三[dbbun2]是转换成大写汉字,如:123转换为壹贰叁[dbnum3]是转换为全角数字,如:123转换为123d代表日期之中的日,m日期中的月,y日期中的年,h日期中的小时,m日期中的分,s是日期中的秒,e也表示年,b表示佛历年。
=TEXT(10,"[DBnum1]")结果为“一十”,=TEXT(10,"[DBnum1]d")结果为“十”到这里大家就知道怎么把13变为十三了吧!三、中文小写转阿拉伯如下图:上图中列举了阿拉伯数字转中文小写数字的两种思路:公式一:=MATCH(A2,TEXT(ROW($1:$151),"[dbnum1]"),0)先用row函数构造一个1到151的序列号数组,然后用text把这个数组转化为中文小写的数字序列,最后用match查找目标单元格在这个序列中的位置即为该中文小写数字对应的阿拉伯数字。