搜档网
当前位置:搜档网 › 将阿拉伯数字转化为大写金额的公式

将阿拉伯数字转化为大写金额的公式

将阿拉伯数字转化为大写金额的公式

付款金额:¥123,456,789.12

大写:壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角贰分

单元格B6函数编辑如下:

=IF(ROUND(B6,2)<0,"无效数值",IF(ROUND(B6,2)=0,"零",IF(ROUND(B6,2)<1,"",TEXT(INT(ROUND(B6,2)),"[dbnum2]")&"元")&IF(INT(ROUND(B6,2)*10)-

INT(ROUND(B6,2))*10=0,IF(INT(ROUND(B6,2))*(INT(ROUND(B6,2)*100)-INT(ROUND(B6,2)*10)*10)=0,"","零"),TEXT(INT(ROUND(B6,2)*10)-INT(ROUND(B6,2))*10,"[dbnum2]")&"角")&IF((INT(ROUND(B6,2)*100)-INT(ROUND(B6,2)*10)*10)=0,"整",TEXT((INT(ROUND(B6,2)*100)-INT(ROUND(B6,2)*10)*10),"[dbnum2]")&"分")))

函数应用分析:

一、ROUND,数学和三角函数:将数字按指定位数舍入

(ROUND(B6,2),即对单元格B6的内容进行四舍五入处理,且保留两位小数

二、INT,数学和三角函数:将数字向下舍入到最接近的整数

INT(ROUND(B6,2),即对单元格B6在进行四舍五入保留两位小数的基础上,去掉小数点后面的位数,即只显示整数,此时,INT(ROUND(B6,2)和INT(B6)效果是一样的。

三、TEXT,文本函数:设置数字格式并将其转换为文本;[dbnum2],格式函数

TEXT(INT(ROUND(B6,2)),"[dbnum2]"),即对INT(ROUND(B6,2))以[dbnum2]格式进行显示。

[dbnum2],为单元格格式代码(亦可称之为格式函数),格式描述为:中文大写数字,更多单元格格式代码,请点击查询

四、&,文本连接符,有合并单元格内容的功能,运用在函数公式中,起到连接文本(或是数字)内容的作用。

TEXT(INT(ROUND(B6,2)),"[dbnum2]")&"元",即将数字按要求转化为中文大写后加“元”,完成单元格B6“元”单位设置。

五、IF条件函数、IF嵌套函数、组合函数应用:

第一层条件函数为:如果(ROUND(B6,2)<0,则单元格B6显示结果为“无效数值”,否则……(以第二层条件函数表达)

第二层条件函数为:如果(ROUND(B6,2)=0,则单元格B6显示结果为“零”,否则……(以&连接IF条件函数表达)

第三层条件函数为:嵌套组合函数,结构为:IF***&元IF***&角&IF***分

A、“元”位数据的读取:IF(ROUND(B6,2)<1,"",TEXT(INT(ROUND(B6,2)),"[dbnum2]")&"元")

读取个位数以上的数据,以“元”结束,如果小于1,则不必显示什么内容

B、“角”位数据的读取:IF(INT(ROUND(B6,2)*10)-INT(ROUND(B6,2))*10=0,IF(INT(ROUND(B6,2))*(INT(ROUND(B6,2)*100)-INT(ROUND(B6,2)*10)*10)=0,"","零

"),TEXT(INT(ROUND(B6,2)*10)-INT(ROUND(B6,2))*10,"[dbnum2]")&"角")

第1层:如果单元格B6小数点后第一位为0,则……(以第2层条件函数表达),否则,计算为

“TEXT(INT(ROUND(B6,2)*10)-INT(ROUND(B6,2))*10,"[dbnum2]")&"角"”

第2层:在小数点后第二位(末位数)为0的情况下,对小数点后第一位数字计算为"",即不读取角位数据,否则(末位数不为0的情况),

小数点后第一位读取为“零”;

C、“分”位数据的读取:IF((INT(ROUND(B6,2)*100)-INT(ROUND(B6,2)*10)*10)=0,"整",TEXT((INT(ROUND(B6,2)*100)-INT(ROUND(B6,2)*10)*10),"[dbnum2]")&"分")))

如果单元格B6末位数为0,则以“整”结束,而则就以“分”结束;

六、公式应用说明:

INT(ROUND(B6,2)*10),对单元格B6数字先扩大10倍再进行舍位,即去掉小数点后的位数,此时个位数为单元格B6数据的小数点后第一位数字;

INT(ROUND(B6,2))*10,对单元格B6数字先去掉小数点后的位数,再扩大10倍,此时,个位数为零;

INT(ROUND(B6,2)*10)-INT(ROUND(B6,2))*10=0,说明单元格B6小数点后第一位为“零”,否则结果就是单元格B6小数点后第一位数字!

INT(ROUND(B6,2)*100),对单元格B6数字先扩大100倍再进行舍位,即去掉小数点后的位数,此时个位数为单元格B6数据的小数点后第二位数字(亦即末位数)

INT(ROUND(B6,2)*10)*10,对单元格B6数字先扩大10倍再舍位,同时再扩大10倍,即将单元格B6数据的小数点后第二数(末位数)去掉后整体扩大100倍

INT(ROUND(B6,2)*100)-INT(ROUND(B6,2)*10)*10=0,说明单元格B6小数点后第二位为“零”,否则结果就是单元格B6小数点后第二位数字!

相关主题