人民币大写函数

合集下载

怎样在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]")&"分")数字转人民币大写形式的公式是:="大写金额:"&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编程环境,单击“插入” 菜单——模块,复制下面代码,保存,退出关闭。

在Excel2007中用自定义函数解决人民币大写转换

在Excel2007中用自定义函数解决人民币大写转换

在Excel2007中用自定义函数解决人民币大写转换图1 采购清单图1是女友某次商品采购的清单,我们的目的就是自定义一个函数,并通过调用这个自定义函数,轻松实现人民币金额的大写转换。

第一步:在Excel2007中打开VB编辑器窗口启动Excel ,打开图1所示的工作簿,依次单击“开发工具→代码→ Visual Basic”命令,打开“Visual Basic编辑器”窗口。

第二步:定义转换函数右击“Visual Basic编辑器”窗口中的“ThisWorkbook”,选择“插入→模块”命令,插入一个新的模块(默认名称为“模块1”),接着将以下代码输入到右侧的代码编辑区域中。

Function rmbb(M)y = Int(Abs(M))j = Round(Abs(M) - y, 2)f = (j * 10 - Int(j * 10)) / 10a = Application.Text(y, "[DBNum2]")d = "元"If j < 0.1 Then e = "" Else e = "角"If f < 0.01 Then g = "整" Else g = "分"If f < 0.01 Then c = "" Else c = Application.Text(Round(f * 100, 0), "[DBNum2]") If j = 0 Then b = "" Else b = Application.Text(Int(j * 10), "[DBNum2]")If M < 0 Then z = "负" Else z = ""rmbb = z & a & d & b & e & c & gEnd Function函数输入完毕后,关闭“Visual Basic编辑器”并返回,我们输入的代码就被自动保存了。

excel表人民币大写公式

excel表人民币大写公式

excel表人民币大写公式
首先,在单元格输入【=NUMBERSTRING(F2,2)】(F2代表需要转换成大写数值的单元格),确定即可;其次,选中需转换的单元格,鼠标右键单击,依次选择【设置单元格格式】-【数字】-【特殊】-【中文大写数字】,【确定】即可。

方法一
用【NUMBERSTRING】公式,如:将F2单元格的4500转换成大写,则在G2输入公式
【=NUMBERSTRING(F2,2)】,然后点击空白单元格或按键盘上【回车】键就能得出:肆仟伍佰;
方法二
在表格中输入数值,选中想要转化为大写的数字单元格,鼠标右键选择【设置单元格格式】,在弹出来的设置对话框选择第一排的【数字】,分类中找到【特殊】,选择【中文大写数字】,点击【确定】就可以转换成大写。

大写金额的函数

大写金额的函数

大写金额的函数大写金额是指将数字金额转换为中文汉字金额表示的方式,它是我国财务、商业、法律等领域的基本要求。

在编写财务软件、填写单据、制作报表等方面,要求对金额按照规定进行大写表示,以保障信息的准确性和规范性。

本文将介绍如何编写一个能够将数字金额转换为中文大写金额的函数,该函数使用VB 语言编写,可以在 Excel 等 Microsoft Office 软件中使用,并支持中文和英文两种语言。

1. 分析需求首先,我们需要明确需求,即将输入的数字金额转换为中文大写金额。

例如,输入“1234.56”,输出“壹仟贰佰叁拾肆元伍角陆分”。

为了完成这个任务,我们需要定义以下函数:Public Function Num2Chn(ByVal Num As Double, Optional ByVal Language As String = "Chinese") As String其中,Num 表示要转换的数字金额,Language 表示要转换的语言,可以是"Chinese" 或 "English"。

2. 编写主程序根据需求定义函数之后,我们需要编写主程序,实现数字金额的转换。

主要步骤如下:1) 判断输入金额的有效性。

输入金额应为数字类型,且不超过亿的范围。

2) 将输入金额按整数和小数部分分离,以便单独处理。

3) 写出阿拉伯数字和中文数字的对应表。

4) 把整数部分按照千、百、十、个位分段分别转换,然后合并成一个中文字符串。

5) 处理小数部分,转换成中文字符串。

6) 最后,将整数部分和小数部分合并成一个中文字符串,返回结果。

下面是具体的 VB 代码:Public Function Num2Chn(ByVal Num As Double, Optional ByVal Language As String = "Chinese") As StringIf Not IsNumeric(Num) ThenNum2Chn = "Error: Input is not a Number"Exit FunctionEnd IfIf Num < 0 Or Num >= 100000000 ThenNum2Chn = "Error: Out of Range"Exit FunctionEnd IfDim ChnNumber As String, ChnUnit As String, ChnNumInt As String, ChnNumDec As StringIf Language = "Chinese" ThenChnNumber = "零壹贰叁肆伍陆柒捌玖"ChnUnit = "分角圆拾佰仟万亿"ElseChnNumber = "Zero One Two Three Four Five Six Seven Eight Nine"ChnUnit = "Cents Dollar Tens Hundreds Thousands Millions Billions"End IfDim I As Integer, J As Integer, K As Integer, N As Integer, M As IntegerDim INT As Long, Dec As DoubleINT = Int(Num)Dec = Num - INTIf INT = 0 ThenChnNumInt = "零"ElseM = 0N = INT Mod 10000If N > 0 ThenChnNumInt = ChnUnit(M \ 4) & ChnNumIntEnd IfFor I = 3 To 0 Step -1K = N Mod 10If K > 0 ThenChnNumInt = ChnNumber(K + 1 + (I = 0) * 10) & ChnUnit(M Mod 4) & ChnNumIntElseIf Len(ChnNumInt) > 0 And Right(ChnNumInt, 1) <> "零" And M Mod 4 > 0 ThenChnNumInt = "零" & ChnNumIntEnd IfN = N \ 10NextM = M + 4INT = INT \ 10000LoopEnd IfIf Dec > 0 ThenFor I = 1 To 2Dec = Dec * 10J = Int(Dec)ChnNumDec = ChnNumDec & ChnNumber(J + 1) & ChnUnit(I + 2)NextEnd IfNum2Chn = ChnNumInt & "元" & ChnNumDecEnd Function3. 测试及使用完成主程序之后,就可以针对不同的数字输入进行测试,以确保程序的正确性和功能完备性。

人民币大写转换函数

人民币大写转换函数

人民币大写转换函数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()。

小写金额转换大写金额函数公式

小写金额转换大写金额函数公式

小写金额转换大写金额函数公式小写金额转换成大写金额是我们在日常生活和工作中经常会遇到的问题。

无论是在填写支票、填写发票、办理贷款还是进行财务报表的编制,都需要将小写金额转换成大写金额。

这个过程虽然简单,但却是非常重要的,因为任何一个错误都可能导致不必要的损失或麻烦。

在进行小写金额转换成大写金额时,我们通常使用的是中文的读法,即将数字转换成对应的汉字。

例如,将“123”转换成“壹佰贰拾叁”。

这种方式简单直观,容易理解。

但对于一些较大的金额,汉字的读法可能会比较复杂,需要一定的规律和技巧来进行转换。

在进行小写金额转换成大写金额时,我们可以按照以下规律进行转换:1. 将小写金额从右到左每四位一组进行分组,最后不足四位的补零。

例如,将“1234567890”分成“0001 2345 6789 0000”。

2. 对每一组数字进行转换,从高位到低位依次转换。

例如,对于“0001 2345 6789 0000”,先转换第一组“0001”,再转换第二组“2345”,以此类推。

3. 对于每一组数字,首先将高位的数字转换成对应的汉字,然后加上对应的单位。

例如,对于第一组“0001”,将“1”转换成“壹”,再加上“万”。

4. 对于每一组中的每一位数字,按照规定的读法进行转换。

例如,将“2345”转换成“贰仟叁佰肆拾伍”。

按照以上规律,我们可以将任意的小写金额转换成大写金额。

例如,将“1234567890”转换成“壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾元整”。

在实际操作中,我们可以编写一个函数来实现小写金额转换成大写金额。

这个函数可以接受一个小写金额作为输入,并返回对应的大写金额。

函数的实现可以分为以下几个步骤:1. 将小写金额按照每四位一组进行分组,并补零。

2. 对每一组数字进行转换,得到对应的汉字。

3. 将每一组数字转换后的汉字加上对应的单位。

4. 将每一组数字转换后的汉字连接起来,得到最终的大写金额。

通过以上步骤,我们可以编写一个简单而有效的小写金额转换成大写金额的函数。

人民币大写转化函数(ASP版和JavaScript版)


if (i == j-1 && str3 == '0' ){ //最后一位(分)为0时,加上“整”
str5 = str5 + '整';
}
}
if (num == 0){
str5 = '零元整';
}
return str5;
if (str3 == '0'){
ch1 = '';
ch2 = '';
nzero = nzero + 1;
}
else{
if(str3 != '0' && nzero != 0){
ch1 = '零' + str1.substr(str3*1,1);
}
}
}
}
}
if (i == (j-11) || i == (j-3)){ //如果该位是亿位或元位,则必须写上
ch2 = str2.substr(i,1);
}
str5 = str5 + ch1 + ch2;
end if
str2 = Right(str2, j) '取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分
'循环取出每一位需要转换的值
for i = 1 to j
str3 = Mid(num * 100, i, 1) '取出需转换的某一位的值
}
}
}
else{ //该位是万亿,亿,万,元位等关键位
if (str3 != '0' && nzero != 0){

excel中如何将数字变成大写金额的函数

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编辑器。

小写金额转换大写金额函数公式

小写金额转换大写金额函数公式在日常生活中,我们经常需要将数字金额转换为大写金额,以便于书写、阅读和理解。

这个过程可以通过手工计算,但是比较繁琐,容易出错。

因此,我们可以使用计算机编程语言来实现自动转换。

下面介绍一种常用的小写金额转换大写金额函数公式。

函数公式:```def digit_to_chinese(num):"""将数字金额转换为大写金额:param num: 数字金额:return: 大写金额"""chinese_num = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']chinese_unit = ['', '拾', '佰', '仟', '万', '亿']result = ''num_str = str(num)num_len = len(num_str)zero_flag = Falsefor i in range(num_len):index = int(num_str[i])unit_index = (num_len - i - 1) % 4if index == 0:zero_flag = Trueif unit_index == 0 and (num_len - i - 1) // 4 > 0:result += chinese_unit[(num_len - i - 1) // 4 + 3]else:if zero_flag:result += '零'zero_flag = Falseresult += chinese_num[index] + chinese_unit[unit_index]if unit_index == 0 and (num_len - i - 1) // 4 > 0:result += chinese_unit[(num_len - i - 1) // 4 + 3]if result[-1] == '零':result = result[:-1]return result```函数说明:该函数接受一个数字金额作为参数,返回一个字符串类型的大写金额。

数字转换为大写数字公式--摘自百度经验

将小写数字转化为财会大写数字编辑公式摘至:/article/d2b1d1024cb3f65c7f37d46b.html步骤/方法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(B1))*10,"[db num2]")&"角",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(A BS(B1)*10)*10,),"[dbnum2]")&"分","整")))2. 第二种方法:通过宏VBA自定义函数实现第一步:按下ALT+F11组合键,或者是单击工具——宏——Visual Basic编辑器,进入Visual Basic编程环境,单击“插入” 菜单——模块,复制下面代码,保存,退出关闭。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

元旦那天做了一个11行的,自认为不能再短了,没想到又找到了一个10 行的。

不甘心,又精研了一天,终于做出这个目前最全面、最短的人民币大写函数,只有7行哇哈哈哈,我快能
的不行了宏名特意以我的网名命名。

在此和各位高人比,看谁能做出比我更好的,或指出我的错处。

功能介绍:1.无金额限制,EXCEL认多大的数,它就认多大。

2.分以下四舍五入,数字< 0.005 (半分钱),做0处理,不显示 3.数字为负数大写前+负 4.错误率低,目前还没发现说明:程序中有一处是+0.00001的地方,不是多于,如果去掉,有时会产生1分或1 角的误差,这是EXCEL的问题去掉后试试这个数338600.525 不是四舍五入了是五舍六入了不符合财会制度。

Function ldy888(M)
y = Int(Round(100 * Abs(M)) / 100)
j = Round(100 * Abs(M) + 0.00001) - y * 100
f = (j / 10 - Int(j / 10)) * 10
A = IIf(y < 1, "", Application.Text(y, "[DBNum2]") & "元")
b = IIf(j > 9.5, Application.Text(Int(j / 10), "[DBNum2]") & "角", IIf(y < 1, "", I If(f > 1, "零", "")))
c = IIf(f < 1, "整", Application.Text(Round(f, 0), "[DBNum2]") & "分")
ldy888 = IIf(Abs(M) < 0.005, "", IIf(M < 0, "负" & A & b & c, A & b & c))
End Function
现在好了
06-5-10更新:19楼的朋友说1.51有错, 不仅是1.51 但凡尾数是.41,.51.61,.71,.81, 91 的都有这个情况.这是个EXCEL的BUG,中断程序检查,发现51/10 居然= 5.9999999999999 99999 只好把分位ROUND一下了,这样就解决了.对19楼的朋友表示感谢.修改如下,发现错误请跟帖,万二分感谢.
Function ldy888(M)
y = Int(Round(100 * Abs(M)) / 100)
j = Round(100 * Abs(M) + 0.00001) - y * 100
f = Round((j / 10 - Int(j / 10)) * 10)
A = IIf(y < 1, "", Application.Text(y, "[DBNum2]") & "元")
b = IIf(j > 9.4, Application.Text(Int(j / 10), "[DBNum2]") & "角", IIf(y < 1, "", I If(f > 0.4, "零", "")))
c = IIf(f < 1, "整", Application.Text(Round(f, 0), "[DBNum2]") & "分")
ldy888 = IIf(Abs(M) < 0.005, "", IIf(M < 0, "负" & A & b & c, A & b & c))
End Function。

相关文档
最新文档