基于Excel的金额数字大写
- 格式:pdf
- 大小:1019.97 KB
- 文档页数:2
怎样在EXCEL中数字转人民币大写1.第一种方法:通过函数嵌套实现数字转人民币大写形式的公式是:=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*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]")&"分")数字转人民币大写形式的公式是:="大写金额:"&IF(TRIM(B1)="","",IF(B1=0,"","人民币"&IF(B1<0,"负",)&IF(INT(B1),TEXT(INT(ABS(B1)),"[dbnum2]")&"元",)&IF(INT(ABS(B1)*10)-INT(ABS(B1))*10,TEXT(INT(ABS(B1)*10)-INT(ABS(B 1))*10,"[dbnum2]")&"角",IF(INT(ABS(B1))=ABS(B1),,IF(ABS(B1)<0.1,,"零")))&IF(ROUND(ABS(B1)*100-INT(ABS(B1)*10)*10,),TEXT(ROUND(ABS(B1)*100 -INT(ABS(B1)*10)*10,),"[dbnum2]")&"分","整")))12508.34 大写金额:壹万贰仟伍佰零捌元叁角肆分数字转人民币大写形式的公式是:="大写金额:"&IF(TRIM(B1)="","",IF(B1=0,"",""&IF(B1<0,"负",)&IF(INT(B1),TEXT(INT(ABS(B1)),"[dbnum2]")&"元",)&IF(INT(ABS(B1)*10)-INT(ABS(B1))*10,TEXT(INT(ABS(B1)*10)-INT(ABS(B 1))*10,"[dbnum2]")&"角",IF(INT(ABS(B1))=ABS(B1),,IF(ABS(B1)<0.1,,"零")))&IF(ROUND(ABS(B1)*100-INT(ABS(B1)*10)*10,),TEXT(ROUND(ABS(B1)*100 -INT(ABS(B1)*10)*10,),"[dbnum2]")&"分","整")))这类转换的格式没有“人民币”字样1.第二种方法:通过宏VBA自定义函数实现第一步:按下ALT+F11组合键,或者是单击工具——宏——Visual Basic 编辑器,进入Visual Basic编程环境,单击“插入” 菜单——模块,复制下面代码,保存,退出关闭。
excel金额大小写转换公式的用法Excel中经常需要使用到金额大小写转换公式对金额进行转换,金额大小写转换公式具体该如何使用呢?接下来是店铺为大家带来的excel金额大小写转换公式的用法,供大家参考。
excel金额大小写转换公式用法(一)步骤1:数字转人民币大写形式的公式是:=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*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]")&"分")步骤2:数字转人民币大写形式的公式是:="大写金额:"&IF(TRIM(B1)="","",IF(B1=0,"","人民币"&IF(B1<0,"负",)&IF(INT(B1),TEXT(INT(ABS(B1)),"[dbnum2]")&"元",)&IF(INT(ABS(B1)*10)-INT(ABS(B1))*10,TEXT(INT(ABS(B1)*10)-INT(ABS(B1))*10,"[dbnum2]")&"角",IF(INT(ABS(B1))=ABS(B1),,IF(ABS(B1)<0.1,,"零")))&IF(ROUND(ABS(B1)*100-INT(ABS(B1)*10)*10,),TEXT(ROUND(ABS(B1)*100-INT(ABS(B1)*10)*10,),"[dbnum2]")&"分","整")))excel金额大小写转换公式用法(二)步骤1:通过宏VBA自定义函数实现第一步:按下ALT+F11组合键,或者是单击工具——宏——Visual Basic编辑器,进入Visual Basic编程环境,单击“插入” 菜单——模块,复制下面代码,保存,退出关闭。
Excel中如何利用公式将数字金额转化成大写用Excel制作财务报表的时候,经常需要将数字表示为大写的中文数字金额。
一般情况下,我们可以用设置“单元格格式”的方法来实现自动转换大写金额,但是这种方法转换出来的大写金额存在两个方面的问题(见图一):1、当数字为整数时,比如B1单元格的数值为5560,将D1单元格设置格式为中文大写数字,输入公式“=B1”,其转换出来的大写为“伍仟伍佰陆拾”,实际工作中,D1单元格的值应该为“伍仟伍佰陆拾元整”,才能满足财务要求。
2、当数字带有小数时,比如B2单元格的数值为5824.56,将D2单元格设置格式为中文大写数字,输入公式“=B2”,其转换出来的大写为“叁仟捌佰贰拾肆点伍陆”,实际工作中,D2单元格的值应该为“叁仟捌佰贰拾肆元伍角陆分”,才能满足财务要求。
实际工作中,我们可以采取公式的方法来解决上述问题。
具体做法如下:在D1单元格输入公式:=IF(INT(B2)=0,"",TEXT(INT(B2),"[DBNum2]")&"元")&IF(INT(B2*100)=INT(B2)*100,"整",IF(OR(INT(B 2*10)=0,INT(B2)=B2),"",IF(INT(B2*10)=INT(B2)*10,"零",RIGHT (TEXT(INT(B2*10),"[DBNum2]"),1)&"角")&IF(INT(B2*100)=INT (B2*10)*10,"整",RIGHT(TEXT(ROUND(B2,2),"[DBNum2]"),1)&"分")))。
效果见图二。
excel表人民币大写公式
首先,在单元格输入【=NUMBERSTRING(F2,2)】(F2代表需要转换成大写数值的单元格),确定即可;其次,选中需转换的单元格,鼠标右键单击,依次选择【设置单元格格式】-【数字】-【特殊】-【中文大写数字】,【确定】即可。
方法一
用【NUMBERSTRING】公式,如:将F2单元格的4500转换成大写,则在G2输入公式
【=NUMBERSTRING(F2,2)】,然后点击空白单元格或按键盘上【回车】键就能得出:肆仟伍佰;
方法二
在表格中输入数值,选中想要转化为大写的数字单元格,鼠标右键选择【设置单元格格式】,在弹出来的设置对话框选择第一排的【数字】,分类中找到【特殊】,选择【中文大写数字】,点击【确定】就可以转换成大写。
excel转大写金额函数Excel转大写金额函数,也叫数字转大写中文函数,它可以把数字金额用中文汉字表示出来。
使用该函数的步骤很简单,比如:1.打开Excel文件,在“开发”菜单中点击“宏”菜单,然后点击“编辑”按钮。
2.在把以下代码复制到编辑窗口中:Function XNumToChn(Num As Double)Select Case NumCase 0:XNumToChn = "零"Case 1:XNumToChn = "壹"Case 2:XNumToChn = "贰"Case 3:XNumToChn = "叁"Case 4:XNumToChn = "肆"Case 5:XNumToChn = "伍"Case 6:XNumToChn = "陆"Case 7:XNumToChn = "柒"Case 8:XNumToChn = "捌"Case 9:XNumToChn = "玖"Case Else:XNumToChn = ""End SelectEnd Function3.保存代码,关闭窗口。
4.用此函数,在你需要的单元格上输入公式:=XNumToChn(你输入的数字)5.按下回车,该函数将把数字金额转换为大写金额。
以上是Excel转大写金额函数的使用步骤,很简单吧!它可以有效提升工作效率,避免了手动劳动,是一款极大的便利。
Excel转大写金额函数的实质是编程的一种应用。
因此,所有的Excel转大写金额函数,在把数字金额转换为大写金额时,都是根据特定的编程规则来进行的。
有了此函数,就不需要手动地一个个把数字金额换算成中文金额,使用此函数,可以把数字金额转换为直观的大写金额,十分便利。
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中金额大小写转换(四舍五入都OK)工程造价,财务常用,小写金额自动转换为大写金额,四舍五入都OK Excel中金额大小写转换编制工程造价很有用编制EXCEL财务表也很有用Excel中金额大小写转换函数[=ntoc(单元格)]一、使用加载宏方法:对于有四舍五入都没问题啊“工具栏”→ “宏”→ “Visual Basic编辑器”,在“Visual Basic编辑器”中顶部选“插入”→ “模块”,在“模块”对话框中选“通用”,并在编辑区域内粘贴以下内容:Function NtoC(n) 'n as singleConst cNum = "零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分"Const cCha = "零仟零佰零拾零零零零零亿零万零元亿万零角零分零整-零零零零零亿万元亿零整整" NtoC = ""n = Round(n, 2)sNum = Trim(Str(Int(n * 100)))For i = 1 To Len(sNum) '逐位转换NtoC = NtoC + Mid(cNum, (Mid(sNum, i, 1)) + 1, 1) + Mid(cNum, 26 - Len(sNum) + i, 1)NextFor i = 0 To 11 '去掉多余的零NtoC = Replace(NtoC, Mid(cCha, i * 2 + 1, 2), Mid(cCha, i + 26, 1))NextEnd Function然后单击“保存”,关闭“Visual Basic编辑器”,回到“工作表1”,输入函数“=NtoC(单元格)”即可。
例如在单元格A1输入:A1=222, 在单元格A2输入:A2=NTOC(A1) 即可,这样A1单元格输入的数变化,A2单元格的大写自动变化。
A2单元格最好进行单元锁定。
在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)”,就可看到效果。
一、介绍Excel金额大写自动生成的公式在日常工作中,我们经常会遇到需要将阿拉伯数字金额转换为大写金额的情况。
而在Excel中,我们可以利用公式来实现这一转换,从而提高工作效率。
本文将介绍Excel中金额大写自动生成的公式的使用方法和注意事项。
二、公式的基本原理1. 在Excel中,可以利用VBA编程语言来编写宏以实现金额大写自动生成的功能。
通过编写相应的VBA代码,可以使Excel自动将输入的数字金额转换为大写金额。
2. 公式的基本原理是将输入的阿拉伯数字金额拆分成整数和小数部分,然后分别进行转换为大写金额,最后将整数和小数部分的大写金额合并为最终结果。
三、公式的具体实现步骤1. 在Excel中,首先需要按下Alt + F11组合键打开VBA编辑器,在项目资源管理器中选择需要添加宏的工作簿。
2. 在选中的工作簿中插入一个新的模块,然后在模块中编写相应的VBA代码。
可以借助搜索引擎查找金额大写自动生成的VBA代码,然后将其粘贴到模块中。
3. 在编写完成VBA代码后,可以利用快捷键Alt + F8来运行宏,或者将宏添加到快速访问工具栏,方便日常使用。
四、注意事项1. 在使用金额大写自动生成的公式时,需要确保输入的金额格式正确,且没有特殊符号和字母等非数字字符。
2. 由于VBA代码的复杂性和灵活性,建议在使用前充分了解其功能和运行原理,以避免出现不必要的错误和问题。
3. 在日常工作中,需要根据具体的需求,对金额大写自动生成的公式进行必要的修改和调整,以满足不同的应用场景。
五、结语通过以上介绍,相信大家对Excel金额大写自动生成的公式有了一定的了解。
在实际工作中,合理利用Excel的功能和公式,可以提高工作效率,减少重复劳动,帮助我们更好地处理各类金额转换的需求。
希望本文的介绍能够对大家有所帮助。
六、如何修改VBA代码以适应不同的需求1. 调整显示格式:根据实际需求,我们可以修改VBA代码中的显示格式,包括小数点后保留位数、显示大写金额的格式等。
excel中如何将数字变成大写金额的函数如何在Excel中将数字转化为大写金额在Excel中,我们经常需要将数字转化为大写金额,以便更直观地展示数值。
虽然Excel本身并没有提供直接将数字转化为大写金额的函数,但我们可以通过一些方法来实现这个功能。
本文将介绍两种常用的方法,分别是使用Excel的内置函数和使用自定义宏。
一、使用Excel的内置函数Excel提供了一个内置的函数——“人民币大写”函数,可以将数字转化为大写金额。
下面是使用该函数的步骤:步骤1:打开Excel并选择一个单元格,例如A1,用于输入要转化的数字。
步骤2:在另一个单元格中,例如B1,输入以下公式:=人民币大写(A1)步骤3:按下回车键,即可将A1单元格中的数字转化为大写金额。
需要注意的是,“人民币大写”函数只能将数字转化为中文大写金额,而不能转化为其他语言的大写金额。
如果需要转化为其他语言的大写金额,可以考虑使用自定义宏的方法。
二、使用自定义宏自定义宏是一种基于VBA(Visual Basic for Applications)语言的编程方式,可以在Excel中实现各种自定义功能。
下面是使用自定义宏将数字转化为大写金额的步骤:步骤1:按下Alt+F11键,打开VBA编辑器。
步骤2:在VBA编辑器中,选择“插入”菜单,然后选择“模块”。
步骤3:在新建的模块中,输入以下VBA代码:```Function ConvertToChineseNumber(ByVal MyNumber)Dim MyCurrency, DecimalPlace, CountReDim Place(9) As StringPlace(2) = " Thousand "Place(3) = " Million "Place(4) = " Billion "Place(5) = " Trillion "' Convert MyNumber to String, trimming extra spaces.MyNumber = Trim(CStr(MyNumber))' Check for valid input.If MyNumber = "" ThenConvertToChineseNumber = ""Exit FunctionEnd If' Convert MyNumber to Currency figures.ReDim DecimalPlace(9) As StringDecimalPlace(2) = " Hundred "DecimalPlace(3) = " Thousand "DecimalPlace(4) = " Million "DecimalPlace(5) = " Billion "' Convert MyNumber to Currency figures.MyNumber = Trim(CStr(MyNumber))' Remove leading zeros' DecimalPlace = GetVal(Trim(Mid(MyNumber, DecimalPlace + 1, 2)))Count = 1Do While MyNumber <> ""ReDim Preserve MyCurr(Count) As StringCount = Count + 1MyCurr(Count - 1) = GetTens(Trim(Mid(MyNumber, 1, 2)), MyNumber)If Len(MyNumber) > 2 ThenMyNumber = Trim(Mid(MyNumber, 3))ElseMyNumber = ""End IfLoopCount = Count - 1For DecimalPlace = Count To 1 Step -1MyCurrency = MyCurrency & " " & MyCurr(DecimalPlace) If DecimalPlace = 1 Then' -- If place is ten thousand and greater than 0 set nother name to RupeesIf Len(MyNumber) = 1 Then MyCurr(1) = " and " & MyCurr(1)MyCurrency = MyCurrency & Place(DecimalPlace)End IfNext DecimalPlaceConvertToChineseNumber = MyCurrencyEnd FunctionFunction GetTens(TensText, ByVal Amount)Dim Result As StringResult = "" ' Null out the temporary function value.If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19...Select Case Val(TensText)Case 10: Result = "Ten"Case 11: Result = "Eleven"Case 12: Result = "Twelve"Case 13: Result = "Thirteen"Case 14: Result = "Fourteen"Case 15: Result = "Fifteen"Case 16: Result = "Sixteen"Case 17: Result = "Seventeen"Case 18: Result = "Eighteen"Case 19: Result = "Nineteen"Case ElseEnd SelectElse ' If value between 20-99...Select Case Val(Left(TensText, 1))Case 2: Result = "Twenty "Case 3: Result = "Thirty "Case 4: Result = "Forty "Case 5: Result = "Fifty "Case 6: Result = "Sixty "Case 7: Result = "Seventy "Case 8: Result = "Eighty "Case 9: Result = "Ninety "Case ElseEnd SelectResult = Result & GetDigit _(Right(TensText, 1)) ' Retrieve ones place. End IfGetTens = ResultEnd FunctionFunction GetDigit(Digit)Select Case Val(Digit)Case 1: GetDigit = "One"Case 2: GetDigit = "Two"Case 3: GetDigit = "Three"Case 4: GetDigit = "Four"Case 5: GetDigit = "Five"Case 6: GetDigit = "Six"Case 7: GetDigit = "Seven"Case 8: GetDigit = "Eight"Case 9: GetDigit = "Nine"Case Else: GetDigit = ""End SelectEnd Function```步骤4:按下Ctrl+S保存宏,并关闭VBA编辑器。
全国中文核心期刊·
财会月刊□.中旬票据、合同、审计报告、资产评估报告等许多方面都会用到金额数字的大写。
手工填写大写数字常会出现书写格式不合规或汉字书写错误,而利用计算机根据《会计基础工作规范》中对大写数字的格式规定及日常书写习惯自动对小写数字进行转换,则能有效地避免错误发生。
Excel 是财会工作中的常用工具,利用Excel 就可以方便地完成金额数字的大写转换。
一、金额数字大写转换方法
1.公式法。
公式法,即利用Excel 内部函数组合成公式,直接将小写转换为大写的方法。
利用“公式=SUBSTITUTE (SUBSTITUTE (IF (EXACT (E2,“”),“人民币”&IF (-RMB (E2,2),TEXT (E2,“;负”)&TEXT (INT (ABS (E2)+0.5%),“[dbnum2]G/通用格式元;;”)&TEXT (RIGHT (RMB (E2,2),2),“[dbnum2]0角0分;;整”),“零元整”)),“零角”,IF (E2^2<1,,“零”)),“零分”,“整”)”可以实现对某一单元格的转换(这里本文假设待转换数据在A7单元格,下同),结合填充柄则可以实现一系列数据的转换。
此公式具备以下特点:
(1)在转换的大写金额前加货币名称,如0.45转换后显示“人民币肆角伍分”。
(2)在转换的负数前加汉字“负”,如原0.45转换后显示“人民币负肆角伍分”。
(3)能区别空白单元格与值为0的单元格,如将空白单元格转换后保留空白单元格,0转换为“人民币零元整”。
(4)对小数点后多于两位的小数进行四舍五入,保留两位小数,如0.455转换后显示“人民币肆角陆分”。
(5)既能转换数值型数字,也能转换文本型数字。
(6)代码更精练,录入、理解和再加工更方便。
操作方法:在待转换区域输入待转换数据,在转换单元格输入如上公式,并将公式中的“A7”替换为待转换数据所在的单元格引用,即可完成转换。
如果待转换数据有多个,则第一个数据转换完成后,选中转换数据所在的单元格,利用填充柄
即可完成多个数据的转换。
2.编程法。
编程法,即利用VBA 编程,生成自定义函数(或生成自定义按钮),需转换时,调用自定义函数(或点击自定义按钮)完成转换的方法。
(1)自定义函数法。
利用Excel 中“工具”菜单中的“宏”选项“Visual Basic 编辑器”编辑如下程序代码:
Function numtocn (M )If M <>“”Then '∗∗∗从此行开始∗∗∗
aa=Application.Text (M ,“0.00;0.00;0;错”)
If aa=“错”Then numtocn=“错误值”Else
If aa=0Then yjf =“零元整”Else
xiao =Replace (Replace (Application.Text (Right (aa ,2),“[DBnum2]0角0分”),“零角零分”,“整”),“零分”,“整”)
If Left (aa ,1)=“0”Then
xiao=Replace (xiao ,“零角”,“”)Else
xiao=Replace (xiao ,“零角”,“零”)End If
zheng=Replace (Application.Text (Left (aa ,Len (aa )-3),“[dbnum2]”)&“元”,“零元”,“”)
If M<0Then zheng=“负”&zheng End If
yjf=zheng &xiao End If
numtocn=“人民币”&yjf End If
Else
基于Excel 的金额数字大写
转换方法及原理分析
邢伟平
(张家口职业技术学院河北张家口075000)
【摘要】金额数字大写在财会领域具有广泛用途,利用公式法或编程法可以方便地实现金额数字的大写转换。
通过对大写转换的原理进行分析,既可以帮助信息使用者理解转换方法,
又能为转换方法的拓展与改进提供参考。
【关键词】Excel 金额数字大写转换公式法编程法·95·
□
□财会月刊·
全国优秀经济期刊.中旬
numtocn=“”End If '∗∗∗到此行结束∗∗∗
End Function
该程序代码具备的功能与公式法基本相同。
操作方法:打开“Visual Basic 编辑器”,选择“插入”菜单中“模块”项,输入上述代码并保存退出。
在待转换区域输入待转换数据,在转换单元格输入“公式=numtocn (A7)”,并将该公式中的“A7”替换为待转换数据所在的单元格引用,即可完成转换。
如果待转换数据有多个,则第一个数据转换完成后,选中转换数据所在的单元格,利用填充柄就可以完成多个数据的转换。
(2)自定义按钮法。
利用Excel 中“工具”菜单中的“宏”选项“Visual Basic 编辑器”编辑如下程序代码:
Sub changetocn ()
M=ActiveCell.Value
……此部分程序代码与上面“从此行开始”至“到此行结束”一段程序代码相同,只是需要将这一段中的“numtocn ”替换为“nn ”。
ActiveCell.Value=nn End Sub
该程序代码具备的功能与公式法基本相同。
操作方法:打开“Visual Basic 编辑器”,选择“插入”菜单中“模块”项,输入上述代码并保存退出。
在Excel “视图”菜单打开“工具栏”中“窗体”菜单项,点选“按钮”图标,在适当位置插入一个按钮,并为该按钮“指定宏”为“changetocn ”。
需转换时,选中待转换单元格,点击该按钮即可完成转换。
二、金额数字大写转换的原理分析
无论应用公式法还是编程法,其基本思路如右上图所示。
第1步,判断待转换单元格是否为空,当单元格为空时结束转换,否则进入第2步。
第2步,判断待转换单元格内容是否为阿拉伯数字,如果是阿拉伯数字,则对待转换数据的绝对值进行四舍五入保留两位小数,并进入第3步;否则提示数据有错误并结束转换。
第3步,当四舍五入保留两位小数后的值为0时,返回字符串“零元整”,否则进入第4步。
第4步,转换为“X 元X 角X 分”(这里X 表示若干汉字大写数字,下同)或“负X 元X 角X 分”形式。
第4.1步,判断数字是否为负数,当是负数时,返回字符串“负”,否则返回空值。
第4.2步,取整数部分,整数部分为0则返回空值,否则转换为“X 元”形式。
第4.3步,取小数部分,根据小数部分的不同值,分别转换为“整”、“X 角整”、“X 分”、“零X 分”和“X 角X 分”形式。
第4.4步,将第4.1步至第4.3步连接为要求形式。
第5步,转换为“人民币X 元X 角X 分”或“人民币负X 元X 角X 分”形式,并最终完成整体转换。
三、公式法与编程法的比较
公式法简单易学,对于初学者,可以依靠Excel 的帮助快速掌握公式的原理,从而对公式进行增删、修改或功能扩充,以更好地使用公式。
但公式法的通用性不强,在其他Excel 文件中使用时操作较烦琐,且公式较长,录入中也易出错。
编程法需要使用者具备一定的VBA 编程知识方可达到灵活运用的目的。
但编程法通用性强,可以方便地应用在不同的Excel 文件中。
其中,自定义函数法可以方便地实现一个数据区域的转换,而自定义按钮法可以方便地实现单个单元格数据的转换。
四、结束语
虽然广大财会工作者对Excel 掌握的水平不同,但是方便、快捷地实现金额数字大写转换的需求是相同的。
而实现金额数字的大写转换有多种方法,本文列举了公式法和编程法,旨在提供一种利用Excel 解决问题的思路。
同时,利用原理解析,可以帮助信息使用者更好地理解转换方法,以及为信息使用者提升转换质量、增加转换功能提供借鉴。
主要参考文献
1.张敏.Excel 中将金额小写格式转换为大写格式的几种方法.农业网络信息,2006;7
2.郭大波,孟素琴.货币数字/中文转换算法分析.电脑开发与应用,2001;2
3.王光伟.Excel 环境下金额数字大写转换的方法探讨.中国管理信息化,2009;6
金额数字大写转换原理分析示意图
□·96·。