Excel金额大小写转换及保留2位小数的函数公式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、金额大小写转换
假设数据源在单元格G5,目标单元格是D1,在D1单元格输入如下公式:
=SUBSTITUTE(SUBSTITUTE(IF(G5>-0.5%,,"负")&TEXT(INT(ABS(G5)+0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(FIXED(G5),2),"[dbnum2]0角0分;;"&IF(ABS(G5)>1%,"整",)),"零角",IF(ABS(G5)<1,,"零")),"零分","整")
其实用下面这个就可以了,依我看上面公式中的&IF(ABS(G5)>1%,"整",)是多余的!
=SUBSTITUTE(SUBSTITUTE(IF(G5>-0.5%,,"负")&TEXT(INT(ABS(G5)+0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(FIXED(G5),2),"[dbnum2]0角0分;;"),"零角",IF(ABS(G5)<1,,"零")),"零分","整")
1、这个公式中用了SUBSTITUTE()、IF()、TEXT()、INT ()、ABS()、RIGHT()、FIXED()七个函数,其中TEXT()函数的两次使用都是运用了高级应用,这也是本公式最难看懂的地方,另个为了符合人民币的读数规则;两次使用了SUBSTITUTE()对出现不符合读数规定的字符用有效字符替换,这一点也很重要。

2、本题的基本思路是:一是用IF函数判断需要转换数据的正、
负(如果是正数就不用在数值前显示“正”,负则必须显示“负”字);二是用ABS函数对数据源数值进行求绝对值,然后用IND函数对这个绝对值截取整数部分的数值,再把整数部分的数值交由TEXT函数转换成中文大写;三是对小数部分的数值处理,通过用FIXED函数对源数据进行四舍五入保留2位有效数字并用文本显示,然后用RIGHT 函数将显示的文本从右边截取两位数值(即保留的小数位数据),再把这两位数交由TEXT函数转换成中文大写;四是人民币大写最后有个“整”字也补上。

最后把一至四的结果用“&”连接成一个完整的文本内容,把这个连接的文本交由SUBSTITUTE函数替换两次,第一次让其把连接文本中出现不合规读法字“零角”用“零”替换,第二次“零分”用“整”替换。

最终实现小写到大写的完整转换。

3、细节疑问解释:
①、IF(G5>-0.5%,,"负")。

因为-0.5%=-0.005(即5厘钱或半分,但人民币只保留分位),G5>-0.5%即是G5的值小于5厘,会被四舍五入舍去,如果G5>-0.5%为真,也就是G5是大于或等于0时,显示“空白”,否则显示“负”字;
②、为什么INT(ABS(G5)+0.5%)中要加0.5%?这是为了把数据源G5的千分位上大于或等于5(即5厘钱)及时进位,便于INT函数截取整数的数据正确(即是四舍五入后的整数);
③、TEXT函数的第二个参数"[DBNum2]G/通用格式元;;"和"[dbnum2]0角0分;;" 。

这是对TEXT函数的高级应用,第二个参数是使用了“条件格式”。

基本形式是:TEXT(数据源,"[条件1]显示格式;[条件2]显示格式;否则显示格式;文本显示格式")。

对照两个第二个参数可知,都是用了条件1且条件都是[DBNUM2](即小写转为中文大写)。

但是显示格式不同,前一个是“G/通用格式”并且加了个“元”字,相当于单元格设置中的“常规”并对转换后数字补添整数位单位“元”;后一个是“0角0分”,这个0在这里不是数字0,而是占位符,由两位小数数字依顺序对应填入,这点菜鸟最容易弄错!还有就是显示格里的两个分号(;;)。

根据TEXT函数高级的基本形式,第二个参数有4个显示格式,是用“;”分隔的(共三个;),例中都是用了条件1,本来后面应有三个“;”,为何只有两个而少一个呢?原来仅用条件1时,它包含了大于和等于0两个条件(即包含条件1和条件3)。

唯一完全符合人民币大写规则的函数公式:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(-RMB(G5,2),TEX
T(G5,";负")&TEXT(INT(ABS(G5)+0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(RMB(G5,2),2),"[dbnum2]0角0分;;整"),),"零角",IF(G5^2<1,,"零")),"万",IF(AND(MOD(ABS(G5%),1000)<100,MOD(ABS(G5%),1000)>=1 0),"万零","万")),"零分","整")
二、小写金额都显示两位小数的函数公式:
假设数据源在单元格G5,目标单元格是D1,在D1单元格输入如下
公式:
=TEXT(ROUND(G5,2),"0.00元")
三、插入字符:
假设数据源在单元格G5,目标单元格是D1,在D1单元格输入如下公式:
插入元:=G5&"元"
四、筛选不同项公式=IF(ISNA(VLOOKUP(A2,右边,1,FALSE)),"新","")。

相关文档
最新文档