郯国故城项目规划:excel大小写切换

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 08:02:42
对于用EXCEL来处理日常统计报表的财务人员来说,一个最令人头痛的问题,就是如何将表示金额的阿拉伯数字转换成中文大写形式。

  这里笔者给出将阿拉伯金额数字转换成中文大写形式的两种方法:内置函数法、自定义函数法,供大家参考。文章末尾提供.xls文件供大家下载参考。

  本文所涉及到的Excel函数如下,点击可查阅具体的函数用法。

  1、ABS(number)
  2、CONCATENATE(Text1,Text……)
  3、INT(number)
  4、TEXT(value,format_text)
  5、自定义函数  一、内置函数法

  如图1所示,我们来将C12单元格中的数值转换为中文大写形式,并将结果保存在D12单元格中。 将结果保存在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)。 按“条件1”下面的下拉按钮,选中“公式”选项,在后面的方框中输入“=$C$12<0”(如图2),再按“格式”按钮,在随后弹出的“单元格格式”对话框中(如图3),将“字体”颜色设置为红色,确定退出。



  4、选中C12单元格,执行“格式→单元格”命令,打开“单元格格式”对话框(如图4),切换到“数字”标签下,选中“分类”下面的“货币”选项后,再选中右边“负数”下面的红色选项,确定退出。


  注意:经过以上两步操作后,当C12中的数值小于零时,大、小写结果均以红色显示,与财务要求相一致。

  5、选中13行,右击鼠标,在随后弹出的快捷菜单中,选“隐藏”选项,将13行隐藏起来,不影响正常打印效果。  至此,转换工作结束,效果参见图1所示。
  二、自定义函数法

  显然上面的转换方法比较麻烦。其实,我们可以事先自定义一个函数,然后再用自定义的函数来转换。   1、执行“工具→宏→Visual Basic编辑器”命令,进入“Visual Basic编辑”窗口(如图5)。执行“插入→模块”命令,插入一个模块(如“模块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单元格中(如图6),只要在D2单元格中输入公式:=dxje(C2),确认即可(参见图6)。


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