搜档网
当前位置:搜档网 › EXCEL表中如何用函数把数字转化成中文大写金额格式

EXCEL表中如何用函数把数字转化成中文大写金额格式

EXCEL表中如何用函数把数字转化成中文大写金额格式
EXCEL表中如何用函数把数字转化成中文大写金额格式

EXCEL表中如何用函数把数字转化成中文大写金额格式

(2008-03-09 10:18:25)

标签:分类:

在EXCEL表中把数字转化成中文大写金额格式是财务人员在日常工作中的一个难题,虽然在EXCEL中的单元格格式设置中有一个特殊格式中可以转换在中文大写数字,但不能给出元、角、分整的中文金额特定格式,许多财务人员为之一筹莫展,最后只能手工输入,降低了EXCEL的使用效率,但如果TRUNC工作表函数,这个问题将迎刃而解,

如单元格A1=123459.72,须在某一格记录其中文大写金额,则在该格内输入函数:

="大写人民币:"&IF(TRUNC(A1)=0,"",TEXT(TRUNC(A1),"[DBNum2]G/通用格式")&"元

")&IF(TRUNC(A1*10)-TRUNC(A1*10,-1)=0,IF(TRUNC(A1*100)-TRUNC(A1*100,-1)<>0,"零",""),TEXT(TRUNC(A1*10)-TRUNC(A1*10,-1),"[DBNum2]G/通用格式")&"角

")&IF(TRUNC(A1*100)-TRUNC(A1*100,-1)=0,"",TEXT(TRUNC(A1*100)-TRUNC(A1*100,-1), "[DBNum2]G/通用格式")&"分")&IF(TRUNC(A1*100)-TRUNC(A1*100,-1)=0,"整","")

回车后将得到完整的大写中文金额格式,这个函数将广泛应用于支票

大家知道,在Excel中,可以通过设置单元格格式,把单元格的阿拉伯数字直接以中文数字形式来显示,但该格式并不适用于显示票据大写金额。我以前在使用Foxpro时,是通过自定义函数,把小写金额的数字转化为字符后,进行分析转换的。当然,在Excel中也可以使用VBA来编写自定义函数,但这种方式对不利于表格共享。实际上,Excel中的中文大写数字格式功能,已经基本能够解决整数的大写金额显示的问题,我们所要解决的是当金额出现角分位的情况。解决的方法是使用复合函数,考虑到人民币的单位是元,辅币有角分两个单位,一般金额取值的精确度为小数后两位。同时,当金额有角位没有分位时,大写金额后可写“整”也可以不写“整”,此时较为规范的写法是不要写“整”字。那么,函数设置可以这样考虑:如果金额为零直接显示“”;对于数值元位以上部分,利用Excel的中文大写数字表示法在中文大写数字后直接加“元”字表示;如果元以上金额为空,则直接显示空字符;如果金额为整数,直接在中文数字后加“整”字;如果角位为零分位不为零,角位上写“零”;

分位为零时,分位显示空字符。于是,假定票据上的小写金额栏位在单元格K9上,那么,我们可以在对应的大写金额栏位上填入下面这个复合函数:

="人民币"&IF(ROUND(G10,2)<0,"负","")&IF(ROUND(ABS(K9),2)=0,"",IF(ROUND(K9,2)<0,"负","")&IF(ROUND(ABS(K9),2)<1,"",TEXT(INT(ROUND(ABS(K9),2)),"[dbnum2]")&"元")&IF(LEFT(RIGHT(TEXT(K9,"0.00"),2),1)="0",IF(RIGHT(TEXT(K9,"0.00"),1)="0","整",IF(ROUND(ABS(K9),2)<1,"","零")),TEXT(LEFT(RIGHT(TEXT(K9,"0.00"),2),1),"[dbnum2]")&"角")&IF(RIGHT(TEXT(K9,"0.00"),1)="0","",TEXT(RIGHT(TEXT(K9,"0.00"),1),"[dbnum2]")&"分")) 这里用到的几个函数有:

TEXT(value,format_text) 将数值转换为按指定数字格式表示的文本。

Value 是待转换的数值,可直接替换为数值、计算结果为数字值的公式,或对包含数字值的单元格的引用。

Format_text 指定的显示格式,为“单元格格式”对话框中“数字”选项卡上“分类”框中的文本形式的数字格式。上述函数中"[dbnum2]"是中文大写数字的格式标志。

ABS(number) 返回数字的绝对值。绝对值没有符号。

Number 需要计算其绝对值的实数。

INT(number) 将数字向下舍入到最接近的整数也称为取整函数

Number 需要进行向下舍入取整的实数。

IF(logical_test,value_if_true,value_if_false) 条件函数。执行真假值判断,根据逻辑计算的真假值,返回不同结果。

Logical_test 表示计算结果为TRUE 或FALSE 的任意值或表达式。

Value_if_true logical_test 为TRUE 时函数返回值。

Value_if_false logical_test 为FALSE 时函数返回值。ROUND(number,num_digits) 返回某个数字按指定位数取整后的数字。

Number 需要进行四舍五入的数字。

Num_digits 指定的位数,按此位数进行四舍五入。

相关主题