分享

excel阿拉伯金额数字转换成中文大写形式

 tigeress 2009-12-23
将阿拉伯金额数字转换成中文大写形式的两种方法: 内置函数法、 自定义函数法
一、 内置函数法   
我们将C12 单元格中的数值转换为中文大写形式, 并将结果保存在D12 单元格中。  
1、 分别选中 E13、 F13、 G113 单元格, 依次输入公式: =TEXT(INT(ABS(C12)),"[DBNum2]")、 =TEXT(INT(ABS(C12*10))- INT(ABS(C12))*10,"[DBNum2]")、 =TEXT(INT(ABS(C12*100))- INT(ABS(C12*10))*10,"[DBNum2]")。
      公式含义解析: 分别确定统计结果的元、 角、 分的数值, 并将其转换为中文大写格式。
2、 选中 E10 单元格, 输入公式: =E13&"元"&F13&"角"&G13&"分", 或者: =CONCATENATE(E13,"元",F13,"角",G13,"分")。
      公式含义解析: 将E13 至G13 单元格中的文本组合为一个整体,并在相应位置加上单位“元、 角、 分” 文字。    
3、 再次选中 E12 单元格, 执行“格式→条件格式” 命令, 打开 “条件格式” 对话框。   按“条件1”下面的下拉按钮, 选中“公式” 选项, 在后面的方框中输入“=$C$12<0”,再按“格式” 按钮, 在随后弹出的“单元格格式” 对话框中, 将“字体” 颜色设置为红色, 确定退出。    
4、 选中 C12 单元格, 执行“格式→单元格” 命令, 打开“单元格格式” 对话框, 切换到“数字” 标签下, 选中“分类 ” 下面的“货币” 选项后, 再选中右边“负数” 下面的红色选项,确定退出。     注意: 经过以上两步操作后, 当 C12 中的数值小于零时, 大、 小写结果均以红色显示, 与财务要求相一致。     5、 选中 13 行, 右击鼠标, 在随后弹出的快捷菜单中, 选“隐藏 ” 选项, 将13 行隐藏起来, 不影响正常打印效果。

二、自定义函数法

  显然上面的转换方法比较麻烦。其实,我们可以事先自定义一个函数,然后再用自定义的函数来转换。   1、执行“工具→宏→Visual Basic编辑器”命令,进入“Visual Basic编辑”窗口。执行“插入→模块”命令,插入一个模块(如“模块1”),双击“模块1”在窗口右边展开“模块1(代码)”编辑窗口,输入如下代码。

 Function dxje(q)    ybb = Round(q * 100) '将输入的数值扩大100倍,进行四舍五入   y = Int(ybb / 100) '截取出整数部分   j = Int(ybb / 10) - y * 10 '截取出十分位   f = ybb - y * 100 - j * 10 '截取出百分位   zy = Application.WorksheetFunction.Text(y, "[dbnum2]") '将整数部分转为中文大写   zj = Application.WorksheetFunction.Text(j, "[dbnum2]") '将十分位转为中文大写   zf = Application.WorksheetFunction.Text(f, "[dbnum2]") '将百分位转为中文大写   dxje = zy & "元" & "整"    d1 = zy & "元"    If f <> 0 And j <> 0 Then     dxje = d1 & zj & "角" & zf & "分"     If y = 0 Then      dxje = zj & "角" & zf & "分"     End If    End If    If f = 0 And j <> 0 Then     dxje = d1 & zj & "角" & "整"     If y = 0 Then      dxje = zj & "角" & "整"     End If    End If    If f <> 0 And j = 0 Then     dxje = d1 & zj & zf & "分"     If y = 0 Then      dxje = zf & "分"     End If    End If    If q = "" Then     dxje = 0 '如没有输入任何数值为0    End If   End Function

  注意:①上面代码中英文单引号“'”后面的字符可以不输入,只是用来解释代码的含义。②代码中“dxje”是自定义函数名称,你可以修改为其他字符。

  2、输入完成后,关闭VBA编辑窗口返回工作表状态。

  3、如果要转换C2单元格的数值,并将结果保存的D2单元格中,只要在D2单元格中输入公式:=dxje(C2),确认即可。

注意:通常情况下,自定义的函数只适应于定制的工作簿中,如果要在其它工作簿中使用,请将其制作为加载宏,然后加载一下即可。

  以上自定义函数的代码由“中文Excel应用论坛”网友豆豆提供,在此表示感谢!
 
 
 
方法三:金额转换——一个经典的函数公式
=IF(A1<0,"负","")&IF(ABS(A1)>1,TEXT(TRUNC(ABS(ROUND(A1,2))),"[DBNum2]")&"元","")&IF(ISERR(FIND(".",ROUND(A1,2))),"",TEXT(RIGHT(TRUNC(ROUND(A1,2)*10)),"[DBNum2]"))&IF(ISERR(FIND(".0",TEXT(A1,"0.00"))),"角","")&IF(LEFT(RIGHT(ROUND(A1,2),3))=".",TEXT(RIGHT(ROUND(A1,2)),"[DBNum2]")&"分","整")
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多