人民币大小写转换函数
人民币大写转换自定义函数
![人民币大写转换自定义函数](https://img.taocdn.com/s3/m/71c18807abea998fcc22bcd126fff705cc175c13.png)
人民币大写转换自定义函数本人觉得比较符合银行支票等票据填写要求的人民币大写转换自定义函数,共2个,区别是,后一个自定义函数元后面总有零。
Function RMBDX(M)Dim a As VariantRMBDX = Replace(Replace(Replace(Join(Application.Text(Split(Format(M, ' 0. 0 0;负 0. 0 0;')), ['[DBnum2]'&{0,'','元0角;;元零','0分;;整'}]), a), '零元零', a), '零元', a), '零整', '整')End FunctionFunction dx(M)Dim a As Variantdx = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Repl ace(Replace(Application.Text(Format(M, '.012034;;0'), '[=]g;[DBnum2]'), '.', '元零'), '叁肆', '分'), '壹贰', '角'), '零分', '整'), '零角', a), '零元零', a), '零元', a), '零整', '整'), '-', '负')End Function【使用方法】:在打开的工作簿中,按Alt F11,进入VBE界面,按Alt i m插入一个模块,将自定义函数代码粘贴(或输入)到其中,再次按Alt F11返回工作表单元格中,输入自定义函数名称及参数,即可返回大写。
VB人民币大小写转换涵数
![VB人民币大小写转换涵数](https://img.taocdn.com/s3/m/12975a0c5627a5e9856a561252d380eb6394235f.png)
VB人民币大小写转换涵数'|人民币大小写转换涵数Public Function RmbStr(ByVal sNum As String, _ Optional BITs As String = ",拾,佰,仟", _Optional UNITs As String = ",万,亿,兆,万兆", _Optional ByVal Yuan As String = "元", _Optional ByVal Jiao As String = "角", _Optional ByVal Fen As String = "分") As StringsNum = sNumIf Val(sNum) < 0 ThenRmbStr = "零" & YuanExit FunctionEnd IfDim sIntD, sDecD As StringDim I, iCount, j, iLength As IntegerDim lStartPos As LongDim sBIT() As String, sUNIT() As String, sCents(2) As StringsBIT = VBA.Split(BITs, ",")sUNIT = VBA.Split(UNITs, ",")sCents(0) = FensCents(1) = JiaoDim temp As StringIf InStr(sNum, ".") > 0 Thentemp = Left(sNum, InStr(sNum, ".") - 1)Elsetemp = sNumEnd IfiCount = IIf(Len(temp) Mod 4, Len(Trim(temp)) \ 4 + 1, Len(Trim(temp)) \ 4)lStartPos = 1For I = iCount To 1 Step -1If I = iCount And Len(Trim(temp)) Mod 4 <> 0 TheniLength = Len(Trim(temp)) Mod 4ElseiLength = 4End IfsIntD = Mid(Trim(temp), lStartPos, iLength)For j = 1 To Len(Trim(sIntD))If Val(Mid(sIntD, j, 1)) <> 0 ThenRmbStr = RmbStr & Choose(Val(Mid(sIntD, j, 1)), _"壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖") & _sBIT(Len(Trim(sIntD)) - j)ElseIf Val(Mid(sIntD, j + 1, 1)) <> 0 ThenRmbStr = RmbStr & "零"End IfEnd IfNext jlStartPos = lStartPos + iLengthIf I < iCount ThenIf (Val(Mid(sIntD, Len(Trim(sIntD)), 1)) <> 0 Or _Val(Mid(sIntD, Len(Trim(sIntD)) - 1, 1)) <> 0 Or _Val(Mid(sIntD, Len(Trim(sIntD)) - 2, 1)) Or _Val(Mid(sIntD, Len(Trim(sIntD)) - 3, 1)) <> 0) ThenIf I < UBound(sUNIT) + 1 ThenRmbStr = RmbStr & sUNIT(I - 1)ElseRmbStr = RmbStr & sUNIT(I - 1)End IfEnd IfElseIf I < UBound(sUNIT) + 1 ThenRmbStr = RmbStr & sUNIT(I - 1)End IfEnd IfNextIf Len(Trim(RmbStr)) > 0 ThenRmbStr = RmbStr & YuanEnd If'小数If InStr(1, sNum, ".") <> 0 ThensDecD = Right(sNum, Len(sNum) - InStr(1, sNum, ".")) For I = 1 To Len(Trim(sDecD))If Val(Mid(Trim(sDecD), I, 1)) <> 0 ThenRmbStr = RmbStr & Choose(Val(Mid(Trim(sDecD), I, 1)), _ "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖")RmbStr = RmbStr & sCents(2 - I)If I >= 2 Then Exit ForElseIf Len(Trim(RmbStr)) > 0 Then RmbStr = RmbStr & "零"End IfNext IRmbStr = RmbStr ' & "正"ElseRmbStr = RmbStr & "整" End IfEnd Function。
人民币大小写转换Excel公式
![人民币大小写转换Excel公式](https://img.taocdn.com/s3/m/7778100aba1aa8114431d9b6.png)
人民币大小写转换Excel公式以下假设你在A1单元格中输入金额数字,在其它单元格输入以下公式就可以了公式1=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)),"[DBN um2]"))&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,"","整")),"零元零",""),"零元","")公式2=IF((A1-INT(A1))=0,TEXT(A1,"[DBNUM2]")&"元整",IF(INT(A1*10)-A1*10=0,TEXT(INT(A1),"[DBNUM2]")&"元"&TEXT((INT(A1*10)-INT(A1)*10),"[DBNUM2]")&"角整",TEXT(INT(A1),"[DBNUM2]")&"元"&IF(INT(A1*10)-INT(A1)*10=0,"零",TEXT(INT(A1*10)-INT(A1)*10,"[DBNUM2]")&"角")&TEXT(RIGHT(A1,1),"[DBNUM2]")&"分"))公式3=IF(ABS(A1)<0.005,"",IF(A1<0,"负",)&IF(INT(ABS(A1)),TEXT(INT(ABS(A1)),"[dbnum2]")&"元",)&IF(INT(ABS(A1)*10)-INT(ABS(A1))*10,TEXT(INT(ABS(A1)*10)-INT(ABS(A1))*10,"[db num2]")&"角",IF(INT(ABS(A1))=ABS(A1),,IF(ABS(A1)<0.1,,"零")))&IF(ROUND(ABS(A1)*100-INT(ABS(A1)*10)*10,),TEXT(ROUND(ABS(A1)*100-INT(A BS(A1)*10)*10,),"[dbnum2]")&"分","整"))以上公式包含在附件的excel表格中。
excel自动生成大写元整的函数
![excel自动生成大写元整的函数](https://img.taocdn.com/s3/m/17a39c36eef9aef8941ea76e58fafab069dc4495.png)
excel自动生成大写元整的函数
Excel中有一个函数可以将数字转换成大写元整的形式,即人民币的大写形式。
这个函数叫做“人民币大写”函数,其语法为:=人民币大写(金额)。
其中,“金额”可以是单元格引用或数字。
此函数可以用于财务报表、发票等需要将数字转换成大写元整形式的场合。
使用该函数可以节省手动输入大写元整的时间,同时也避免了误差。
举个例子:如果要将金额1000转换成大写元整的形式,可以在任意单元格输入“=人民币大写(1000)”或者“=人民币大写(A1)”(假设A1单元格里是1000),然后按下回车键即可在当前单元格中显示“壹仟元整”。
除了基本的大写元整形式外,该函数还可以自定义前缀、后缀,以及小数部分的转换方式。
具体语法如下:
=人民币大写(金额, [整数前缀], [整数后缀], [小数前缀], [小数后缀], [小数转换方式])
其中,“整数前缀”、“整数后缀”、“小数前缀”、“小数后缀”可以是任意文字,用于自定义格式。
而“小数转换方式”则可以指定小数部分的转换方式,可选值为0、1、2、3,分别表示四舍五入、向上取整、向下取整、忽略小数部分。
例如,如果要将金额1000转换成“人民币壹仟圆整”的形式,可以输入“=人民币大写(1000, '人民币', '圆整')”,或者“=人民币大写(A1, '人民币', '圆整')”(假设A1单元格里是1000)。
总之,通过这个函数,我们可以非常方便地将数字转换成大写元整的形式,提高工作效率,减少错误率。
人民币大写转换函数
![人民币大写转换函数](https://img.taocdn.com/s3/m/3e71e010590216fc700abb68a98271fe900eaf4a.png)
人民币大写转换函数Function N2RMB(M)y = Int(Round(100 * Abs(M)) / 100)j = Round(100 * Abs(M) + 0.00001) - y * 100f = (j / 10 - Int(j / 10)) * 10A = IIf(y < 1, "", Application.Text(y, "[DBNum2]") & "元")b = IIf(j > 9.5, Application.Text(Int(j / 10), "[DBNum2]") & "角", IIf(y < 1, "", IIf(f > 1, "零", "")))c = IIf(f < 1, "整", Application.Text(Round(f, 0), "[DBNum2]") & "分")N2RMB = IIf(Abs(M) < 0.005, "", IIf(M < 0, "负" & A & b & c, A & b & c))End Function另外一个函数:Function dx(M) '一条语句163个字符dx = Replace(Replace(Replace(Join(Application.Text(Split(Format(M, "0. 0 0;负 0. 0 0; ")), ["[DBnum2]"&{0,"","元0角;;元零","0分;;整"}]),a), "零元零", a), "零元", a), "零整", "整")End Function代码解析:代码中使用了Replace()、Join()、Split()、Format()等4个VBA 函数,以及1个工作表函数T ext()。
excel数字转大写金额函数
![excel数字转大写金额函数](https://img.taocdn.com/s3/m/25036964ac02de80d4d8d15abe23482fb4da022c.png)
excel数字转大写金额函数
Excel数字转大写金额函数
在实际工作中,我们经常会用到把数字表示的金额转换成大写汉字,在Excel中也可以实现这样的转换。
本文介绍利用Excel函数实现转换金额数字为大写汉字的方法。
1、定义函数
在Excel中,要实现将数字转换为大写汉字,可以使用函数:DOLLAR(货币文本)。
其中,具体使用规则如下:
DOLLAR(num,[position])
参数说明:
Num为必需参数,表示要转换的金额数字。
Position为可选参数,表示以几位小数点货币格式显示,默认为2位小数;
2、使用函数
例如,在Excel中,我们想将数字100000转换为大写汉字,通常应该如何操作呢?
首先,我们在Excel中输入数字100000,然后在它旁边的单元格输入函数DOLLAR,最后,在函数后输入参数100000,按回车即可。
此时,可以看出,Excel已经将100000转换为大写汉字“壹拾万元整”了。
- 1 -。
excel表格中数字自动变成人民币大写的函数
![excel表格中数字自动变成人民币大写的函数](https://img.taocdn.com/s3/m/78c1c0dc50e79b89680203d8ce2f0066f53364ad.png)
标题:excel表格中数字自动变成人民币大写的函数在许多日常工作中,我们经常会用到Microsoft Excel这一办公软件来处理数据和表格。
在处理涉及人民币金额的时候,通常需要将数字自动转换成人民币大写的形式,这不仅方便了数据的阅读和理解,也符合财务报表的要求。
下面介绍一种在Excel中实现这一功能的方法,希望对大家有所帮助。
1. 准备工作在使用Excel表格处理人民币金额时,首先需要保证表格中含有人民币金额的数字列。
假设我们要将A列的数字自动转换成人民币大写,我们可以将转换后的结果显示在B列。
2. 编写函数在B列的第一个单元格中,输入以下函数来实现将数字自动转换成人民币大写的功能:=人民币(A1)其中,A1代表了要转换的人民币金额所在的单元格,人民币()为自定义的转换函数名称,可以根据个人喜好进行修改。
3. 自定义函数在Excel中,默认并没有内置的函数来实现将数字转换成人民币大写的功能,因此需要通过自定义宏来实现。
以下是一个示例的自定义函数,供大家参考:Function 人民币(ByVal MyNumber) As StringDim Dollars, Cents, TempDim DecimalPlace, CountReDim place(9) As Stringplace(2) = " Thousand "place(3) = " Million "place(4) = " Billion "place(5) = " Trillion "' String representation of amount.MyNumber = Trim(Str(MyNumber))' Position of decimal place 0 if none.DecimalPlace = InStr(MyNumber, ".")' Convert cents and set MyNumber to dollar amount.If DecimalPlace > 0 ThenCents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) _ "00", 2))MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))End IfCount = 1Do While MyNumber <> ""Temp = GetHundreds(Right(MyNumber, 3))If Temp <> "" Then Dollars = Temp place(Count) Dollars If Len(MyNumber) > 3 ThenMyNumber = Left(MyNumber, Len(MyNumber) - 3)ElseMyNumber = ""End IfCount = Count + 1LoopSelect Case DollarsCase ""Dollars = "No Dollars"Case "One"Dollars = "One Dollar"Case ElseDollars = Dollars " 元"End SelectSelect Case CentsCase ""Cents = " and No Cents"Case "One"Cents = " and One Cent"Case ElseCents = " and " Cents " 分"End Select人民币 = Dollars CentsEnd FunctionFunction GetHundreds(ByVal MyNumber)Dim Result As StringIf Val(MyNumber) = 0 Then Exit FunctionMyNumber = Right("000" MyNumber, 3)If Mid(MyNumber, 1, 1) <> "0" ThenResult = GetDigit(Mid(MyNumber, 1, 1)) " 百"End IfIf Mid(MyNumber, 2, 1) <> "0" ThenResult = Result GetDigit(Mid(MyNumber, 2, 1)) " 十"ElseIf Mid(MyNumber, 1, 1) <> "0" And Mid(MyNumber, 2, 1) = "0" ThenResult = Result " 零"End IfEnd IfIf Mid(MyNumber, 3, 1) <> "0" ThenResult = Result GetDigit(Mid(MyNumber, 3, 1))End IfGetHundreds = ResultEnd FunctionFunction GetTens(TensText)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 = "十"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 between 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. 使用自定义函数在完成自定义函数的编写后,我们可以在B列的第一个单元格中输入=人民币(A1),然后按下Enter键,即可看到A1单元格中的人民币金额被自动转换成人民币大写的形式,并显示在B1单元格中。
excel自动生成大写元整的函数
![excel自动生成大写元整的函数](https://img.taocdn.com/s3/m/cf57f42ffd4ffe4733687e21af45b307e871f93c.png)
excel自动生成大写元整的函数1、背景介绍在日常工作中,我们经常会遇到需要将数字转化为大写汉字的情况,尤其是在财务报表等涉及到人民币的地方。
手动将数字转化为大写汉字费时费力,因此我们可以通过Excel自动生成大写元整的函数来简化工作流程,提高工作效率。
2、Excel生成大写元整的函数Excel生成大写元整的函数是将数字转换为大写汉字的函数,主要用于财务报表、发票等涉及人民币的场合。
以下是Excel自动生成大写元整的函数:=UPPER(IFERROR(IF(A1<0,"负","")&INDEX({"","壹","贰","叁","肆","伍","陆","柒","捌","玖"},INT(MID(TEXT(ABS(A1),"0,00"),LEN(TEXT(ABS(A1),"0,00"))-i+1,1))+1)&IF(i=3,"佰",IF(i=4,"仟",IF(i=5,"万",IF(i=6,"拾万",IF(i=7,"百万",IF(i=8,"千万",IF(i=9,"亿",IF(i=10,"拾亿",IF(i=11,"百亿",IF(i=12,"千亿","")))))))))),""))3、运用场景Excel生成大写元整的函数可以应用于财务报表、发票等需要将数字转化为大写汉字的场合。
excel中如何将数字变成大写金额的函数
![excel中如何将数字变成大写金额的函数](https://img.taocdn.com/s3/m/d066f7c8a1116c175f0e7cd184254b35effd1a50.png)
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函数公式转换人民币大小写](https://img.taocdn.com/s3/m/c5ab6ac0ccbff121dd3683f7.png)
Excel函数公式转换人民币大小写问题:想将A1中人民币的小写数字,在B1中转成人民币大写。
解答:B1中输入=TEXT(A1*100,"[dbnum2]0拾0万0仟0佰0拾0元0角0分")就可以了,如果你不要拾万位,自己可以修改的,如=TEXT(A1*100,"[dbnum2]0万0仟0佰0拾0元0角0分")等形式都可以的。
⑴已知:A1=4.51函数:B1 =TEXT(A1*100,"[dbnum2]0拾0万0仟0佰0拾0元0角0分")结果:零拾零万零仟零佰零拾肆元伍角壹分⑵已知:A1=456789.23函数:B1 =TEXT(A1*100,"[dbnum2]0拾0万0仟0佰0拾0元0角0分")结果:肆拾伍万陆仟柒佰捌拾玖元贰角叁分⑶已知:A1=123456789.2(注:位数不能超过拾万)函数:B1 =TEXT(A1*100,"[dbnum2]0拾0万0仟0佰0拾0元0角0分")结果:壹贰叁肆拾伍万陆仟柒佰捌拾玖元贰角叁分⑷已知:A1=4.51函数:B1=TEXT(A1*100,"[dbnum2]0万0仟0佰0拾0元0角0分")结果:零万零仟零佰零拾肆元伍角壹分⑸已知:A1=23.25函数:B1=TEXT(A1*100,"[dbnum2] 0拾0元0角0分")结果:贰拾叁元贰角伍分⑹已知:B9=123456789.12函数:=IF(B9<=0,,TEXT(INT(B9),"[dbnum2]人民币G/通用格式")&"元"&IF(INT(B9*10)-INT(B9)*10=0,IF(INT(B9)*(INT(B9*100)-INT(B9*10)*10)=0,"","零"),TEXT(INT(B9*10)-INT(B9)*10,"[dbnum2]")&"角")&IF((INT(B9*100)-INT(B9*10)*10)=0,"整",TEXT((INT(B9*100)-INT(B9*10)*10),"[dbnum2]")&"分"))结果:人民币壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角贰分⑺已知:B9=123456789.12函数:=IF(B9<=0,,TEXT(INT(B9),"[dbnum2]G/通用格式")&"元"&IF(INT(B9*10)-INT(B9)*10=0,IF(INT(B9)*(INT(B9*100)-INT(B9*10)*10)=0,"","零"),TEXT(INT(B9*10)-INT(B9)*10,"[dbnum2]")&"角")&IF((INT(B9*100)-INT(B9*10)*10)=0,"整",TEXT((INT(B9*100)-INT(B9*10)*10),"[dbnum2]")&"分"))结果:壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角贰分⑻已知:B9=123456789.12函数:=IF(ROUND(B9,2)=0,"",IF(ROUND(ABS(B9),2)>=1,TEXT(INT(ROUND(ABS(B9),2)),"[DBNum2]")&"元","")&IF(RIGHT(TEXT(B9,".00"),2)*1=0,"整",IF(RIGHT(TEXT(B9,".00"),4)*1>=1,IF(RIGHT(TEXT(B9,".00"),2)*1>9,"","零"),IF(ROUND(ABS(B9),2)>=1,"零",""))&IF(RIGHT(TEXT(B9,".00"),2)*1>9,TEXT(LEFT(RIGHT(TEXT(B9,".00"),2)),"[DBNum2]")&"角","")&IF(RIGHT(TEXT(B9,".00"))*1>0,TEXT(RIGHT(TEXT(B9,".00")),"[DBNum2]")&"分","整")))结果:壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角贰分核心提示:人民币金额大写转换是财务和会计领域的热点问题,网络提供此问题的方法很多,主要有VBA、自定义函数、多种函数嵌套等。
工具函数:人民币数字转大写
![工具函数:人民币数字转大写](https://img.taocdn.com/s3/m/ed1d0ffff9c75fbfc77da26925c52cc58bd69042.png)
⼯具函数:⼈民币数字转⼤写/*《正确填写票据和结算凭证的基本规定》银⾏、单位和个⼈填写的各种票据和结算凭证是办理⽀付结算和现⾦收付的重要依据,直接关系到⽀付结算的准确、及时和安全。
票据和结算凭证是银⾏、单位和个⼈凭以记载账务的会计凭证,是记载经济业务和明确经济责任的⼀种书⾯证明。
因此⼀、中⽂⼤写⾦额数字到"元"为⽌的,在"元"之后,应写"整"(或"正")字,在"⾓"之后,可以不写"整"(或"正")字。
⼤写⾦额数字有"分"的,"分"后⾯不写"整"(或"正")字。
⼆、中⽂⼤写⾦额数字前应标明"⼈民币"字样,⼤写⾦额数字有"分"的,"分"后⾯不写"整"(或"正")字。
三、中⽂⼤写⾦额数字前应标明"⼈民币"字样,⼤写⾦额数字应紧接"⼈民币"字样填写,不得留有空⽩。
⼤写⾦额数字前未印"⼈民币"字样的,应加填"⼈民币"三字。
在票据和结算凭证⼤写⾦额栏内不得预印固定的"仟、佰、拾、万、仟、佰、拾、元、四、阿拉伯数字⼩写⾦额数字中有"0"时,中⽂⼤写应按照汉语语⾔规律、⾦额数字构成和防⽌涂改的要求进⾏书写。
举例如下:1·阿拉伯数字中间有"0"时,中⽂⼤写要写"零"字,如¥1409.50,应写成⼈民币陆壹仟肆佰零玖元伍⾓。
2·阿拉伯数字中间连续有⼏个"0"时,中⽂⼤写⾦额中间可以只写⼀个"零"字,如¥6007.14,应写成⼈民币陆仟零柒元壹⾓肆分。
Excel转换人民币大小写的方法
![Excel转换人民币大小写的方法](https://img.taocdn.com/s3/m/8263bee449649b6649d7471f.png)
Excel转换人民币大小写的方法
大家知道Excel转换人民币大小写吗?下面我们就给大家详细介绍一下吧!我们积累了一些经验,在此拿出来与大家分享下,请大家互相指正。
一、在三个连续的同行单元格中转换
1. B2中输入公式=IF(B12. C2中输入=IF(B13. D2中输入=IF(B1这样在连续的三个同行单元格中实现了大写金额格式的转换。
为了使转换符合财务格式,B2应右对齐,C2列宽无间隔,且不设左右边框线,D2要左对齐。
二、用Excel提供的函数转换
个位为0,则不显示;不为0,显示XXX元”;不为0、且角位和分位均为0,显示XXX元整”;元角分位均为0,则显示零元整”。
小数点后面第一位为0、且元位或分位有一为0,则不显示;为0、且元位和分位均不为0,则显示零”;不为0,显示X角”。
小数点后面第二位为0,则显示整”;不为0,显示X分”。
根据以上思路在B2中输入公式:
IF(B1IF(B1IF(INT(B1)??(INT(B1??100)-INT(B1??10)??10)=0,”“,” 零”),。
Excel金额大小写转换及保留2位小数的函数公式
![Excel金额大小写转换及保留2位小数的函数公式](https://img.taocdn.com/s3/m/bfe5f90559eef8c75fbfb3a5.png)
一、金额大小写转换假设数据源在单元格G5,目标单元格是D1,在D1单元格输入如下公式:=SUBSTITUTE(SUBSTITUTE(IF(G5>-0.5%,,"负")&TEXT(INT(ABS(G5)+0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(FIXED(G5),2),"[dbnum2]0角0分;;"&IF(ABS(G5)>1%,"整",)),"零角",IF(ABS(G5)<1,,"零")),"零分","整")其实用下面这个就可以了,依我看上面公式中的&IF(ABS(G5)>1%,"整",)是多余的!=SUBSTITUTE(SUBSTITUTE(IF(G5>-0.5%,,"负")&TEXT(INT(ABS(G5)+0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(FIXED(G5),2),"[dbnum2]0角0分;;"),"零角",IF(ABS(G5)<1,,"零")),"零分","整")1、这个公式中用了SUBSTITUTE()、IF()、TEXT()、INT ()、ABS()、RIGHT()、FIXED()七个函数,其中TEXT()函数的两次使用都是运用了高级应用,这也是本公式最难看懂的地方,另个为了符合人民币的读数规则;两次使用了SUBSTITUTE()对出现不符合读数规定的字符用有效字符替换,这一点也很重要。
2、本题的基本思路是:一是用IF函数判断需要转换数据的正、负(如果是正数就不用在数值前显示“正”,负则必须显示“负”字);二是用ABS函数对数据源数值进行求绝对值,然后用IND函数对这个绝对值截取整数部分的数值,再把整数部分的数值交由TEXT函数转换成中文大写;三是对小数部分的数值处理,通过用FIXED函数对源数据进行四舍五入保留2位有效数字并用文本显示,然后用RIGHT 函数将显示的文本从右边截取两位数值(即保留的小数位数据),再把这两位数交由TEXT函数转换成中文大写;四是人民币大写最后有个“整”字也补上。
excel金额大小写转换函数
![excel金额大小写转换函数](https://img.taocdn.com/s3/m/24d159edd4bbfd0a79563c1ec5da50e2524dd117.png)
excel金额大小写转换函数
Excel中提供了一个非常实用的函数,可以将数字金额转换为大写金额,方便人们在书写财务报表、发票、合同等文书时使用。
该函数名为“金额大小写转换函数”。
使用方法如下:
1.首先,打开Excel,选择一个单元格,输入要转换的金额数值。
2.在另一个单元格中,输入以下函数:=TEXT(A1,'[中文大写¥#,##0.00]'),其中A1表示要转换的金额所在的单元格。
3.按下Enter键,即可将数字金额转换为中文大写金额。
例如,10000元转换为壹万元整。
注意,如果要转换的金额小数点后有数值,也会被转换为中文大写。
除了中文大写金额外,该函数还支持其他格式的金额大小写转换,如英文大写、日文大写等。
具体格式可以参考Excel的帮助文档。
需要注意的是,Excel金额大小写转换函数只能处理数字金额,如果要转换的金额带有单位或其他字符,需要先进行处理或分离。
总之,Excel金额大小写转换函数是一款非常实用的工具,可以方便快捷地将数字金额转换为大写金额,提高工作效率。
- 1 -。
EXCEL人民币小写转大写
![EXCEL人民币小写转大写](https://img.taocdn.com/s3/m/fc3e7dd676eeaeaad1f330cd.png)
/%F6%CE%D0%CB%CD%F8/blog/item/2740b10d5fceade0aa645757.html EXCEL人民币小写转大写:=IF((D3-INT(D3))=0,TEXT(D3,"[DBNUM2]")&"元整",IF(INT(D3*10)-D3*10=0,TEXT(INT(D3),"[DBNUM2]")&"元"&TEXT((INT(D3*10)-INT(D3)*10),"[DBNUM2]")&"角整",TEXT(INT(D3),"[DBNUM2]")&"元"&IF(INT(D3*10)-INT(D3)*10=0,"零",TEXT(INT(D3*10)-INT(D3)*10,"[DBNUM2]")&"角")&TEXT(RIGHT(D3,1),"[DBNUM2]")&"分"))1:这个嵌套函数所包含的INT函数作用是将任意实数向下取整为最接近的整数,比如A1=13.24,则公式”INT(A1)“返回值13;TEXT函数的作用是就将你数值转换成按指定数字格式表示的文本;嵌套函数中的【dbnum2】作用是数字转中文大写。
2:整个嵌套函数的含义是:如果D3单元格的金额是一个自然数(元整)(”IF((D3-INT(D3)))=0“),那么就将其转换成大写金额后再加上”元整“二字(”TEXT(D3,"[DBNUM2]")&"元整"”);否则,如果D3单元格的金额是一位的小数(角整)(“IF(INT(D3*10)-D3*10=0)”), 就先将D3单元格中的整元的金额转换为大写再加上“元”字(“TEXT(INT(D3),"[DBNUM2]")&"元"”),后面再补充上D3单元格中整角的金额转换为大写并添加上“角整”二字(“&TEXT((INT(d3*10)-INT(D3*10)."[DBNUM2]")&"角整")”);在其他情况下(有元角分),转换后的大写金额由D3单元格中整元的部分加上“元”,“零”(D3单元格中整角的金额为0时)或者D3单元格中的整角的金额,D3单元格中的整分的金额三部分组成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12056.56壹万贰仟零伍拾陆元伍角陆分壹万贰仟零伍拾陆元伍角陆分壹万贰仟零伍拾陆元伍角陆分壹万贰仟零伍拾陆元伍角陆分壹万贰仟零伍拾陆元伍角陆分近来转了转几个EXCEL相关论坛,发现有部分网友在寻求数字金额转换为人民币大写的方法。
出于好奇,我在网上搜索了一番,什么VBA、加载宏,公式函数各式方法争相亮相,应有尽有。
但我的习惯是,只要能用公式解决的问题,坚决不使用VBA。
所以我就特别地关注使用公式来生成的方法,结果是用公式的方法可谓是更加地灿烂缤纷,使人眼花缭乱。
通过分析我收集到的二十几个公式,发现比较牛,适合我口味的公式有三个,在此我将其列出。
公式一:SUBSTITUTE(SUBSTITUTE(IF(A1<0,"负","")&TEXT(TRUNC(ABS(ROUND(A1,2))),"[DBNum2]")&"元"&IF(ISERR(FIND(".",ROUND(A1,2))),"",TEXT(RIGHT(TRUNC(ROU ND(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,"","整")),"零元零",""),"零元","")公式二:CONCATENATE(IF(A1<0,"负",""),TEXT(IF(TRUNC(A1)=0,"",TRUNC(ABS(A1))),"[DBNum2]"), IF(INT(TRUNC(A1))=0,"","元"),TEXT(IF(OR(ABS(A1)<0.1,TRUNC(A1)=A1),"",RIGHT(TRUNC(A1 *10),1)),"[DBNum2]"),IF(RIGHT(TRUNC(A1*10),1)="0","","角"),TEXT(IF(RIGHT(TRUNC(A1*100),1)="0","",RIGHT(TRUNC(A1*1 00),1)),"[DBNum2]"),IF(RIGHT(TRUNC(A1*100),1)="0","","分"))公式三:IF(ROUND(A1,2)=0,"",IF(ROUND(ABS(A1),2)>=1,TEXT(INT(ROUND (ABS(A1),2)),"[DBNum2]")&"元","")&IF(RIGHT(TEXT(A1,".00"),2)*1=0,"整",IF(RIGHT(TEXT(A1,".00"),4)*1>=1,IF(RIGHT(TEXT(A1,".00") ,2)*1>9,"","零"),IF(ROUND(ABS(A1),2)>=1,"零",""))&IF(RIGHT(TEXT(A1,".00"),2)*1>9,TEXT(LEFT(RIGHT(TEX T(A1,".00"),2)),"[DBNum2]")&"角","")&IF(RIGHT(TEXT(A1,".00"))*1>0,TEXT(RIGHT(TEXT(A1,".0 0")),"[DBNum2]")&"分","整"))) 我用不同的数值对这三个公式进行了一番测试,都达到了我的要求,至少到目前为止还没有发现上述公式存在着什么错误。
上述公式对负数的处理采取了不同的方法。
公式一和公式二对负数是在其前部加上一个“负”字,而公式三则是按正数进行处理。
我比较推崇公式三的方式,不是还有条件格式可以设置吗?若是负数就用条件格式来变为红色。
我不准备在此对上述公式进行分析解说。
撰写本文的目的是我也想自己来“组装”一个所谓的通用公式。
我只所以说是“组装”而不是叫什么“开发”或者是“拼凑”,是因为EXCEL的函数现成地摆在了那里,使用时就是为了达到某种目的,按照其固有的规则,将其进行有机的组合,可谓“组装”。
但是在这个过程中,也是要开动脑筋的,并非是随随便便“拼凑”就能成功的。
本文的目的就是想将我在“组装”公式时的思路展现出来。
若用程序设计语言(比如用C语言)来写一个人民币数字金额转大写金额会怎样考虑呢?我想每一位数字都要考虑到。
但在EXCEL中,单元格格式中有一个“特殊”格式,里面就有将小写数字转换为大写数字的格式。
但要注意的是,这里转换的是数字而不是金额。
所以转换出来后并不存在“元”、“角”、“分”、“整”等在大写金额中出现的字。
但是,“元”只出现在整数部分的后面,而小数部分只有角分两位。
这样只要利用EXCEL的“特殊”格式将数据分为整数部分、角位和分位三个部分来处理就行了。
处理的顺序是先整数,再角位、再分位。
由于要分三个部分分别处理,然后根据情况分别与“元”,“角”,“分”及“整”相连接。
连接的方式可以使用CONCATENATE()函数,如公式二,也可以使用连接符&。
而用&来连接,公式结构似乎会相对简单清晰一些,所以我选择了用&来连接。
虽然对问题进行了分解,但需要考虑的细节相当多。
若单元格为0或者空,输出空,避免出现“零”、“零元”等字样。
对非数字字符不进行处理,使用EXCEL自身的错误提示。
对负数按正数处理,再用条件格式将其转换为红色,不拟采用“负XXXXXX”的形式。
整数加“元”,若是纯整数,就只处理整数且加“整”,不再处理小数部分。
若是纯小数,放在小数部分处理,不单独列出处理。
角为0且分不为0,应输出“零”,只有角的就加“整” 如果有尾数,即有3位以上小数(这种情况也许很少发生,但作为一个“通用”公式,却不能不考虑这种情况)。
则有两种处理方式,一是截尾,另一则是四舍五入。
由于两种方式的排它性。
决定做两个公式。
如果数值小于分,截尾公式输出空,而四舍五入公式则要考虑舍入问题。
若有舍入输出分,没有则输出空。
根据这个思路,我“组装”了下面两个公式。
公式四:IF(A1=0,"",IF(ABS(A1)<0.995,"",TEXT(INT(ROUND(ABS(A1),2)) ,"[DBNum2]")&"元")&IF(RIGHT(TEXT(A1,".00"),2)*1=0,IF(ABS(A1)<0.005,"","整"),TEXT(IF(ABS(A1)<0.095,"",LEFT(RIGHT(TEXT(A1,".00"),2)) ),"[dbnum2]")&IF(LEFT(RIGHT(TEXT(A1,".00"),2))*1=0,"","角")&IF(RIGHT(TEXT(A1,".00"))*1=0,"整",TEXT(RIGHT(TEXT(A1,".00")),"[dbnum2]")&"分")))公式五:IF(A1=0,"",IF(ABS(A1)<1,"",TEXT(TRUNC(ABS(A1)),"[DBNum2]" )&"元")&IF(RIGHT(TRUNC(A1*100),2)*1=0,IF(ABS(A1)<0.01,"","整"),IF(ABS(A1)<0.1,"",TEXT(RIGHT(TRUNC(A1*10)),"[dbnum2]") )&IF(RIGHT(TRUNC(A1*10))*1=0,"","角")&IF(RIGHT(TRUNC(A1*100))*1=0,"整",TEXT(RIGHT(TRUNC(A1*100)),"[dbnum2]")&"分"))) 公式四是四舍五入公式,公式五则是截尾公式。
两个公式的结构其实是一样的,只是使用了不同的函数。
下面用公式四来说明。
TEXT(INT(ROUND(ABS(A1),2)),"[DBNum2]")&"元"用来处理整数部分,考虑到纯小数及舍入问题,增加一个判断ABS(A1)<0.995,用0.995,即保证了正常的舍入,又避免了出现0.9945也进行舍入的错误。
用RIGHTB(TEXT(A1,".00"),2)*1=0来判断是不是纯整数,是就输出“整”,后面就不用处理了。
因为TEXT函数输出的是文本值,所以在这里有两种处理方法,一是就是本式,二是RIGHTB(TEXT(A1,".00"),2)="00"。