在Excel中实现中文大写数字的方法
发布时间:2010-06-08 20:50:36 作者:佚名
我要评论
在Excel中实现中文大写数字的方法,需要的朋友可以参考下。
一、自动更正法
使用自动更正功能,可以简化用户对大写汉字的输入操作,例如可以将“1//”定义更正为“壹”,那么当要输入“壹”时,就可通过键入“1//”来实现。另外,这种定义以后不仅在Excel中有效,在Word中也同样有效,因为“自动更正”程序是Office组件所公用的。
用“自动更正”是最简单易行的,用户可自由、方便地输入要写的大写读法。然而它的局限性也很明显,即它虽然给使用者提供了输入大写数字的方便手段,但终究还是需要人工输入,不能自动、实时地依当前的实际数字结果进行更新。
二、工作表函数替换法
要做到数值的自动更新,一般都会想到用VB构造函数法,但其实我们可采用一个简单的方法,即工作表函数的替换法。顾名思义,所谓“工作表函数的替换法”,就是将原来的结果换去一部分。那么换什么,又怎样换?
我们知道,在Excel中,提供了多种数字的显示格式。其中文版实际上也包括数字的大写读法显示格式,但遗憾的是这个功能对一般用户来说基本上不能用,因为Microsoft在实现这个数字显示格式时犯了一个小小的错误,例如“33.56”这个数,它显示出来的是“叁拾叁.伍陆”。很显然,没有将小数点作有效处理。
虽然这个显示格式是错的,但其劳动成果还是能为我们所用——只要能设法将其小数点作有效处理。做到这一点也并不难,可以先将数字以其内置的中文大写显示格式转变为文本格式,即使用TEXE( )函数将其结果转化为字符串,然后将小数点“.”用汉字“点”换掉(使用SUBSTITUTE( )函数。
例如,若要将B1单元格内容重写为大写,则可以在单元格中输入如下公式:
=SUBSTITUTE(TEXT(B1,"G/通用格式"),".","点")
使用这样一个小小的公式应当说并不复杂,不过,这样做仍不能满足某些情况下的要求,因为使用大写表示数额一般只应用于财会方面,其他很少这么用。在上例中,对数字“33.56”,往往要求结果写为“叁拾叁元伍角陆分”。那么,如何将“33.00”写为“叁拾叁元整”呢?
实现这一功能的逻辑也不太复杂。我们可以看到,Excel显示格式的小数点前的数字读法是没有错的,可将其取出来作为一个字符串;小数点后面的数字则麻烦些,必取出来,再以低位是否都为“0”来判断是要写“整”还是“零”。还要将“元”、“角”、“分”等字串适当地插入,最后把几个字串连接起来就行了。我们仍将B1 单元格内容作格式转化,则具体实现如下:
=TEXT(INT(B1),"G/通用格式")&"元"&IF((INT(B1*10)-INT(B1) *10)=0," ",TEXT(INT(B1*10) - INT (B1) * 10 ,"G/通用格式") &"角")&IF((INT(B1*100)-INT(B1*10) *10)=0,"整",TEXT (INT (B1*100) - INT ( B1*10) *10,"G/通用格式")&"分")
写这么一长串的公式看来似乎有些吓人,但是,如果在常要修改数据的表中或在模板里以这个方法实现大写汉字显示的话,则以后不但省事而且不易出错。
三、VB编程法的思路
可以用VB写一个函数,以后可像Excel的内部函数一样直接被调用,不过这需要熟悉VB编程。在编程过程中可用一般的方法调用VB函数,也可以借用我们前面所列“代换法”中的函数。但前面的公式中用的大多是Excel的工作表函数,在VB中不能直接使用,若非要用,也只能通过层次关系调用它(即用“Application WorksheetFunction”方式调用)。
但个人认为最好自己用VB函数写,因为这样的话,较通用且可移植性好。若只用VB函数,具体方法与代换法也有类似之处,但小数点前的处理要复杂得多,相应的代码也太长。
使用自动更正功能,可以简化用户对大写汉字的输入操作,例如可以将“1//”定义更正为“壹”,那么当要输入“壹”时,就可通过键入“1//”来实现。另外,这种定义以后不仅在Excel中有效,在Word中也同样有效,因为“自动更正”程序是Office组件所公用的。
用“自动更正”是最简单易行的,用户可自由、方便地输入要写的大写读法。然而它的局限性也很明显,即它虽然给使用者提供了输入大写数字的方便手段,但终究还是需要人工输入,不能自动、实时地依当前的实际数字结果进行更新。
二、工作表函数替换法
要做到数值的自动更新,一般都会想到用VB构造函数法,但其实我们可采用一个简单的方法,即工作表函数的替换法。顾名思义,所谓“工作表函数的替换法”,就是将原来的结果换去一部分。那么换什么,又怎样换?
我们知道,在Excel中,提供了多种数字的显示格式。其中文版实际上也包括数字的大写读法显示格式,但遗憾的是这个功能对一般用户来说基本上不能用,因为Microsoft在实现这个数字显示格式时犯了一个小小的错误,例如“33.56”这个数,它显示出来的是“叁拾叁.伍陆”。很显然,没有将小数点作有效处理。
虽然这个显示格式是错的,但其劳动成果还是能为我们所用——只要能设法将其小数点作有效处理。做到这一点也并不难,可以先将数字以其内置的中文大写显示格式转变为文本格式,即使用TEXE( )函数将其结果转化为字符串,然后将小数点“.”用汉字“点”换掉(使用SUBSTITUTE( )函数。
例如,若要将B1单元格内容重写为大写,则可以在单元格中输入如下公式:
复制代码
代码如下:=SUBSTITUTE(TEXT(B1,"G/通用格式"),".","点")
使用这样一个小小的公式应当说并不复杂,不过,这样做仍不能满足某些情况下的要求,因为使用大写表示数额一般只应用于财会方面,其他很少这么用。在上例中,对数字“33.56”,往往要求结果写为“叁拾叁元伍角陆分”。那么,如何将“33.00”写为“叁拾叁元整”呢?
实现这一功能的逻辑也不太复杂。我们可以看到,Excel显示格式的小数点前的数字读法是没有错的,可将其取出来作为一个字符串;小数点后面的数字则麻烦些,必取出来,再以低位是否都为“0”来判断是要写“整”还是“零”。还要将“元”、“角”、“分”等字串适当地插入,最后把几个字串连接起来就行了。我们仍将B1 单元格内容作格式转化,则具体实现如下:
复制代码
代码如下:=TEXT(INT(B1),"G/通用格式")&"元"&IF((INT(B1*10)-INT(B1) *10)=0," ",TEXT(INT(B1*10) - INT (B1) * 10 ,"G/通用格式") &"角")&IF((INT(B1*100)-INT(B1*10) *10)=0,"整",TEXT (INT (B1*100) - INT ( B1*10) *10,"G/通用格式")&"分")
写这么一长串的公式看来似乎有些吓人,但是,如果在常要修改数据的表中或在模板里以这个方法实现大写汉字显示的话,则以后不但省事而且不易出错。
三、VB编程法的思路
可以用VB写一个函数,以后可像Excel的内部函数一样直接被调用,不过这需要熟悉VB编程。在编程过程中可用一般的方法调用VB函数,也可以借用我们前面所列“代换法”中的函数。但前面的公式中用的大多是Excel的工作表函数,在VB中不能直接使用,若非要用,也只能通过层次关系调用它(即用“Application WorksheetFunction”方式调用)。
但个人认为最好自己用VB函数写,因为这样的话,较通用且可移植性好。若只用VB函数,具体方法与代换法也有类似之处,但小数点前的处理要复杂得多,相应的代码也太长。
相关文章

阳历/农历转换对照表怎么做? Excel制作日历表/万年历的最终版
想要制作阳历/农历转换对照表,,通过这个对照表,你只需知道阳历日期,就可以快速准确的找到对应的农历日期,下面我们就来看看详细制作方法2025-04-10
工作上需要制作一个日历表/万年历,该怎么制作呢?我们需要使用三个excel函数来实现,详细请看下文介绍2025-04-10
Excel中有一个功能非常强大的函数,它就是SUMPRODUCT函数,既能求和、计数、权重计算,还能排名等,今天我们就来看看Excel根据权重求和的技巧2025-04-10
tocol函数哪个版本能用? excel中tocol函数的两种高级用法
TOCOL函数公式非常强大,值得一学,从字面意义可以理解出来,它是将数据转换成一列的,今天分享TOCOL函数的2种高级用法2025-04-10
Excel隐藏行和折叠行有什么不同? 隐藏行和折叠使用方法和区别介绍
excel表格进行操作的时候,发现有隐藏和和折叠行,看上去效果一样,都隐藏了,但是两者是有很大区别的,详细请看下文介绍2025-03-21
Excel工龄计算不再愁! Excel隐藏函数DATEDIF轻松计算精确到天级的工龄
在日常工作中,我们经常需要计算员工的工龄,以便进行人事管理、薪资调整等工作,本文将详细介绍如何在Excel表格中计算工龄,并提供多种实用方法供您选择2025-03-13
Excel数据处理遇到的问题,99%都是由于奇葩的数据格式造成的,今天跟大家整理了几个Excel表格构建的规则,先不要问为什么,照着做就对了2025-03-06
Excel透视表1月到12月不能排序怎么办? 数据透视表日期无法排序解决方法
如图对数据透视表日期进行升序排序后,仍不是我们想要的结果,有可能月份是文本,不能排列,下面我们就来看看详细解决办法2025-03-06
首先咱们得明确一下账龄的概念,简单来说,账龄就是某个账户的余额从产生到现在的时间长度,比如,一年以内的账龄就是那些在过去一年内产生的债权或债务,下面我们就来看看2025-03-06
实现办公自动化! DeepSeek搭配Excel制作自定义按钮的技巧
DeepSeek生成想要的代码很方便,如果将生成的代码放到excel中作为vba代码使用,岂不是能实现办公自动化?下面我们就来看看实现方法2025-03-05



最新评论