左道人:关于EXCEL函数的问题

来源:百度文库 编辑:中科新闻网 时间:2024/05/15 06:08:44
请EXCEL高手告诉我应该怎么样将EXCEL上某一单元格上的数据,在另一单元格上显示人民币大写的函数。谢谢!

在使用EXCEL过程中,经常需要将数字表示为大写的数字金额,可用以下三种方法来实现:
1、用单元格格式的方法:可以用于整数大写金额的显示,第一次使用时,只需在要转换为大写的数字的单元格中,选“单元格格式”“数字”选项下“特殊格式”的“中文大写数字”,`即可将数字显示为大写,然后再选择“自定义格式”,在类型框中将“[DBnum2]G/通用格式”改为 “[DBnum2]G/通用格式”元整””或“[DBnum2]”元整””。以后直接选用“自定义格式”中“[DBnum2]”元整””即可实现金额的大写显示。
2、用TEXT函数的方法:可用于将整数金额转换为大写的字符串,使用方法为: =TEXT(value,”[DBnum2]”) & ”元整” 其中value为整数的金额数字,“[DBnum2]”为表示为大写的格式字符,如:=TEXT(12000,”[DBnum2]”) &”元整” 结果为“壹万贰仟元整”
=TEXT(12,”[DBnum2]”) &“元整” 结果为“壹拾贰元整”3、使用自定义函数方法:可以实现任意数字的金额大写转换。如自定义函数名称为RMB_DX,其VB代码如下:
Function RMB_DX(money As Variant)
Dim m1 As Long, n1 As Long, n2 As Integer, n3 As Integer
m1 = Application.WorksheetFunction.Round(money * 100, 0)
n1 = Int(m1 / 100)
n2 = Int(m1 / 10) - n1 * 10
n3 = m1 - n1 * 100 - n2 * 10
If n3 = 0 Then
RMB_DX = "整"
Else
RMB_DX = Application.WorksheetFunction.Text(n3, "[DBnum2]") & "分"
End If
If n2 = 0 Then
If n1 <> 0 And n3 <> 0 Then RMB_DX = "零" & RMB_DX
Else
RMB_DX = Application.WorksheetFunction.Text(n2, "[DBnum2]") & "角" & RMB_DX
End If
If n1 <> 0 Or m1 = 0 Then
RMB_DX = Application.WorksheetFunction.Text(n1, "[DBnum2]") & "元" & RMB_DX
End IfEnd Function需注意的是:VB代码中为避免小数计算处理的误差,需将金额数字扩大100倍用ROUND函数四舍五入取整,再分别计算出元、角、分的值,而不能直接用代码 m1=Application.WorksheetFunction.Round(money,2)(这时m1类型为Variant),如money值等于2.05时,用上式m1=2.05,但m1*100的结果等于204使用RMB_DX自定义函数举例如下:
=RMB_DX(1203) 计算结果为“壹仟贰佰零叁元整”
=RMB_DX(2.5) 计算结果为“贰元伍角整”
=RMB_DX(2.05) 计算结果为“贰元零伍分”
=RMB_DX(0.35) 计算结果为“叁角伍分”
=RMB_DX(0.06) 计算结果为“陆分”

好象excel中没有转换货币大写的函数
只能通过编写宏代码了

有一个大写的隐藏函数。
=NUMBERSTRING(A1,2)
试试看。

使用这个函数NUMBERSTRING(A1,2)
比如第一格A1中数字是123
使用函数=NUMBERSTRING(A1,1)计算结果为“一百二十三”
使用函数=NUMBERSTRING(A1,2)计算结果为“壹佰贰拾叁”
使用函数=NUMBERSTRING(A1,3)计算结果为“一二三”
你可以用再和CONCATENATE函数组合使用公式为:=CONCATENATE(NUMBERSTRING(A1,2),"元整")计算结果就得到“壹佰贰拾叁元整”
如果有小数点可以再加一个IF语句函数。
自己可以探索一下。