excel表格金额大小写转换
- 格式:docx
- 大小:25.23 KB
- 文档页数:7
怎样在EXCEL中数字转人民币大写1.第一种方法:通过函数嵌套实现数字转人民币大写形式的公式是:=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*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]")&"分")数字转人民币大写形式的公式是:="大写金额:"&IF(TRIM(B1)="","",IF(B1=0,"","人民币"&IF(B1<0,"负",)&IF(INT(B1),TEXT(INT(ABS(B1)),"[dbnum2]")&"元",)&IF(INT(ABS(B1)*10)-INT(ABS(B1))*10,TEXT(INT(ABS(B1)*10)-INT(ABS(B 1))*10,"[dbnum2]")&"角",IF(INT(ABS(B1))=ABS(B1),,IF(ABS(B1)<0.1,,"零")))&IF(ROUND(ABS(B1)*100-INT(ABS(B1)*10)*10,),TEXT(ROUND(ABS(B1)*100 -INT(ABS(B1)*10)*10,),"[dbnum2]")&"分","整")))12508.34 大写金额:壹万贰仟伍佰零捌元叁角肆分数字转人民币大写形式的公式是:="大写金额:"&IF(TRIM(B1)="","",IF(B1=0,"",""&IF(B1<0,"负",)&IF(INT(B1),TEXT(INT(ABS(B1)),"[dbnum2]")&"元",)&IF(INT(ABS(B1)*10)-INT(ABS(B1))*10,TEXT(INT(ABS(B1)*10)-INT(ABS(B 1))*10,"[dbnum2]")&"角",IF(INT(ABS(B1))=ABS(B1),,IF(ABS(B1)<0.1,,"零")))&IF(ROUND(ABS(B1)*100-INT(ABS(B1)*10)*10,),TEXT(ROUND(ABS(B1)*100 -INT(ABS(B1)*10)*10,),"[dbnum2]")&"分","整")))这类转换的格式没有“人民币”字样1.第二种方法:通过宏VBA自定义函数实现第一步:按下ALT+F11组合键,或者是单击工具——宏——Visual Basic 编辑器,进入Visual Basic编程环境,单击“插入” 菜单——模块,复制下面代码,保存,退出关闭。
excel 金额大写转换公式摘要:一、介绍Excel 金额大写转换公式二、分析金额大写转换公式的原理三、讲解如何使用Excel 金额大写转换公式四、总结Excel 金额大写转换公式的优点与局限性五、提供使用Excel 金额大写转换公式时的注意事项正文:在Excel 中,我们常常需要将数字金额转换为大写金额。
为了方便用户实现这一功能,Excel 提供了一个金额大写转换公式。
本文将详细介绍这个公式,并分析其原理及使用方法。
首先,我们来了解一下Excel 金额大写转换公式的原理。
这个公式基于汉字数字与阿拉伯数字的对应关系,通过嵌套IF 函数,实现将阿拉伯数字转换为大写金额的功能。
接下来,我们来讲解如何使用Excel 金额大写转换公式。
假设A1 单元格中存储的数字金额为1234.56,我们可以在B1 单元格中输入以下公式:```=IF(A1>=10000, "壹万零" & TRANSPOSE(TEXT(A1-10000, ";负数;零;壹;贰;叁;肆;伍;陆;柒;捌;玖;拾")), IF(A1>=1000, "壹仟零" & TRANSPOSE(TEXT(A1-1000, ";负数;零;壹;贰;叁;肆;伍;陆;柒;捌;玖;拾")),IF(A1>=100, "壹佰零" & TRANSPOSE(TEXT(A1-100, ";负数;零;壹;贰;叁;肆;伍;陆;柒;捌;玖;拾")), IF(A1>=10, "十元" & TRANSPOSE(TEXT(A1-10, ";负数;零;壹;贰;叁;肆;伍;陆;柒;捌;玖;拾")), TEXT(A1, ";负数;零;壹;贰;叁;肆;伍;陆;柒;捌;玖;拾")))```以上公式可以根据需要进行调整,以适应不同的金额格式需求。
引用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显示:“玖分”。
Excel中金额大小写转换编制工程造价很有用编制EXCEL财务表也很有用Excel中金额大小写转换函数[=ntoc(单元格)]一、使用加载宏方法:对于有四舍五入都没问题啊“工具栏”→“宏”→“Visual Basic编辑器”,在“Visual Basic编辑器”中顶部选“插入”→“模块”,在“模块”对话框中选“通用”,并在编辑区域内粘贴以下内容:Function NtoC(n) 'n as singleConst cNum = "零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分"Const cCha = "零仟零佰零拾零零零零零亿零万零元亿万零角零分零整-零零零零零亿万元亿零整整"NtoC = ""n = Round(n, 2)sNum = Trim(Str(Int(n * 100)))For i = 1 To Len(sNum) '逐位转换NtoC = NtoC + Mid(cNum, (Mid(sNum, i, 1)) + 1, 1) + Mid(cNum, 26 - Len(sNum) + i, 1)NextFor i = 0 To 11 '去掉多余的零NtoC = Replace(NtoC, Mid(cCha, i * 2 + 1, 2), Mid(cCha, i + 26, 1))NextEnd Function然后单击“保存”,关闭“Visual Basic编辑器”,回到“工作表1”,输入函数“=NtoC(单元格)”即可。
例如在单元格A1输入:A1=222, 在单元格A2输入:A2=NTOC(A1) 即可,这样A1单元格输入的数变化,A2单元格的大写自动变化。
A2单元格最好进行单元锁定。
excel中如何将数字变成大写金额的函数如何在Excel中将数字转化为大写金额在Excel中,我们经常需要将数字转化为大写金额,以便更直观地展示数值。
虽然Excel本身并没有提供直接将数字转化为大写金额的函数,但我们可以通过一些方法来实现这个功能。
本文将介绍两种常用的方法,分别是使用Excel的内置函数和使用自定义宏。
一、使用Excel的内置函数Excel提供了一个内置的函数——“人民币大写”函数,可以将数字转化为大写金额。
下面是使用该函数的步骤:步骤1:打开Excel并选择一个单元格,例如A1,用于输入要转化的数字。
步骤2:在另一个单元格中,例如B1,输入以下公式:=人民币大写(A1)步骤3:按下回车键,即可将A1单元格中的数字转化为大写金额。
需要注意的是,“人民币大写”函数只能将数字转化为中文大写金额,而不能转化为其他语言的大写金额。
如果需要转化为其他语言的大写金额,可以考虑使用自定义宏的方法。
二、使用自定义宏自定义宏是一种基于VBA(Visual Basic for Applications)语言的编程方式,可以在Excel中实现各种自定义功能。
下面是使用自定义宏将数字转化为大写金额的步骤:步骤1:按下Alt+F11键,打开VBA编辑器。
步骤2:在VBA编辑器中,选择“插入”菜单,然后选择“模块”。
步骤3:在新建的模块中,输入以下VBA代码:```Function ConvertToChineseNumber(ByVal MyNumber)Dim MyCurrency, DecimalPlace, CountReDim Place(9) As StringPlace(2) = " Thousand "Place(3) = " Million "Place(4) = " Billion "Place(5) = " Trillion "' Convert MyNumber to String, trimming extra spaces.MyNumber = Trim(CStr(MyNumber))' Check for valid input.If MyNumber = "" ThenConvertToChineseNumber = ""Exit FunctionEnd If' Convert MyNumber to Currency figures.ReDim DecimalPlace(9) As StringDecimalPlace(2) = " Hundred "DecimalPlace(3) = " Thousand "DecimalPlace(4) = " Million "DecimalPlace(5) = " Billion "' Convert MyNumber to Currency figures.MyNumber = Trim(CStr(MyNumber))' Remove leading zeros' DecimalPlace = GetVal(Trim(Mid(MyNumber, DecimalPlace + 1, 2)))Count = 1Do While MyNumber <> ""ReDim Preserve MyCurr(Count) As StringCount = Count + 1MyCurr(Count - 1) = GetTens(Trim(Mid(MyNumber, 1, 2)), MyNumber)If Len(MyNumber) > 2 ThenMyNumber = Trim(Mid(MyNumber, 3))ElseMyNumber = ""End IfLoopCount = Count - 1For DecimalPlace = Count To 1 Step -1MyCurrency = MyCurrency & " " & MyCurr(DecimalPlace) If DecimalPlace = 1 Then' -- If place is ten thousand and greater than 0 set nother name to RupeesIf Len(MyNumber) = 1 Then MyCurr(1) = " and " & MyCurr(1)MyCurrency = MyCurrency & Place(DecimalPlace)End IfNext DecimalPlaceConvertToChineseNumber = MyCurrencyEnd FunctionFunction GetTens(TensText, ByVal Amount)Dim Result As StringResult = "" ' Null out the temporary function value.If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19...Select Case Val(TensText)Case 10: Result = "Ten"Case 11: Result = "Eleven"Case 12: Result = "Twelve"Case 13: Result = "Thirteen"Case 14: Result = "Fourteen"Case 15: Result = "Fifteen"Case 16: Result = "Sixteen"Case 17: Result = "Seventeen"Case 18: Result = "Eighteen"Case 19: Result = "Nineteen"Case ElseEnd SelectElse ' If value between 20-99...Select Case Val(Left(TensText, 1))Case 2: Result = "Twenty "Case 3: Result = "Thirty "Case 4: Result = "Forty "Case 5: Result = "Fifty "Case 6: Result = "Sixty "Case 7: Result = "Seventy "Case 8: Result = "Eighty "Case 9: Result = "Ninety "Case ElseEnd SelectResult = Result & GetDigit _(Right(TensText, 1)) ' Retrieve ones place. End IfGetTens = ResultEnd FunctionFunction GetDigit(Digit)Select Case Val(Digit)Case 1: GetDigit = "One"Case 2: GetDigit = "Two"Case 3: GetDigit = "Three"Case 4: GetDigit = "Four"Case 5: GetDigit = "Five"Case 6: GetDigit = "Six"Case 7: GetDigit = "Seven"Case 8: GetDigit = "Eight"Case 9: GetDigit = "Nine"Case Else: GetDigit = ""End SelectEnd Function```步骤4:按下Ctrl+S保存宏,并关闭VBA编辑器。
Excel表格里怎么将数字金额转换为大写
Excel表格里怎么将数字金额转换为大写?很多朋友都有这样的需求,手动打字太慢而且容易错,大家可以尝试把数字金额直接转换成大写,今天系统之家我就来讲解office软件里Excel表格怎么将金额转成大写的方法,感兴趣的小伙伴快来这里学习一下。
Excel表格将金额转成大写的方法
1、进入Excel后,将金额复制到大写的一列,并选中这一列。
2、单击鼠标右键,在弹出的功能栏中选择设置单元格格式。
3、在左侧栏中点击特殊,选择中文大写数字,点击确定。
4、此时小写的金额就变成大写的金额了。
以上就是系统之家给大家分享的Office Excel表格将金额转成大写的快捷方法,希望对你有帮助。
Excel会计数字大写转换公式一、介绍在使用E xc el进行会计工作时,我们常常需要将数字金额以大写的形式进行展示和输出。
本文档将介绍如何使用E xc el的函数和公式来实现会计数字的大写转换,以便在日常工作中提高工作效率。
二、基本原理在E xc el中,我们可以利用自定义函数和公式,结合阿拉伯数字和会计数字的对应关系,来实现会计数字的大写转换。
首先,我们需要理解会计数字的命名规则,然后利用Ex ce l的文本函数和逻辑函数来逐位将阿拉伯数字转换为对应的汉字,最后通过连接函数将转换后的结果拼接成最终的大写数字。
三、具体步骤下面将详细介绍在Ex c el中实现会计数字大写转换的具体步骤:1.创建自定义函数首先,我们需要创建一个自定义函数,在E xc el的V B A编辑器中编写如下代码:F u nc ti on Co nv er tTo C hi ne se(B yV al M yN u mb er)D i mD ec im al Pl ac e,C o un tR e Di mP la ce(9)A sSt r in gP l ac e(2)="万"P l ac e(3)="亿"P l ac e(4)="万亿"P l ac e(5)="亿亿"M y Nu mb er=T ri m(CSt r(M yN um be r))D e ci ma lP la ce=I nSt r(M yN um be r,".")C o un t=1I f De ci ma lP la ce>0T h enI f Le ft(M id(M yN umb e r,De ci ma lP la ce+1)&"00",2)<>"00"T he n C o un t=1.5E n dI fE n dI fR e Di mT em p(Co un t)A s St ri ngI f De ci ma lP la ce>0T h enT e mp(0)=Ge tH un dre d s(Le ft(M yN um ber,De ci ma lP la ce-1))T e mp(1)=Ge tT en s(M i d(My Nu mb er,D eci m al Pl ac e+1)&"00")E l seT e mp(0)=Ge tH un dre d s(My Nu mb er)E n dI fC o nv er tT oC hi ne se=J oi n(Te mp,"")+"元"E n dF un ct io nF u nc ti on Ge tH un dre d s(By Va lM yN um ber)D i mR es ul tA sS tr ingI f Va l(My Nu mb er)=0T he nE xi tF un ct ionM y Nu mb er=R ig ht("000"&M yN um be r,3)I f Mi d(My Nu mb er,1,1)<>"0"Th enR e su lt=G et Di gi t(M i d(My Nu mb er,1,1))&"百"E n dI fI f Mi d(My Nu mb er,2,1)<>"0"Th enR e su lt=R es ul t&Get D ig it(M id(M yN umb e r,2,1))&"十"E l seR e su lt=R es ul t&"零"E n dI fI f Mi d(My Nu mb er,3,1)<>"0"Th enR e su lt=R es ul t&Get D ig it(M id(M yN umb e r,3,1))E n dI fG e tH un dr ed s=Re sul tE n dF un ct io nF u nc ti on Ge tT en s(T e ns Te xt)D i mR es ul tA sS tr ingR e su lt=""'Nu ll out t he te mp or ar y f unc t io nv al ue.I f Va l(Le ft(T en sTe x t,1))=1T he n'Ifv a lu eb et we en10-19... S e le ct Ca se Va l(Ten s Te xt)C a se10:R es ul t="十"C a se11:R es ul t="十一"C a se12:R es ul t="十二"C a se13:R es ul t="十三"C a se14:R es ul t="十四"C a se15:R es ul t="十五"C a se16:R es ul t="十六"C a se17:R es ul t="十七"C a se18:R es ul t="十八"C a se19:R es ul t="十九"C a se El seE n dS el ec tE l se'I fv al ue be twe e n20-99...S e le ct Ca se Va l(Lef t(T en sT ex t,1))C a se2:Re su lt="二十"C a se3:Re su lt="三十"C a se4:Re su lt="四十"C a se5:Re su lt="五十"C a se6:Re su lt="六十"C a se7:Re su lt="七十"C a se8:Re su lt="八十"C a se9:Re su lt="九十"C a se El seE n dS el ec tR e su lt=R es ul t&Get D ig it(R ig ht(T ens T ex t,1))'Re tr iev e on es p l a ce.E n dI fG e tT en s=Re su ltE n dF un ct io nF u nc ti on Ge tD ig it(D ig it)S e le ct Ca se Va l(Dig i t)C a se1:Ge tD ig it="一"C a se2:Ge tD ig it="二"C a se3:Ge tD ig it="三"C a se4:Ge tD ig it="四"C a se5:Ge tD ig it="五"C a se6:Ge tD ig it="六"C a se7:Ge tD ig it="七"C a se8:Ge tD ig it="八"C a se9:Ge tD ig it="九"C a se El se:G et Di git=""E n dS el ec tE n dF un ct io n2.使用自定义函数在E xc el的任意单元格中,输入如下公式:=C on ve rt To Ch in ese(A1)其中,A1为待转换的阿拉伯数字所在的单元格。
竭诚为您提供优质文档/双击可除excel表格金额大小写转换
篇一:excel表中小写金额直接转换成大写金额的公式excel表中小写金额直接转换成大写金额的公式:一、=iF(oR(a1 三、
用公式就可以,我不懂做会计的如何用大写表示如128.40这样的角
不为0但分为0的值,是“壹佰贰拾捌元肆角整”还是“壹佰贰拾捌元肆角”?
如果是“壹佰贰拾捌元肆角”,请用这个公式:
=text(int(b2),"[dbnum2]"),text((int(c10*100)-int(c1 0*10)*10),"[dbnum2]")nascurrency
constcnumasstring="零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分"
constcchaasstring="零仟零佰零拾零零零零零亿零万零元亿万零角零分零整-零零零零零亿万元亿零整整"
dimsnumasstring
dimiaslong
if(n0)and(abs(n)
snum=trim(str(int(abs(n)*100)))
Fori=1tolen(snum)逐位转换
baituRmbdx=baituRmbdx+mid(cnum,(mid(snum,i,1))+1,1) +mid(cnum,26-len(snum)+i,1)
next
Fori=0to11去掉多余的零
baituRmbdx=Replace(baituRmbdx,mid(ccha,i*2+1,2),mid (ccha,i+26,
1))
next
ifn else
baituRmbdx=iif(n=0,"零元","溢出")
endif
endFunction
11
Functionuppernum(n)nassingle数字大写函数
ifn 正负判断="负"
endif
n=n+0.0001
ifint(n*1000)-int(n*100)*10>4then
n=(int(n*100)+1)/100+0.001
else
n=int(n*100)/100+0.001
endif
selectcasen
caseis>9999999999999.99
uppernum="数据不符"
msgbox"金额不能大于9999999999999.99!
",vbokonly,"出错提示"caseelse
constcnum="零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分"
constccha="零仟零佰零拾零零零零零亿零万零元亿万零角零分零整-零零零零零亿万元亿零整整"
uppernum=""
snum=""
s=trim(str(n))
Fori=1tolen(s)-1
ifmid(s,i,1)"."thensnum=snum+mid(s,i,1)
Fori=1tolen(snum)逐位转换
uppernum=uppernum+mid(cnum,(mid(snum,i,1))+1,1)+mid (cnum,26-len(snum)+i,1)
nexti
Fori=0to11去掉多余的零
uppernum=Replace(uppernum,mid(ccha,i*2+1,2),mid(cch a,i+26,1))nexti
endselect
if正负判断="负"thenuppernum="负"&uppernum
endFunction
12
Functionjezh(xasRange)
ifx>=1then
ifint(x)=xorRound(x,2)=int(x)then
jezh=application.worksheetFunction.text(int(x),"[db num2]")&"元"
elseifint(x*10)=x*10orint(x*10)=Round(x,2)*10then。