引用EXCEL中金额小写转大写
到现在为止EXCEL中自带的金额小写转大写功能都不能如我们中国人的习惯,曾有朋友问过我如何做到人性化点,还真惭愧,我的EXCEL办公方面的软件使用很差,我相信会有公式可以完成,于是上面到处,但当时都没有到,只好作罢!今天又再有朋友问起,我决定要到一个为止.没有想到竟真的被我了,以下就是我本人从网络上收集到的,因为不知作者为何人,在此只能为这些默默奉献的朋友说声谢谢!
在网上到有二篇,功能相对完善的是第二篇.现在一一转贴过来!
=======================第一篇========================要将人民币小写金额转换成大写格式,用Excel提供的格式,将自定义格式类型中的“[dbnum2]G/通用格式”改为“[dbnum2] G/通用格式“元””来实现。但在转换小数时却出现了问题,比如¥6,050.09只能转换为“陆仟零伍拾.零玖圆”。那么用Excel能不能解决这一先天不足呢?其方法有以下两种(以下均对B1转换,假设B1是通过函数ROUND( )四舍五入取得二位小数的小写金额数,其值为¥6,050.09)。
一、在三个连续的同行单元格中转换
1. B2中输入公式“=IF(B1〈0,"金额为负无效",INT(B1))”,计
算结果为¥6,050.00,然后点击“格式→单元格→数字→特殊→中文大写数字→确定”,B2显示“陆仟零伍拾”,再点击“格式→单元格→数字→自定义”,将“类型”编辑框中的“[dbnum2]G/通用格式”修改为:[dbnum2](“人民币”)G/通用格式“元”,此时B2显示:“(人民币)陆仟零伍拾元”。
2. C2中输入“=IF(B1〈0,"",INT(B1 10)-INT(B1) 10)”,同样C2改为:[DBNum2]G/通用格式“角”,C2显示:“零角”。
3. D2中输入“=IF(B1〈0,"",INT(B1 100)-INT(B1 10) 10)”,同样D2改为:[DBNum2]G/通用格式“分”,D2显示:“玖分”。
这样在连续的三个同行单元格中实现了大写金额格式的转换,如图1所示。为了使转换符合财务格式,B2应右对齐,C2列宽无间隔,且不设左右边框线,D2要左对齐。
图1
二、用Excel提供的函数转换
个位为0,则不显示;不为0,显示“XXX元”;不为0、且角位和分位均为0,显示“XXX元整”;元角分位均为0,则显示“零元整”。
小数点后面第一位为0、且元位或分位有一为0,则不显示;为
0、且元位和分位均不为0,则显示“零”;不为0,显示“X角”。
小数点后面第二位为0,则显示“整”;不为0,显示“X分”。
根据以上思路在B2中输入公式:
“IF(B1〈0,"金额为负无效",IF(OR(B1=0,B1=""),"(人民币)零元整"));
IF(B1〈1,"(人民币)",TEXT(INT(B1),"[dbnum2](人民币)G/通用格式")&&"元")&&IF(INT(B1 10)-INT(B1) 10=0);
IF(INT(B1) (INT(B1 100)-INT(B1 10) 10)=0,"","零"),TEXT(INT(B1 10)-INT(B1) 10,"[dbnum2]")&&"角")&&IF((INT(B1 100)-INT(B1 10) 10)=0,"整",TEXT((INT(B1 100)-INT(B1*10)*10),"[dbnum2]")&&"分")))”。
确认后B2显示:“(人民币)陆仟零伍拾元零玖分”。以后使用时将公式复制到有关单元格中,若转换的对象B1发生了变化,可点击“编辑→替换”将B1替换掉。两种转换测试结果如图2所示。
图2
======================第一篇(完)=====================
第一篇我照做时,我发现第二种方法,我弄不出来,可能是我弄错,不过不理它,因为我采用了第二篇的相当方便
excel中round函数的使用方法=======================第二篇(推荐)== =================近来转了转几个EXCEL相关论坛,发现有部分网友在寻求数字金额转换为人民币大写的方法。出于好奇,我在网上搜索了一番,什
么VBA、加载宏,公式函数各式方法争相亮相,应有尽有。但我的习惯是,只要能用公式解决的问题,坚决不使用VBA。所以我就特别地关注使用公式来生成的方法,结果是用公式的方法可谓是更加地灿烂缤纷,使人眼花缭乱。
通过分析我收集到的二十几个公式,发现比较牛,适合我口味的公式有三个,在此我将其列出。
公式一:
SUBSTITUTE(SUBSTITUTE(IF(A1<0,"负","")&TEXT(TRUNC(ABS(ROUND(A1,2))),"[DBNum2]")&"元"&IF(ISERR(FIND(".",ROUND(A1,2))),"",TEXT(RIGHT(TRUNC(RO UND(A1,2)*10)),"[DBNum2]"))&IF(ISERR(FIND(".0",TEXT(A1,"0.00 "))),"角","")&IF(LEFT(RIGHT(ROUND(A1,2),3))=".",TEXT(RIGHT(ROUND( A1,2)),"[DBNum2]")&"分",IF(ROUND(A1,2)=0,"","整")),"零元零",""),"零元","")
公式二:
CONCA TENA TE(IF(A1<0,"负",""),TEXT(IF(TRUNC(A1)=0,"",TRUNC(ABS(A1))),"[DBNum2]"),IF( INT(TRUNC(A1))=0,"","元"),TEXT(IF(OR(ABS(A1)<0.1,TRUNC(A1)=A1),"",RIGHT(TRUNC(A 1*10),1)),"[DBNum2]"),IF(RIGHT(TRUNC(A1*10),1)="0","","角"),TEXT(IF(RIGHT(TRUNC(A1*100),1)
="0","",RIGHT(TRUNC(A1*1 00),1)),"[DBNum2]"),IF(RIGHT(TRUNC(A1*100),1)="0","","分"))
公式三:
IF(ROUND(A1,2)=0,"",IF(ROUND(ABS(A1),2)>=1,TEXT(INT(ROUN D(ABS(A1),2)),"[DBNum2]")&"元","")&IF(RIGHT(TEXT(A1,".00"),2)*1=0,"整",IF(RIGHT(TEXT(A1,".00"),4)*1>=1,IF(RIGHT(TEXT(A1,".00"),2)*1 >9,"","零"),IF(ROUND(ABS(A1),2)>=1,"零",""))&IF(RIGHT(TEXT(A1,".00"),2)*1>9,TEXT(LEFT(RIGHT(TEXT( A1,".00"),2)),"[DBNum2]")&"角","")&IF(RIGHT(TEXT(A1,".00"))*1>0,TEXT(RIGHT(TEXT(A1,".00") ),"[DBNum2]")&"分","整")))
我用不同的数值对这三个公式进行了一番测试,都达到了我的要
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论