搜档网
当前位置:搜档网 › 将数字转换为大写

将数字转换为大写

将数字转换为大写
将数字转换为大写

在EXCEL中将数字转换为人民币大写的三种方式

点击数:448 发布日期:2006-5-18 10:21:00

【评论】【打印】【编程爱好者论坛】【关闭】

Tag:VBA 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(宏)输入转换公式: 点击菜单“工具”->“宏”->“Visual Basic编辑器”,在编辑器窗口中,点击菜单“插入”->“模块”,在出现的窗口中输入以下内容:

Function daxie(ByVal Num) ' 人民币中文大写函数

Application.Volatile True

Place = "分角元拾佰仟万拾佰仟亿拾佰仟万"

Dn = "壹贰叁肆伍陆柒捌玖"

D1 = "整零元零零零万零零零亿零零零万"

If Num < 0 Then FuHao = "(负)"

Num = Format(Abs(Num), "###0.00") * 100

If Num > 999999999999999# Then: daxie = "数字超出转换范围!!": Exi t Function

If Num = 0 Then: daxie = "零元零分": Exit Function

NumA = 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) <> "零" Then

NumC = NumC & Mid(D1, J, 1)

Else

Select Case J ' 特殊数位转换

Case 1

NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, J, 1)

Case 3, 11

NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, J, 1) & "零"

Case 7

If Mid(NumC, Len(NumC) - 1, 1) <> "亿" Then

NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, J, 1) & "零"

End If

Case Else

End Select

End If

End If

Next

daxie = "(人民币)" & FuHao & Trim(NumC)

End Function

然后切换回excel,在“A2”单元中输入数字,在“B2”单元中输入:“=DaXie(A 2)”,就可看到效果。

方法3,同样是通过VBA公式,方法同上,公式如下:

Function daxie1(money As String) As String '

Dim x As String, y As String

Const zimu = ".sbqwsbqysbqwsbq" '定义位置代码

Const letter = "0123456789sbqwy.zjf" '定义汉字缩写

Const upcase = "零壹贰叁肆伍陆柒捌玖拾佰仟萬億圆整角分" '定义大写汉字Dim temp As String

temp = money

If InStr(temp, ".") > 0 Then temp = Left(temp, InStr(temp, ".") - 1)

If Len(temp) > 16 Then MsgBox "数目太大,无法换算!请输入一亿亿以下的数字", 64, "错误提示": Exit Function '只能转换一亿亿元以下数目的货币!

x = Format(money, "0.00") '格式化货币

y = ""

For i = 1 To Len(x) - 3

y = y & Mid(x, i, 1) & Mid(zimu, Len(x) - 2 - i, 1)

Next

If Right(x, 3) = ".00" Then

y = y & "z" '***元整

Else

y = y & Left(Right(x, 2), 1) & "j" & Right(x, 1) & "f" '*元*角*分

End If

y = Replace(y, "0q", "0") '避免零千(如:40200肆萬零千零贰佰)

y = Replace(y, "0b", "0") '避免零百(如:41000肆萬壹千零佰)

y = Replace(y, "0s", "0") '避免零十(如:204贰佰零拾零肆)

Do While y <> Replace(y, "00", "0")

y = Replace(y, "00", "0") '避免双零(如:1004壹仟零零肆)

Loop

y = Replace(y, "0y", "y") '避免零億(如:210億贰佰壹十零億)

y = Replace(y, "0w", "w") '避免零萬(如:210萬贰佰壹十零萬)

y = IIf(Len(x) = 5 And Left(y, 1) = "1", Right(y, Len(y) - 1), y) '避免壹十(如:14壹拾肆;10壹拾)

y = IIf(Len(x) = 4, Replace(y, "0.", ""), Replace(y, "0.", ".")) '避免零元(如:20.00贰拾零圆;0.12零圆壹角贰分)

For i = 1 To 19

y = Replace(y, Mid(letter, i, 1), Mid(upcase, i, 1)) '大写汉字

Next

daxie1 = "(人民币)" & y

End Function

切换回excel,在“A3”单元中输入数字,在“B3”单元中输入:“=DaXie1(A3)”,就可看到效果。

实现的效果比较如下:

1234.5 (人民币)壹仟贰佰叁拾肆元伍角整直接公式

1234.5 (人民币)壹仟贰佰叁拾肆元伍角整DaXie(A2)

1234.5 (人民币)壹仟贰佰叁拾肆圆伍角零分DaXie1(A3)

数字转为英文大写

'****************' Main Function *'**************** Function SpellNumber(ByVal MyNumber) Dim Yuan, Fen, Temp Dim DecimalPlace, Count ReDim Place(9) As String Application.Volatile True Place(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 Fen and set MyNumber to Yuan amount If DecimalPlace > 0 Then Fen = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)) MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If Count = 1 Do While MyNumber <> "" Temp = GetHundreds(Right(MyNumber, 3)) If Temp <> "" Then Yuan = Temp & Place(Count) & Yuan If Len(MyNumber) > 3 Then MyNumber = Left(MyNumber, Len(MyNumber) - 3) Else MyNumber = "" End If Count = Count + 1 Loop Select Case Yuan Case "" Yuan = "No Yuan" Case "One" Yuan = "One Yuan" Case Else Yuan = Yuan & " Yuan" End Select Select Case Fen Case "" Fen = " and No Fen" Case "One" Fen = " and One Fen" Case Else Fen = " and " & Fen & " Fen" End Select

excel数字金额自动变大写金额

excel 数字金额自动变大写金额 =IF(ROUND(A2,2)<0,"无效数值",IF(ROUND(A2,2)=0,"零 ",IF(ROUND(A2,2)<1,"",TEXT(INT(ROUND(A2,2)),"[dbnum2]")&"元 ")&IF(INT(ROUND(A2,2)*10)-INT(ROUND(A2,2))*10=0,IF(INT(ROUND(A2,2))*(INT(ROUND(A2,2)*100)-INT(RO UND(A2,2)*10)*10)=0,"","零"),TEXT(INT(ROUND(A2,2)*10)-INT(ROUND(A2,2))*10,"[dbnum2]")&"角 ")&IF((INT(ROUND(A2,2)*100)-INT(ROUND(A2,2)*10)*10)=0,"整 ",TEXT((INT(ROUND(A2,2)*100)-INT(ROUND(A2,2)*10)*10),"[dbnum2]")&"分"))) =IF(ROUND(A1,2)<0,"无效数值",IF(ROUND(A1,2)=0,"零 ",IF(ROUND(A1,2)<1,"",TEXT(INT(ROUND(A1,2)),"[dbnum2]")&"元 ")&IF(INT(ROUND(A1,2)*10)-INT(ROUND(A1,2))*10=0,IF(INT(ROUND(A1,2))*(INT(ROUND(A1,2)*100)-INT(RO UND(A1,2)*10)*10)=0,"","零"),TEXT(INT(ROUND(A1,2)*10)-INT(ROUND(A1,2))*10,"[dbnum2]")&"角 ")&IF((INT(ROUND(A1,2)*100)-INT(ROUND(A1,2)*10)*10)=0,"整 ",TEXT((INT(ROUND(A1,2)*100)-INT(ROUND(A1,2)*10)*10),"[dbnum2]")&"分"))) =SUBSTITUTE(SUBSTITUTE(TEXT(TRUNC(FIXED(A1)),"[>0][dbnum2];[<0]负[dbnum2];;")&TEXT(RIGHT(FIXED(A1),2),"元[dbnum2]0角0分;;"&IF(ABS(A1)>1%,"元整",)),"零角",IF(ABS(A1)<1,,"零")),"零分","整") =TEXT(A1*100,"人民币0拾0万0仟0佰0拾0元0角0分[dbnum2]") EXCEL如何用等差序列标上行号 如要标出1、5、9…… =IF(MOD((ROW()-1),4)=0,ROW(),"") 如要标2、4、6…… =IF(MOD((ROW()*1),2)=0,ROW(),"") A列数据,在B列输入公式 =if(countif(a:a,a1)>1,"数据已存在",""), 假设你把你的数据放在A列的,现在选中整个A列,进行以下操作: 1、选择菜单“格式-条件格式”,打开条件格式设置对话窗口 2、把第一个框拉下来选择“公式” 3、在第二个框内输入 =COUNTIF(A:A,A1)>1 4、点“格式”按钮,在“图案”标签中选红色 5、逐层确定,直到返回到工作表 现在你在A列中输入任何重复的内容,重复内容的单元格都会自动变成红底色,你就能及时发现重复的内容了。 =IF(A15>=60,IF(B15>=60,"合格","上机不合格"),IF(B15>=60,"笔试不合格","上机笔试不合格")) =if(iserror(vlookup(b2,SHEET!a:k,*,false)),"",vlookup(b2,SHEET!a:D,*,false))

Excel中如何将货币数值由数字金额自动转为中文大写金额

Excel中如何将货币数值由数字金额自动转为中文大写金额 使用Excel时有时会用数据的转换,尤其是做财务工作,如工资表等时就需要用中文大写金额。如果手动输入,就会麻烦一些,多的时候也会增加了工作量。我们可以使用Excel中的函数来实现将货币数值由数字金额自动转换成中文大写金额。 本文以一份表格为例讲解如何将数字金额转换为中文大写金额。 先在Excel表格中算出合计金额,如下图。 利用公式把小写的货币转换为中文大写,并写在合并的单元格中。公式如下:

=IF((I41-INT(I41))=0,TEXT(I41,"[DBNUM2]")&"元整 ",IF(INT(I41*10)-I41*10=0,TEXT(INT(I41),"[DBNUM2]")&"元 "&TEXT(INT(I41*10)-INT(I41)*10,"[DBNUM2]")&"角整 ",TEXT(INT(I41),"[DBNUM2]")&"元"&IF(INT(I41*10)-INT(I41)*10,"零",TEXT(INT(I41*10)-INT(I41)*10,"[DBNUM2]")&"角 ")&TEXT(RIGHT(I41,1),"[DBNUM2]")&"分"))。 把公式输入合计右边的合并单元格中,如下图。 输入后的显示结果如下图。

公式中一共用到了4函数,文本连接符“&”及相应的汉字。下面对这4种函数做个讲解: IF函数:是一个条件判断函数,该函数的基本格式是:IF(a,b,c),其中“a”是一个条件,“b”和“c”是两种判断结果,可以表述为:如果条件a成立,那么结果是b,否则结果就是c。以上公式是一个多层嵌套判断函数,根据货币金额的不同情况生成不同格式的中文大写。 INT函数:是一个取整函数,取参数数字的整数部分。如:INT(I41)是取I41这个单元格数字的整数部分,(I41-INT(I41))=0表示一个整数,INT(I41*10)-INT(I41)*10表示I41单元小数点后第一位数,

EXCEL函数数字小写换大写

EXCEL文本函数-数字小写换大写/英文大小写互换 2007年10月17日星期三 13:04 在大小写中英文互换公式中我们先假设每个表都有表头,且数字在第二行,在A2单元格内 注意:公式可以随意拖动至任意指定单元格,公式内对象不变;可复制(待鼠标变成黑色十字再拖);也可利用查找-替换-全部替换单元格如A2---全部换成F15 EXCEL中数字小写换大写方法一: 在单元格A2中输入小写数字123.12 B2处输入以下公式 =SUBSTITUTE(SUBSTITUTE(IF(A2<0,"负","")&TEXT(TRUNC(ABS(ROUND(A2,2))),"[DBNum2]")&"元 "&IF(ISERR(FIND(".",ROUND(A2,2))),"",TEXT(RIGHT(TRUNC(ROUND(A2,2)*10)),"[DBNum2]"))&IF(I SERR(FIND(".0",TEXT(A2,"0.00"))),"角 ","")&IF(LEFT(RIGHT(ROUND(A2,2),3))=".",TEXT(RIGHT(ROUND(A2,2)),"[DBNum2]")&"分 ",IF(ROUND(A2,2)=0,"","整")),"零元零",""),"零元","") EXCEL中数字小写换大写方法二: 在单元格A2中输入小写数字123.12 B2处输入以下公式 =IF((INT(A2*10)-INT(A2)*10)=0,TEXT(INT(A2),"[DBNum2]G/通用格式")&"元 "&IF((INT(A2*100)-INT((A2)*10)*10)=0,"整","零 "&TEXT(INT(A2*100)-INT(A2*10)*10,"[DBNum2]G/通用格式")&"分"),TEXT(INT(A2),"[DBNum2]G/通用格式")&"元 "&IF((INT(A2*100)-INT((A2)*10)*10)=0,TEXT((INT(A2*10)-INT(A2)*10),"[DBNum2]G/通用格式")&"角整",TEXT((INT(A2*10)-INT(A2)*10),"[DBNum2]G/通用格式")&"角 "&TEXT(INT(A2*100)-INT(A2*10)*10,"[DBNum2]G/通用格式")&"分")) EXCEL中数字小写换大写方法三: =IF(A2-INT(A2)=0,TEXT(INT(A2),"[DBNum2]G/通用格式")&"圆整",TEXT(INT(A2),"[DBNum2]G/通用格式")&"圆"&TEXT(INT((A2-INT(A2))*10),"[DBNum2]G/通用格式")&"角 "&TEXT(INT((A2*10-INT(A2*10))*10),"[DBNum2]G/通用格式")&"分") EXCEL中数字小写换大写方法四: =IF((A2-INT(A2))=0,TEXT(A2,"[DBNUM2]")&"元整 ",IF(INT(A2*10)-A2*10=0,TEXT(INT(A2),"[DBNUM2]")&"元 "&TEXT((INT(A2*10)-INT(A2)*10),"[DBNUM2]")&"角整",TEXT(INT(A2),"[DBNUM2]")&"元 "&IF(INT(A2*10)-INT(A2)*10=0,"零",TEXT(INT(A2*10)-INT(A2)*10,"[DBNUM2]")&"角 ")&TEXT(RIGHT(A2,1),"[DBNUM2]")&"分")) 看看结果是不是出现了你想要的?应该有你需要的大写金额了 公式的由来:

金额大写转换函数

金额大写转换函数 #region 金额大写转化 private static String[] Ls_ShZ = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "拾" }; private static String[] Ls_DW_Zh = { "元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万" }; private static String[] Num_DW = { "", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万" }; private static String[] Ls_DW_X = { "角", "分" }; /// <summary> /// 金额小写转中文大写。 /// 整数支持到万亿;小数部分支持到分(超过两位将进行Banker舍入法处

Excel数字大写转换

1.阿拉伯数字转换中文大写。 =IF((A7-INT(A7))=0,TEXT(A7,"[DBNUM2]")&"元整",IF(INT(A7*10)-A7*10=0,TEXT(INT(A7),"[DBNUM2]")&"元"&TEXT((INT(A7*10)-INT(A7)*10),"[DBNUM2]")&"角整",TEXT(INT(A7),"[DBNUM2]")&"元"&IF(INT(A7*10)-INT(A7)*10=0,"零",TEXT(INT(A7*10)-INT(A7)*10,"[DBNUM2]")&"角")&TEXT(RIGHT(A7,1),"[DBNUM2]")&"分")) 该函数中只需将A7换成你要转换的数值所在单元格即可。 2.阿拉伯数字转换英文大写(编写SpellNumber实例函数) 2.1启动Microsoft Excel。 2.2按Alt+F11 启动Visual Basic 编辑器。 2.3在“插入”菜单上,单击“模块”。 2.4在模块表中键入下面的代码。 Function ConvertCurrencyToEnglish(ByVal MyNumber) Dim Temp Dim Dollars, Cents Dim DecimalPlace, Count ReDim Place(9) As String Place(2) = " Thousand " Place(3) = " Million " Place(4) = " Billion " Place(5) = " Trillion " ' Convert MyNumber to a string, trimming extra spaces. MyNumber = Trim(Str(Round(MyNumber, 2))) ' Find decimal place. DecimalPlace = InStr(MyNumber, ".") ' If we find decimal place... If DecimalPlace > 0 Then ' Convert cents Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2) Cents = ConvertTens(Temp) ' Strip off cents from remainder to convert. MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If

阿拉伯数字转换成英文大写

启动Microsoft Excel。 按Alt+F11 启动Visual Basic 编辑器。 在“插入”菜单上,单击“模块”。 在模块表中键入下面的代码。 Option Explicit 'Main Function Function SpellNumber(ByValMyNumber) Dim Dollars, Cents, Temp Dim DecimalPlace, Count ReDimPlace(9) As String Place(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 Then Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _ "00", 2)) MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If Count = 1 Do While MyNumber<> "" Temp = GetHundreds(Right(MyNumber, 3)) If Temp <> "" Then Dollars = Temp &Place(Count) & Dollars If Len(MyNumber) > 3 Then MyNumber = Left(MyNumber, Len(MyNumber) - 3) Else MyNumber = "" End If Count = Count + 1 Loop Select Case Dollars Case "" Dollars = "No Dollars" Case "One" Dollars = "One Dollar" Case Else Dollars = Dollars &" Dollars" End Select Select Case Cents

将数字转换为大写

在EXCEL中将数字转换为人民币大写的三种方式 点击数:448 发布日期:2006-5-18 10:21:00 【评论】【打印】【编程爱好者论坛】【关闭】 Tag:VBA 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(宏)输入转换公式: 点击菜单“工具”->“宏”->“Visual Basic编辑器”,在编辑器窗口中,点击菜单“插入”->“模块”,在出现的窗口中输入以下内容: Function daxie(ByVal Num) ' 人民币中文大写函数 Application.Volatile True Place = "分角元拾佰仟万拾佰仟亿拾佰仟万" Dn = "壹贰叁肆伍陆柒捌玖" D1 = "整零元零零零万零零零亿零零零万" If Num < 0 Then FuHao = "(负)" Num = Format(Abs(Num), "###0.00") * 100 If Num > 999999999999999# Then: daxie = "数字超出转换范围!!": Exi t Function If Num = 0 Then: daxie = "零元零分": Exit Function NumA = Trim(Str(Num)) NumLen = Len(NumA) For J = NumLen To 1 Step -1 ' 数字转换过程

vb中将数字变成大写的

ByVal的含义是使用值传递,而不是地址传递 Function c(byval a as intger, b as intger)as intger c= a + b End Function 使用 print c(1,2) 回答者:bxworks - 五级2007-6-23 19:50 ByVal 按值传递(ByValue),意思是传入的形式参数改变了,但是不影响实际参数的数值 比如 在一个函数fn()有参数para,是byval的, 那么在函数里面如果有语句para=999, 有变量dim p as integer = 100; 那么调用 fn(p) 之后,p的值仍然是100,而不是999,函数里面的修改不影响外面的变量 与它对应的是ByRef ,按引用传递 这个时候,调用了函数之后,p的值就变成999了 用法,就是在参数声明的前面加上ByVal关键字就可以了 例如 ...( ByVal aaa as integer, ByVal bb as string) 常数定义,与dim差不多,但const定义的不能修改a的值,dim 定义的可以重新赋值 方法一private const a=5 方法二dim a a=5 vb str是什么意思 悬赏分:0 - 解决时间:2010-3-9 21:36 有下面一道题,请指教 在窗体上画两个文本框(其name属性分别为text1和text2)和一个命令按钮(其name属性为commond),然后编写如下事件过程:private sub commond1_click() x=0 Do While x<50 x=(x+2)(x+3) n=n+1 Loop text1.text=Str(n) text2.text=Str(x) End sub 程序运行后,单击命令按钮。在两个文本框中显示的值分别为________ A 1和0 B2和72 C 3和50 D 4和168 改选哪个呀,

数字大写转换(简单实用

如何将小写数字自动转换为大写数字 发表日期:2008年7月24日共浏览3393次字体颜色:选择颜色 【字体:放大正 常缩小】 我们在日常工作中经常遇到既要输入小写,又要输入大写,比如开填支票。在开填支票时往往出现小写金额与大写金额不吻合,特别时数字长的最容易出错。现在这个问题得到了解决,只要把小写数字一输入,大写数字就自动产生,又快又准确。如何使用,请看下文。 一、公式及公式介绍 =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”是指欲转换的小写数字所在位置(单元格),它根据小写数字所在位置进行修改;“人民币”是指货币种类,可以修改成美元、日元或大写等字样;其他是不许修

改的。 二、操作 1、复制程序公式:将着色的程序公式部分拷贝到电子表格中欲生成为大写的单元格内。(选中程序中的着色部分,点击鼠标右键,点击“复制”功能,然后双击电子表格中欲生成为大写金额的单元格,点击鼠标右键,点击“粘贴”功能) 2、修改程序公式:①将公式里的单元格“A1”全部替还成小写数字所在的单元格(如小写数字所在的单元格是“B3”,即把程序公式中的“A1”替换成“B3”),共15处。②是美元或其他币种,把“人民币”全替换成“美元或其他币种”。③也可以把程序公式的“人民币”和“()”修改为“大写:”。 (文:苟在林) =IF(C9<0,"金额为负无效", (IF(OR(C9=0,C9=""),"(人民币)零元", IF(C9<1,"(人民币)", TEXT(INT(C9),"[dbnum2](人民币)G/通用格式")&"元"))))& IF( (INT(C9*10)-INT(C9)*10)=0, IF(INT(C9*100)-INT(C9*10)*10=0,"","零"), (TEXT(INT(C9*10)-INT(C9)*10,"[dbnum2]")&"角")) &IF( (INT(C9*100)-INT(C9*10)*10)=0, "整", TEXT((INT(C9*100)-INT(C9*10)*10),"[dbnum2]")&"分"

EXCEL中数字大小写转换方法

EXCEL中数字大小写转换方法 不知道大家工作中有没有遇到这样的问题,投标报价时,报价汇总时还需要大写形式,一个字一个字的敲进去,容易出错,更为不便的是,当报价修改后,需要重新敲一遍,那么有没有一种方法自动将小写转成大写呢? 答案是肯定的,一种最为简单的方法就是在需要大写的单元格直接引用小写数字,然后它会显示为大写的中文.我是通过摸索而得出,如果哪位朋友还有更好的相关知识请给予接下去讨论,学海无涯,更希望用得着的朋友能得到一点帮助,现将我自己摸索的结果发经广大朋友分享! EXCEL大小写转换方法 1. 结果数据无小数点范围转换:将小写数字转换成大写中文:右击需要转换的单元格,在弹出的快捷菜单中选择“单元格格式”,然后在“数字”选项卡中选择“自定义”,在“类型”中写入[DBNum2][$-804]"大""写"!:G/通用格式"元整"后按确定即可。 2. 结果数据保留两位小数数值且在十万以内范围转换:将小写数字转换成大写中文(万范围内):右击需要转换的单元格,在弹出的快捷菜单中选择“单元格格式”,然后在“数字”选项卡中选择“自定义”,在“类型”中写入:[DBNum2]0"万"0"千"0"百"0"拾"0"元".0"角"0"分""整" 3. 结果数据保留两位小数数值且在十万以外范围转换:将小写数字转换成大写中文(万范围内):右击需要转换的单元格,在弹出的快捷菜单中选择“单元格格式”,然后在“数字”选项卡中选择“自定义”,在“类型”中写入:[DBNum2]0"万"0"千"0"百"0"拾"0"万"0"千"0"百"0"拾"0"元".0"角"0"分""整" 附:本人愿意结交天下朋友,共同讨论电脑相关知识,下一请教是CAD的网络版本下载安装及三维二维之间转换,3D的制作,平立面图的快捷速成……希望朋友们能提供相关资料,谢谢

EXCEL数字转换为中文大写

Excel中我们在单元格输入了阿拉伯数字之后,比如1234567890,忽然想起应该将它改成中文的大写格式,这时怎么办?删掉此内容重新一个字一个字地输入壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾?显然太麻烦了。假若并不是一个数字,而是很长的一列单元格,那我们还不麻烦死? 不过别担心,在Excel中这不是个难题,至少有以下的两种方法可供您选择: 一、单元格格式法 选中那些数字所在的单元格,点击右键,在弹出菜单中选择设置单元格格式命令,打开设置单元格格式对话框。点击数字选项卡,在左侧的分类列表中选择特殊,然后在右侧的类型列表中点击中文大写数字,如图1所示。确定后就可以了。若点击上方的那个中文小写数字,可以得到一十二亿三千四百五十六万七千八百九十。很简单吧? 图1:选择中文大写数字 二、函数更正法 在Excel中还有一个隐含的函数可以解决这个问题。比如A1单元格中是数字1234567890,那么我们只要在其它单元格中输入公式=NUMBERSTRING(A1,2)。回车后就可以得到壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾了。如果我们将第二个参数2改成1或者3,那么我们就会得到一十二亿三千四百五十六万七千八百九十和一二三四五六七八九○。 再假如这个问题不是发生在Excel中,而是在Word表格中,那又该如何处理呢?当然,一种选择是将表格数据复制到Excel中,转换好了之后再复制到Word表格中。不过,我们还可以选择直接在Word中完成此项任务的。 选中表格中的数字1234567890,点击功能区插入选项卡符号功能组编号按钮,打开编号对话框。在编号类型列表中选择壹,贰,叁项目,如图2所示,确定后就可以得到壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾了。如果在列表中选中一,二,三项目,那么可以得到一十二亿三千四百五十六万七千八百九十。 图2:选择壹,贰,叁项目 当然,如果您有域的编辑感兴趣的话,还可以在域符号中直接输入域代码= 1234567890 * CHINESENUM3,或= 1234567890 * CHINESENUM2,然后按下Alt+F9快捷键,就可以分别得到一十二亿三千四百五十六万七千八百九十或壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾了。要是输入域代码= 1234567890 * CHINESENUM3,按下Alt+F9快捷键就可以得到一二三四五六七八九○了。也挺简单的。 行了,如果遇到阿拉伯数字改中文大写的话,那试试上面的方法?

金额大写的转换

金额大写的转换 假设A1单元格为原始数据,即小写数字。 公式法一: =IF(A1=0,"零元整",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(ROUND(ABS(A1)*100-INT(ABS(A1)*10)* 10,) , TEXT(ROUND(ABS(A1)*100-INT(ABS(A1)*10)*10,),"[dbnum2]")&"分","整")) 公式法二: =IF(A1<0,"负",)&TEXT(TRUNC(ABS(A1)),"[DBNum2]G/通用格式")&"元"&IF(ROUND(A1,3) =ROUND(A1,),"整",TEXT(RIGHT(TRUNC(A1*10),1),"[DBNum2]G/通用格式")&"角"&IF (ROUND(A1,3)=ROUND(A1,1),"整",TEXT(RIGHT(ROUND((A1*100),),1),"[DBNum2]G/通用格式")&"分")) 公式法三: =CONCA TENATE(TEXT(INT(A1),"[DBNum2][$-804]G/通用格式")&"元"&IF((INT(A1*10) -INT(A1)*10)=0,"",TEXT(IF(AND(CEILING(A1*100,1)-INT(A1*10)*10=10,INT(A1*1000)-IN T(A1*100)*10>=5),INT(A1*10)-INT(A1)*10 1,INT(A1*10)-INT(A1)*10),"[DBNum2][$-804]G/通用格式")&"角")&IF(OR(INT(A1*100)-INT(A1*10)*10=0,(IF(INT(A1*1000)-INT(A1*100)*10>=5,CEILING( A1* 100,1)-INT(A1*10)*10=10,FALSE))),"整",(IF(INT(A1*1000)-INT(A1*100)*10>=5,(IF(CEILING(A1 *100,1)-INT(A1*10)*10=10,"",(TEXT(CEILING(A1*100,1)-INT(A1*10)*10,"[DBNum2][$-804 ]G/通用格式")&"分"))),(TEXT(INT(A1*100)-INT(A1*10)*10,"[DBNum2][$-804]G/通用格式")&"分")))),"(¥",FIXED(A1,2,TRUE),"元)") 四、VBA代码法(自定义函数) Public Function BigNum(xiaoxie As Currency) Application.Volatile Dim fuhao As String fuhao = "" If xiaoxie < 0 Then

js 数字转换成中文大小写金额

//小写金额转换成中文大写金额 public string CmycurD(decimal num) { string str1 = "零壹贰叁肆伍陆柒捌玖"; //0-9所对应的汉字 string str2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; //数字位所对应的汉字 string str3 = ""; //从原num值中取出的值 string str4 = ""; //数字的字符串形式 string str5 = ""; //人民币大写金额形式 int i; //循环变量 int j; //num的值乘以100的字符串长度 string ch1 = ""; //数字的汉语读法 string ch2 = ""; //数字位的汉字读法 int nzero = 0; //用来计算连续的零值是几个 int temp; //从原num值中取出的值 num = Math.Round(Math.Abs(num), 2); //将num取绝对值并四舍五入取2位小数 str4 = ((long)(num * 100)).ToString(); //将num乘100并转换成字符串形式 j = str4.Length; //找出最高位 if (j > 15) { return "溢出"; } str2 = str2.Substring(15 - j); //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分 //循环取出每一位需要转换的值 for (i = 0; i < j; i++) { str3 = str4.Substring(i, 1); //取出需转换的某一位的值 temp = Convert.ToInt32(str3); //转换为数字 if (i != (j - 3) && i != (j - 7) && i != (j - 11) && i != (j - 15)) { //当所取位数不为元、万、亿、万亿上的数字时 if (str3 == "0") { ch1 = ""; ch2 = ""; nzero = nzero + 1; } else { if (str3 != "0" && nzero != 0) { ch1 = "零" + str1.Substring(temp * 1, 1); ch2 = str2.Substring(i, 1); nzero = 0;

excel中数字转换英文大写程序文件

Function NumbToEnglish(ByVal MyNumber) Dim Temp Dim Inte, Dec Dim DecimalPlace, Count ReDim Place(9) As String Place(2) = " Thousand " Place(3) = " Million " Place(4) = " Billion " Place(5) = " Trillion " ' 将数字Mynumber转换成字符串格式,并去掉多余空格 MyNumber = Trim(Str(MyNumber)) ' 查找小数点“.”位置 DecimalPlace = InStr(MyNumber, ".") ' 如果找到小数点... If DecimalPlace > 0 Then ' 转换小数部分 Temp = Len(Mid(MyNumber, DecimalPlace + 1)) Count = 1 Dec = "" Do While Count - 1 <> Temp Dec = Dec & " " & ConvertDecimal(Mid(MyNumber, DecimalPlace + Count, 1)) Count = Count + 1 Loop ' 去掉小数部分,保留剩下的整数部分留做转换 MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If Count = 1 Do While MyNumber <> "" ' 将最后的三位数字转换成英文数字 Temp = ConvertHundreds(Right(MyNumber, 3)) If Temp <> "" Then Inte = Temp & Place(Count) & Inte If Len(MyNumber) > 3 Then ' 如果整数部分大于三位,再向前移动三位数字重复进行转换 MyNumber = Left(MyNumber, Len(MyNumber) - 3)

excel中数字转换成大写四种方法(第二版)

excel中数字转换成大写四种方法: 一、将本单元格的数字转换成大写: 选定将要转换的单元格,单击鼠标右键,选择“设置单元格格式”,单击“数字”选项页,单击“特殊”项,再在类型中选择“中文大写数字”并确定即可。 二、将别处单元格索引至本单元格,则利用函数TEXT、INT和ROUND组合取值: 比如:将单元格M15的数字转换成大写金额,具体函数如下: =IF(M15<0.005,"",IF(M15<0,"负",)&IF(INT(M15),TEXT(INT(M15),"[dbnum2]")&"元 ",)&IF(INT(M15*10)-INT(M15)*10,TEXT(INT(M15*10)-INT(M15)*10,"[dbnum2]")&"角",IF(INT(M15)=M15,,IF(M15<0.1,,"零")))&IF(ROUND((M15)*100-INT(M15*10)*10,),TEXT(ROUND(M15*100-INT(M15*10)*10,),"[dbnum2]")&"分","整"))

=TEXT(INT(M15),"[DBNUM2]")&"元"&TEXT(MID(M15,LEN(INT(M15))+2,1),"[DBNUM2]D角

")&TEXT(MID(M15,LEN(INT(M15))+3,1),"[DBNUM2]D分")&"整" 四、将别处单元格索引至本单元格,则利用函数NUMBERSTRING、INT和ROUND组合取值: =NUMBERSTRING(M15,2)&"元"&NUMBERSTRING(INT(M15*10)-INT(M15)*10,2)&"角"&NUMBERSTRING(ROUND(INT(M15*100)-INT(M15*10)*10,0),2)&"分整"

excel金额转大写的公式用法

excel金额转大写的公式用法 excel金额转大写的公式用法: 金额转换大写步骤1:将小写数字转换成大写中文:右击需要转换的单元格,在弹出的快捷菜单中选择“设置单元格格式”,然后在“数字”选项卡中选择“特殊”,在“类型”中选择"中文大写数字",这时候原来的数字为12345,在示例里已变成大写的"壹万贰仟叁佰肆拾伍",然后按确定即可。 金额转换大写步骤2:右击需要转换的单元格,在弹出的快捷菜单中选择“设置单元格格式”,然后在“数字”选项卡中选择“自定义”,在“类型”中写入【[dbnum2][$-804]g/通用格式"元""整"】,同样,在示例里已变成大写的"壹万贰仟叁佰肆拾伍",然后按确定即可。 金额转换大写步骤1:=" 人民币:"&if((sum(e2:e4)-int(sum(e2:e4)))=0,text(sum(e2:e4),"[db num2]")&"元整",if(int(sum(e2:e4)*10)-sum(e2:e4)*10=0,text(int(sum(e2: e4)),"[dbnum2]")&"元"&text((int(sum(e2:e4)*10)-int(sum(e2:e4))*10),"[dbnum2] ")&"角整",text(int(sum(e2:e4)),"[dbnum2]")&"元"&if(int(sum(e2:e4)*10)-int(sum(e2:e4))*10=0,"零",text(int(sum(e2:e4)*10)-int(sum(e2:e4))*10,"[dbnum2]")

&"角")&text(right(sum(e2:e4),1),"[dbnum2]")&"分"))&"(¥"&sum(e2:e4)&"元)" 前后加插了字符串的方法,其中sum(e2:e4)是一个求合函数,请按实际要求替换为某个单元格或另外的内容。 使用记事本的替换功能就可以了。 看了excel金额转大写的公式用法

阿拉伯数字转换成中文大写数字的java类

阿拉伯数字转换成中文大写数字的java类 public class AtoC{ public static String[] chineseDigits = new String[] { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; /** * 把金额转换为汉字表示的数量,小数点后四舍五入保留两位 * @param amount * @return */ public static String amountToChinese(double amount) { if(amount > 99999999999999.99 || amount < -99999999999999.99) throw new IllegalArgumentException("参数值超出允许范围(-99999999999999.99 ~99999999999999.99)!"); boolean negative = false; if(amount < 0) { negative = true; amount = amount * (-1); } long temp = Math.round(amount * 100); int numFen = (int)(temp % 10); // 分 temp = temp / 10; int numJiao = (int)(temp % 10); //角 temp = temp / 10; //temp 目前是金额的整数部分 int[] parts = new int[20]; // 其中的元素是把原来金额整数部分分割为值在0~9999 之间的数的各个部分 int numParts = 0; // 记录把原来金额整数部分分割为了几个部分(每部分都在0~9999 之间)for(int i=0; ; i++) { if(temp ==0) break; int part = (int)(temp % 10000); parts[i] = part; numParts ++; temp = temp / 10000; } boolean beforeWanIsZero = true; // 标志“万”下面一级是不是0

相关主题