
今天处里要我用EXCEL做一个电子版的汇出汇款申请书,主要是提供给一些大客户使用。这样他们就可以直接在电脑上填写,希望客户在输入一些基本的要素后,电脑能够生成我行标准的汇出汇款申请书,不用手写了。我一向对能够提高EXCEL水平的事都很积极,在做的过程中,其他的都很容易,无非单元格引用,但在金额大小写转换时遇到了难题。
主要原因是:EXCEL虽然在单元格设置里可以将小写数字转换成中文大写,但遇到角分时,会有一点点问题。比如美元123.45,按照中文大写应该是美元壹佰贰拾叁元肆角伍分,EXCEL转换后却是“壹佰贰拾叁.肆伍”。思考了一下,看来只能通过分离整数部分、小数角、小数分来实现。同时按照习惯,若没有分位时,习惯在后面加上一个“整”字,这个问题也要考虑进去。因此函数要判断是否是整数、是否到角位。经过反复调试,终于成功了。实现方法如下:
假设要转换的数字在A1,我们通过分离在三个单元格来实现,A2显示整数位,B2显示角位,C2显示分位。如果上一位是最后一位,则改为不显示。
=IF(INT(A1)-A1=0, TEXT(INT(A1),"[DBNum2][$-804]G/通用格式")&"元整",TEXT(INT(A1),"[DBNum2][$-804]G/通用格式")&"元")
=IF(INT(A1)-A1=0,"",IF(A1*10-INT(A1*10)=0,TEXT(INT(A1*10-INT(A1)*10),"[DBNum2][$-804]G/通用格式")&"角整",TEXT(INT(A1*10-INT(A1)*10),"[DBNum2][$-804]G/通用格式")&"角"))
=IF(INT(A1*10)-A1*10=0,"",TEXT(INT(A1*100-INT(A1*10)*10),"[DBNum2][$-804]G/通用格式")&"分")
通过调整单元格大小,而且将A2设为居右、B2设为居中、C2设为居左可以实现。但拼凑出来的在显示上毕竟不够美观,而且B2单元格有时候两个字,有时候三个字,这时我想到了单元格文本数值的合并,经过测试,也最终实现了在一个单元格显示。方法如下:
在第二行输入完公式后,隐藏起来,做为过渡单元格,在A3栏输入“=A2&B2&C2”,大写在一个单元格显示出来了,就这么简单!
无限我的无线
两年
2005/06/15 15:49 |






=CONCATENATE(IF(TRUNC(E12)<>0,TEXT(TRUNC(E12),"[DBNum2]G/通用格式")&"圆",""),IF(TRUNC(E12,1)-TRUNC(E12)<>0,TEXT(ROUND((TRUNC(E12,1)-TRUNC(E12))*10,0),"[DBNum2]G/通用格式")&"角",""),IF(TRUNC(E12,2)-TRUNC(E12,1)<>0,TEXT(ROUND((TRUNC(E12,3)-TRUNC(E12,1))*100,0),"[DBNum2]G/通用格式")&"分",""),"整")