1. 首页
  2. > 商标注册 >

excel换大写数字财务(excel财务大写转换)





使用过Microsoft Excel电子表的人(尤其是财务人员),经常会遇到将阿拉伯数字转换成人民币大写的问题,如:在D25单元格中有自动求和后的一串阿拉伯数字“789456.65”元,需要在A25单元格中自动转换为“人民币大写:柒拾捌万玖仟肆佰伍拾陆元陆角伍分”,如果用手动去填写也未尝不可,但是,只要D25的数字一变,就得重新填写一次,非常麻烦,尤其是在进行财务报表应用时,就更不方便,如果能自动转换,就会方便得多。


说到这,有的人可能会说:这还不方便?使用单元格格式设置功能,将A25单元格的格式设置成“特殊”格式中的“中文大写数字”不就得了,何必这么复杂呢?


其实,对于这一功能我们可能都使用过,其结果会怎样呢?大家都知道,在Microsoft Excel中,仅仅使用格式设置的方法是不能达到目的的!譬如:将阿拉伯数字“789456.65”通过格式设置的方法,其结果只能得到“柒拾捌万玖仟肆佰伍拾陆点陆伍”,而不是“柒拾捌万玖仟肆佰伍拾陆元陆角伍分”。这是因为,在Microsoft Excel中没有一个单一的函数能完成这样复杂的运算,必须使用多个函数进行条件运算才能实现。


如何才能实现这样复杂的函数运算呢?


我这里有一组条件运算的方法,这一组条件运算的方法,是基于G19单元格中阿拉伯数字值进行自动转换的,将这一组条件运算函数写到哪个单元格,这个单元格就会自动将G19中的阿拉伯数字转换成人民币大写数值,不信?您试试?


我们将G19单元格确定为数据汇总后的人民币小写数值(即阿拉伯数字),需要在B19单元格中自动转换成人民币大写数值,那么,请选定B19单元格,将下面的多个函数条件运算语句写入并按回车键,看看结果会怎样?


="人民币大写: "&IF((G19-INT(G19))=0,TEXT(G19,"[DBNUM2]")&"元整",IF(INT(G19*10)-G19*10=0,TEXT(INT(G19),"[DBNUM2]")&"元"&TEXT((INT(G19*10)-INT(G19)*10),"[DBNUM2]")&"角整",TEXT(INT(G19),"[DBNUM2]")&"元"&IF(INT(G19*10)-INT(G19)*10=0,"零",TEXT(INT(G19*10)-INT(G19)*10,"[DBNUM2]")&"角")&TEXT(RIGHT(G19,1),"[DBNUM2]")&"分"))



结果很明显,完全正确地实现了人民币大写转换!说到这,应该大功告成了。但是,大家可能会说:这一串函数运算是怎么回事?看不懂。是的,对于初学者来说,可能是很复杂也根本看不懂,那么,我就再哆嗦几句,给大家再讲一讲其运算的思路和方法吧。


要弄明白,还得讲清楚两个方面的问题:


第一方面:对于单元格中的人民币数值而言,有四种可能性出现:


即:整数(精确到元);1位小数(精确到角);2位小数(精确到分),中间出现零。因此,就有四种判断,是整数还是小数?是1位小数还是2位小数?中间是否出现零?


从上面的运算过程中可以看出,IF((G19-INT(G19))=0,TEXT(G19,"[DBNUM2]")&"元整"为整数时的条件运算方法,IF(INT(G19*10)-G19*10=0,TEXT(INT(G19),"[DBNUM2]")&"元"&TEXT((INT(G19*10)-INT(G19)*10),"[DBNUM2]")&"角整"为1位小数时的条件运算方法,而TEXT(INT(G19*10)-INT(G19)*10,"[DBNUM2]")&"角")&TEXT(RIGHT(G19,1),"[DBNUM2]")&"分"))则是有2位小数的条件运算方法,对于中间出现零,则用IF(INT(G19*10)-INT(G19)*10=0,"零"来进行运算。


第二方面:对于函数而言,我们必须弄明白以下几个函数的意义和语句格式。


1、条件判断函数IF:执行真假值判断,根据逻辑计算的真假值,返回不同结果。


可以使用函数 IF 对数值和公式进行条件检测。


语法



IF(logical_test,value_if_true,value_if_false)


Logical_test 表示计算结果为 TRUE 或 FALSE 的任意值或表达式。例如,A10=100 就是一个逻辑表达式,如果单元格 A10 中的值等于 100,表达式即为 TRUE,否则为 FALSE。本参数可使用任何比较运算符。


Value_if_true logical_test 为 TRUE 时返回的值。例如,如果本参数为文本字符串“预算内”而且 logical_test 参数值为 TRUE,则 IF 函数将显示文本“预算内”。如果 logical_test 为 TRUE 而 value_if_true 为空,则本参数返回 0(零)。如果要显示 TRUE,则请为本参数使用逻辑值 TRUE。Value_if_true 也可以是其他公式。


Value_if_false logical_test 为 FALSE 时返回的值。例如,如果本参数为文本字符串“超出预算”而且 logical_test 参数值为 FALSE,则 IF 函数将显示文本“超出预算”。如果 logical_test 为 FALSE 且忽略了 Value_if_false(即 value_if_true 后没有逗号),则会返回逻辑值 FALSE。如果 logical_test 为 FALSE 且 Value_if_false 为空(即 value_if_true 后有逗号,并紧跟着右括号),则本参数返回 0(零)。Value_if_false 也可以是其他公式。


2、向下舍取整数函数INT:这个函数的功能是将数字向下舍入到最接近的整数。


语法



INT(number)


Number 需要进行向下舍入取整的实数。


3、数值文本转换函数TEXT:将数值转换为按指定数字格式表示的文本。


语法



TEXT(value,format_text)


Value 为数值、计算结果为数字值的公式,或对包含数字值的单元格的引用。


Format_text 为“单元格格式”对话框中“数字”选项卡上“分类”框中的文本形式的数字格式。


4、返回字符串中最后1个或多个字符函数RIGHT:根据所指定的字符数返回文本字符串中最后一个或多个字符。


语法



RIGHT(text,num_chars)


Text 是包含要提取字符的文本字符串。


Num_chars 指定希望 RIGHT 提取的字符数。


5、文本运算符&:将两个文本值连接或串起来产生一个连续的文本值。


6、格式命令DBNUM2:将该单元格或字符串的格式设置为“特殊”格式中的“中文大写数字”格式。


讲清了可能出现的四种情况和几个运算函数,现在,再来谈谈条件运算的思路。要完全正确地进行人民币大写转换,就必须应用以上的条件判断通过函数运算来实现。


首先,要在字符串前面加上“人民币大写:”的中文字,并与后面的大写字符串连接起来,形成一个完整的书写格式,就必须应用文本运算符“&”,因此,语句开头必须写“="人民币大写: "&”,使它与后面的字符串连接起来,后面的“元”、“角”、“分”、“整”等均应用这个方法来实现。


第二,针对可能出现整数(即精确到元)的情况,需要判断是否为整数。应用“IF((G19-INT(G19))=0,TEXT(G19,"[DBNUM2]")&"元整"”语句进行条件判断和函数运算,如果G19单元格中的数值减去该单元格数值向下舍取整数后为0,则表明该数值为整数,那么,直接将该数值的格式设置为“特殊”格式中的“中文大写数字”格式,并在后面加上“元整”字符串,如果不是,则进行下面的判断。


第三,针对可能出现1位小数(即精确到角)的情况,需要继续进行判断其是否为1位小数。应用“IF(INT(G19*10)-G19*10=0,TEXT(INT(G19),"[DBNUM2]")&"元"&TEXT((INT(G19*10)-INT(G19)*10),"[DBNUM2]")&"角整"”语句进行条件判断和函数运算,如果该数值为1位小数,则该数值乘以10后向下舍取整数的值应与该数值直接乘以10的值相等,即INT(G19*10)-G19*10=0,当INT(G19*10)-G19*10=0时,说明条件为真,否则,进行下面的函数运算。


第四,针对可能出现2位小数(即精确到分)的情况,应用“TEXT(INT(G19*10)-INT(G19)*10,"[DBNUM2]")&"角")&TEXT(RIGHT(G19,1),"[DBNUM2]")&"分"”的语句进行函数运算,其原理与上述基本相同,不同之处是这里应用了返回文本字符串中最后一个或多个字符“RIGHT”。通过TEXT(RIGHT(G19,1),"[DBNUM2]")&"分"语句完成最后1位数值(即分)的转换。


第五,针对中间可能出现零的情况,需要应用“IF(INT(G19*10)-INT(G19)*10=0,"零"”语句来进行运算。


通过以上五种条件判断和函数运算,就可以正确地进行人民币大写数字转换了。


本人也是初学者,也是通过查阅了很多资料后才对此方法有一点理解并能进行函数运算的,希望我的这点体会能对您的工作有所帮助,如有不正确的地方,还请谅解并提出宝贵意见为盼!


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至123456@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息