100分
标签:大写 小写 a2 a1 公式
回答:4 浏览:5977 提问时间:2006-12-07 17:35
比如我在A1输入12478.24,要在A2同步显示:壹万贰仟肆佰柒拾别元贰角肆分整,要怎么编公式,请各位大侠帮助,
共0条评论...
最佳答案 此答案由提问者自己选择,并不代表爱问知识人的观点
做我的工作经常需要实现这个功能,以往需要手工转换,过去也找过一些小程序进行转换,不过在小程序中显示好好的字符拷进excel中竟成了乱码,郁闷,现在有了这个公式,不用自己设置函数,直接拷贝+替换就完成。很棒! 在EXCEL中,假设A1为数字格式单元格,在任意单元格内粘贴下面公式即可显示大定金额:
=IF(A1<=0,,TEXT(INT(A1),"[dbnum2]人民币G/通用格式")&"元"&IF(INT(A1*10)-INT(A1)*10=0,IF(INT(A1)*(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]")&"分"))
回答:2006-12-07 19:27
提问者对答案的评价:
小渔
[新手]
爱做梦的人,你好:
先在A2输入 =A1
然后用鼠标右键单击A2,在设置单元格格式的"数字"——"分类"中选择"特殊"——""中文大写数字",就OK了.
回答:2006-12-07 18:07
共0条评论...
评论 ┆ 举报
wangli1081
[学妹]
excel下将小写数字转为人民币大写的自定义函数
-在Excel中将小写金额转换成人民币的大写金额的自定义函数及用
法
1、如何自定义:
打开EXCEL,新建一个文件Book1,按ALT+F11进入VBA编程环境,选中
这个BOOK1文件,插入模块,将下面的源代码复制到右边的模块代码
区内,然后将此BOOK1保存,保存类型一定选加载宏,文件名嘛可自由
发挥,我就填"中文大写确定OK!然后回到EXCEL,工具--加载宏-找
到"中文大写打勾确定,我们这个自定义函数就可以象内置函数样
使用了!--->=rmbdx(123456.78),爽吧!
2、例子:
A、直接在函数内输入数值的(请注意参数的用法,默认用法是不
用输入)
=rmbdx(123456.78)---> 壹拾贰万叁仟肆佰伍拾陆元柒角捌分
=rmbdx(123456.78,0)---> 壹拾贰万叁仟肆佰伍拾陆元柒角捌
分
=rmbdx(123456.78,1)---> 壹拾贰万叁仟肆佰伍拾陆元柒角捌
分
=rmbdx(56.78)---> 伍拾陆元柒角捌分
=rmbdx(0.78)---> 柒角捌分
=rmbdx(0.784)---> 柒角捌分
=rmbdx(0.785,1)---> 柒角玖分
=rmbdx(0.02,1)---> 贰分
B、引用某单元格数值进行转换的
假设你的D3单元格的数据(也可以是求和或其它公式得出的结果)
需要转换,大写格式放在D4单元格,则D4输入公式:=rmbdx(d3)即
可
C、其它形如=rmbdx(SUM(C4:C6))的也可以,用法象内置函数,请
灵活使用
3、源代码:
Function rmbdx(value, Optional m = 0)
'中文大写源代码,By 对面男孩、redwin
'支持负数,支持小数点后的第三位数是否进行四舍五入处理
'默认参数为0,即不将小数点后的第三位数进行四舍五入处理
'2002-10-11--2002-10-13
On Error Resume Next
Dim a
Dim jf As String '定义角分位
Dim j '定义角位
Dim f '定义分位
If value < 0 Then '处理正负数的情况
a = "负"
Else
a = ""
End If
If IsNumeric(value) = False Then '判断待转换的value是否为
数值
rmbdx = "需转换的内容非数值"
Else
value = Abs(CCur(value))
'当参数m不输入(默认为0)或为0时,小数点后的第三数不进行四舍
五入处理
'当参数m为1或其它数值时,小数点后的第三数进行四舍五入处理
If m = 0 Then
jf = Fix((value - Fix(value)) * 100)
value = Fix(value) + jf / 100
Else '厘位进行四舍五入实践很少用到,但还是要照顾到
value = Application.WorksheetFunction.Round(value,
2) '-->这句是关键!只用round有bug
jf = Round((value - Fix(value)) * 100, 0)
End If
If value = 0 Or value = "" Then '当待转换数值为0或空时,不
进行转换
rmbdx = ""
Else
strrmbdx = Application.WorksheetFunction.Text(Int
(value), "[DBNum2]") & "元" '转换整数位
If Int(value) = 0 Then
strrmbdx = ""
End If
If Int(value) <> value Then
If jf > 9 Then '判断小数位
j = Left(jf, 1)
f = Right(jf, 1)
Else
j = 0
f = jf
End If
If j <> 0 And f <> 0 Then '角分位都有时
jf = Application.WorksheetFunction.Text
(j, "[DBNum2]") & "角" _
& Application.WorksheetFunction.Text(f, "[DBNum2]")
& "分"
Else
'处理出现零几分的情况
If Int(value) = 0 And j = 0 And f <> 0 Then
jf = Application.WorksheetFunction.Text
(f, "[DBNum2]") & "分"
Else
If j = 0 Then '有分无角时
jf = "零" & Application.WorksheetFunction.Text
(f, "[DBNum2]") & "分"
Else
If f = 0 Then '有角无分时
jf = Application.WorksheetFunction.Text
(j, "[DBNum2]") & "角整"
End If
End If
End If
End If
strrmbdx = strrmbdx & jf '组装
Else
strrmbdx = strrmbdx & "整"
End If
rmbdx = a & strrmbdx '最后成型了
End If
End If
End Function 下载本文