分享

【Excel教程】如何将小写金额转为大写

 初风Excel教学 2022-02-22

一、金额为整数

如下图所示,A2:A5为整数金额,最小单位是元,没有角和分。将整数小写金额转为大写比较简单,只需要使用Text函数即可。

Text函数可以将数值转成指定格式的文本,语法为Text(value,format_text)。当参数format_text指定为“[dbnum2]”时,可以将小写数字转为中文大写数字,例如“12”显示为“壹拾贰”。

但是当金额有小数,有角和分时,只使用Text函数会转换错误。如下图所示:

使用Text函数转换的大写金额仍然保留了小数点,而且无法区分角和分。

二、金额有小数

如下图所示,A2:A6的金额有小数。将小写金额转为大写金额,需要在B2单元格输入公式

=IF(INT(A2),TEXT(INT(A2),"[dbnum2]")&"元",)&IF(INT(A2*10)-INT(A2)*10,TEXT(INT(A2*10)-INT(A2)*10,"[dbnum2]")&"角",IF(INT(A2)=A2,,IF(A2<0.1,,"零")))&IF(ROUND(A2*100-INT(A2*10)*10,),TEXT(ROUND(A2*100-INT(A2*10)*10,),"[dbnum2]")&"分","整")

公式解析:

1、“TEXT(INT(A2),"[dbnum2]")”是为了取得A列金额的整数部分。Int函数是取整函数,例如Int(12.34)结果为12。如下图所示,使用Text-Int函数可以取得整数,即单位为“元”的部分。

当金额不足1元时,Text-Int函数返回“零”,例如C2单元格。当不足1元时,无需返回“零元”,因此使用IF函数进行条件判断。IF(INT(A2),TEXT(INT(A2),"[dbnum2]")&"元",)指当Int(A2)=0(即A2<1)时,返回空值。

2、TEXT(INT(A2*10)-INT(A2)*10,"[dbnum2]")&"角"是为了获得A列金额中的“角”。Int(A2*10)将A2单元格的金额扩大10倍后取整,舍弃原金额的“分”。Int(A2)*10取整后扩大10倍,舍弃原金额的“角”和“分”,两者的差额INT(A2*10)-INT(A2)*10就是原金额的“角”。然后使用Text函数将小写数字转为中文大写,并添加单位“角”。

C3和C5单元格返回的结果都是“零角”,其中C3为12元整,无需返回“零角”,C5为“零角陆分”,需要返回“零角”,因此需要使用IF函数判断是否需要返回“零角”。

IF(INT(A2*10)-INT(A2)*10,TEXT(INT(A2*10)-INT(A2)*10,"[dbnum2]")&"角",IF(INT(A2)=A2,,IF(A2<0.1,,"零"))),指当A列金额为整数或不足1角时,无需返回“零角”。

3、TEXT(ROUND(A2*100-INT(A2*10)*10,),[dbnum2]")&"分"是为了获得A列金额中的“分”。IF(ROUND(A2*100-INT(A2*10)*10,),TEXT(ROUND(A2*100-INT(A2*10)*10,),"[dbnum2]")&"分","整")表示当“零分”时,如C3、C4,则在大写金额后加整。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多