excel中怎么将表示金额的阿拉伯数字转换成中文大写 Excel如何把阿拉伯数字自动转换成大写金额(含元角分)
一、自定义VBA函数:
Function RMBdx(Optional Mynum As Variant)
'原创:生哥
'来源:www.vip968.com 七彩阳光
'功能:根据数值返回人民币的大写金额。
If IsNumeric(Mynum) = False Then 'IsNumeric() 判断是否为数字
Mynum = 0
End If
Mynum = Round(Mynum, 2) '将数字保留2位小数
If Sgn(Mynum) = 0 Then '判断数字是否为负数,=1为正,=0为零,=-1为负
RMBdx = "" '数字为0,则不显示,如需显示其它信息,请自行修改,如改为 RMBdx = "零圆"
Else
RMBdx = IIf(Sgn(Mynum) = -1, "负", "") & Application.Text(Int(Abs(Mynum)), "[=]g;[dbnum2]") & "圆" '若为负数,则在前加“负”字
If Abs(Mynum) - Int(Abs(Mynum)) > 0 Then '判断数字是否为带小数点
RMBdx = RMBdx & Application.Text(Right(Format(Abs(Mynum) - Int(Abs(Mynum)), "0.00"), 2), "[=]g;[dbnum2]0角0分") '转换小数点后数字
RMBdx = Replace(Replace(RMBdx, "零分", ""), "零角", "零") '如出现“零角”则替换为“零”,如出现“零分”则清除,如需显示“角整”则使用下边一行。
'RMBdx = Replace(Replace(RMBdx, "零分", "整"), "零角", "零") '如出现“零角”则替换为“零”,如出现“零分”则清除,如需显示“角整”则使用本行。
Else
RMBdx = RMBdx & "整"
End If
End If
End Function
二、直接使用公式的最简单方法:
1、显示“角整”
如“10.20元”显示为“壹拾圆贰角整”
=IF(ROUND(A1,2)=0,"",IF(A1<0,"负","")&IF(ABS(A1)>=1,TEXT(INT(ROUND(ABS(A1),2)),"[dbnum2]")&"圆","")&SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(RMB(A1,2),2),"[dbnum2]0角0分;;整"),"零角",IF(A1^2<1,,"零")),"零分","整"))
2、不显示“角整”
如“10.20元”显示为“壹拾圆贰角”
=IF(ROUND(A1,2)=0,"",IF(A1<0,"负","")&IF(ABS(A1)>=1,TEXT(INT(ROUND(ABS(A1),2)),"[dbnum2]")&"圆","")&SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(RMB(A1,2),2),"[dbnum2]0角0分;;整"),"零角",IF(A1^2<1,,"零")),"零分",""))
三、用上述方法验证如图:
c2公式:=rmbdx(B2)
d2公式:=IF(ROUND(B2,2)=0,"",IF(B2<0,"负","")&IF(ABS(B2)>=1,TEXT(INT(ROUND(ABS(B2),2)),"[dbnum2]")&"圆","")&SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(RMB(B2,2),2),"[dbnum2]0角0分;;整"),"零角",IF(B2^2<1,,"零")),"零分","整"))
e2公式:=IF(ROUND(B2,2)=0,"",IF(B2<0,"负","")&IF(ABS(B2)>=1,TEXT(INT(ROUND(ABS(B2),2)),"[dbnum2]")&"圆","")&SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(RMB(B2,2),2),"[dbnum2]0角0分;;整"),"零角",IF(B2^2<1,,"零")),"零分",""))
我觉得这个别人已经写的很好了,这是我的学习笔记。看到这个问题就贴出来。
第三部分确实是我刚写的公式。
不用的话就删吧。
假设数字在A1单元格,目标单元格公式:
=SUBSTITUTE(SUBSTITUTE(IF(ISNUMBER(FIND(".",A1)),TEXT(LEFT(A1,FIND(".",A1)-1),"[dbnum2]")&"元"&TEXT(MID(A1,FIND(".",A1)+1,1),"[dbnum2]")&"角"&TEXT(MID(A1,FIND(".",A1)+2,1),"[dbnum2]")&"分",TEXT(A1,"[dbnum2]")&"元整"),"角分","角整"),"-","负")
格式柄下拉复制公式
1.利用excel编程语言写的宏代码如下:
Sub n2rmb()
Dim cel As Range
Dim str As Variant
Dim m, n
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
For Each cel In Selection
If Not cel.Text Like "*.*" Then
cel.Offset(0, 1) = WorksheetFunction.Text(Val(cel.Text), "[dbnum2]") & "元整"
GoTo line1
End If
str = Split(cel.Text, ".")
m = Val(str(0))
m = WorksheetFunction.Text(m, "[dbnum2]") & "元"
n = str(1)
If Len(n) = 2 Then
n1 = WorksheetFunction.Text(Val(Left(n, 1)), "[dbnum2]") & "角"
n2 = WorksheetFunction.Text(Val(Mid(n, 2, 1)), "[dbnum2]") & "分"
n = n1 & n2
Else
n = WorksheetFunction.Text(Val(str(1)), "[dbnum2]") & "角"
End If
cel.Offset(0, 1) = m & n
line1:
cel.Offset(0, 1).HorizontalAlignment = xlCenter
cel.Offset(0, 1).EntireColumn.AutoFit
Next cel
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
End Sub
2.运行该代码的效果图如下:
要结果的单元格输入公式=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(ISERR(FIND(".0",TEXT(A2,"0.00"))),"角","")&IF(LEFT(RIGHT(ROUND(A2,2),3))=".",TEXT(RIGHT(ROUND(A2,2)),"[DBNum2]")&"分","整"),A2是数字格。
要结果的单元格输入公式=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(ISERR(FIND(".0",TEXT(A2,"0.00"))),"角","")&IF(LEFT(RIGHT(ROUND(A2,2),3))=".",TEXT(RIGHT(ROUND(A2,2)),"[DBNum2]")&"分","整"),A2是数字格。
如何在电子表格中将阿拉伯数字转换为大写金额~
excel中阿拉伯数字转换为大写的方法
1、打开需要操作的excel表格,首先在A1单元格内输入需要转换成大写金额的数字,例如数字“879”。
2、然后在B1单元格内输入“=”符号,用来引用计算数值的单元格。
3、继续输入完整的转换公式:
=SUBSTITUTE(SUBSTITUTE(IF(-RMB(A1,2),TEXT(A1,";负")&TEXT(INT(ABS(A1)+0.5%),"
[dbnum2]G/通用格式元;;")&TEXT(RIGHT(RMB(A1,2),2),"[dbnum2]0角0分;;整"),),"零
角",IF(A1^2<1,,"零")),"零分","整")。
4、最后点击回车按键,即可生成公式的计算结果:数字“879”被转换成为“捌佰柒拾玖元整”。
在EXCEL中怎样使输入的数字生成人民币大写?
答:1、在电脑中打开相关的EXCEL表格,使用鼠标选中需要将数字转换为人民币大写的单元格,并在选中区域内点击鼠标右键,然后点击选择“设置单元格格式”。2、在数字标签页中找到并点击“特殊”选项,然后在右侧选择“中文大写数字”...
在excel中 如何将中文表示的数字转换为阿拉伯数字呢???
答:Function mYff(A As String) As String '中文数字转换成阿拉巴数字 Dim I, J As Integer Dim mYs, mYs2 As String 'mYs存放对应的阿拉巴数字 I = Len(A)mYff = ""For J = 1 To I mYs = Mid(A, J, 1...
如何让Excel中直接显示大写金额
答:用这个办法能直接将阿拉伯数字转换成中文大写金额,而且操作简单。右击需要转换的单元格,在弹出的快捷菜单中选择“单元格格式”,然后在“数字”选项卡中选择“自定义”,在“类型”中写入“[DBNum2]G/通用格式"元"”后按确定即可。瞧,3...
EXCEL中阿拉佰数字如果用大写为什么无法正常排序的问题:
答:解决办法是自定义一个序列。工具-选项-自定义序列,在“输入序列”框中输入一,二,三,四……这样的序列,注意,每个字占一行,不要打逗号。然后在排序时,在排序对话框里单击“选项”按钮,“自定义排序次序”里选择刚...
EXCEL 怎么统计一个时间短内某个公司供应的某个商品金额合计?
答:用Excel里面的自动求和功能,它就可以把你某一个时间段的金额合计起来。
EXCEL中count和通用符号的应用
答:在工作表标签处按住CTRL键不放一一点击你想要设置公式的工作表,然后在你想要的位置设置公式(只在一份工作表中设置公式即可)
一张表中1,2,2,3,4。。。重复出现多次,我用EXCEL什么公式能统计出来表中...
答:2、点“文件/导出文件”,在“文件名”框中输入一个文件名(也可用默认的文件名),注意扩展名为“.bas”,点“保存”。 3、将扩展名为“.bas”的文件拷贝到另一台电脑,打开EXCEL,点“工具/宏/VB编辑器”,调出VB...
如何用签名xcel文档
答:1、制作电子签名样本文件。首先注册成为鹏宇成会员,可免费申请一个电子签名样本,存储方式可以是文件存储或智能卡储,前者需要存储到个人计算机上进行电子签名,后者则需要将此文件写入到个人智能卡中,只有插卡才能进行电子签名。
xcel中如何将表格中时间相加,如A1=1小时50分钟,B1=2小时50分钟,A1+B1...
答:先转为分钟,比如C1就是 =LEFT(A1,FIND("小",A1)-1)*60+MID(A1,FIND("小",A1)+2,FIND("分",A1)-FIND("小",A1)-2)D1就是 =LEFT(B1,FIND("小",B1)-1)*60+MID(B1,FIND("小",B1)+2,FIND("分"...