如何在EXCEL表的单位格中把变数量变成金额,如12345.5元利用公式自动变成壹万贰仟叁佰肆拾伍元伍角整。

来源:百度知道 编辑:UC知道 时间:2024/06/09 17:54:11
如何在EXCEL表的单位格中把变数量变成金额,如12345.5元利用公式自动变成壹万贰仟叁佰肆拾伍元伍角整。
经得知有如下公式能解决,但实在想不明白,请指教!(E4代表单元格)

=IF(ISNUMBER(E4),IF(TRUNC(E4)=0,IF(AND(MID(TEXT(TRUNC(E4,2),"0.00"),LEN(TEXT(TRUNC(E4,2),"0.00"))-1,1)="0",RIGHT(TEXT(TRUNC(E4,2),"0.00"),1)="0"),"零元",""),(IF(E4<0, "负",""))&TEXT(TRUNC(ABS(E4)),"[DBNUM2]")&"元")&(IF(MID(TEXT(TRUNC(ABS(E4),2),"0.00"),LEN(TEXT(TRUNC(ABS(E4),2),"0.00"))-1,1)="0",IF(OR(TRUNC(ABS(E4))=0,RIGHT(TEXT(TRUNC(ABS(E4),2),"0.00"),1)="0"),"","零"),TEXT(MID(ABS(E4),LEN(TEXT(TRUNC(ABS(E4),2),"0.00"))-1,1),"[DBNUM2]")&"角"))&(IF(RIGHT(TEXT(TRUNC(ABS(E4),2),"0.00"),1)="0","整",TEXT(RIGHT(TEXT(TRUNC(ABS(E4),2),"0.00"),1),"[DBNUM2]")&"分")),"不是有效金额,请重新输入!")&"。"

并且以上公式中ISNUMBE

假设数据在A2单元格,则B2输入
=IF(A2="","",IF(A2<0,"负",)&IF(INT(A2),TEXT(INT(ABS(A2)),"[dbnum2]")&"元",)&IF(INT(ABS(A2)*10)-INT(ABS(A2))*10,TEXT(INT(ABS(A2)*10)-INT(ABS(A2))*10,"[dbnum2]")&"角",IF(INT(ABS(A2))=ABS(A2),,IF(ABS(A2)<0.1,,"零")))&IF(ROUND(ABS(A2)*100-INT(ABS(A2)*10)*10,),TEXT(ROUND(ABS(A2)*100-INT(ABS(A2)*10)*10,),"[dbnum2]")&"分","整"))

实际上就是EXEL函数:TEXT()的应用.

EXCEL中TEXT函数与日期函数详解:http://hi.baidu.com/dy111/blog/item/04e6139518b5a3017af480dc.html

请看:
http://zhidao.baidu.com/question/106586506.html

ISNUMBER、AND 、OR 这些都是Excel中的函数,具体作用,你可以打开插入函数对话框,里面有说明的。 [DBNUM2]是数字转为人民币大写的格式。

要这么烦吗?下面这个很简单。
=SUBSTITUTE(S