搜档网
当前位置:搜档网 › EXCEL函数数字小写换大写

EXCEL函数数字小写换大写

EXCEL函数数字小写换大写
EXCEL函数数字小写换大写

EXCEL文本函数-数字小写换大写/英文大小写互换

2007年10月17日星期三 13:04

在大小写中英文互换公式中我们先假设每个表都有表头,且数字在第二行,在A2单元格内

注意:公式可以随意拖动至任意指定单元格,公式内对象不变;可复制(待鼠标变成黑色十字再拖);也可利用查找-替换-全部替换单元格如A2---全部换成F15

EXCEL中数字小写换大写方法一:

在单元格A2中输入小写数字123.12

B2处输入以下公式

=SUBSTITUTE(SUBSTITUTE(IF(A2<0,"负","")&TEXT(TRUNC(ABS(ROUND(A2,2))),"[DBNum2]")&"元

"&IF(ISERR(FIND(".",ROUND(A2,2))),"",TEXT(RIGHT(TRUNC(ROUND(A2,2)*10)),"[DBNum2]"))&IF(I SERR(FIND(".0",TEXT(A2,"0.00"))),"角

","")&IF(LEFT(RIGHT(ROUND(A2,2),3))=".",TEXT(RIGHT(ROUND(A2,2)),"[DBNum2]")&"分

",IF(ROUND(A2,2)=0,"","整")),"零元零",""),"零元","")

EXCEL中数字小写换大写方法二:

在单元格A2中输入小写数字123.12

B2处输入以下公式

=IF((INT(A2*10)-INT(A2)*10)=0,TEXT(INT(A2),"[DBNum2]G/通用格式")&"元

"&IF((INT(A2*100)-INT((A2)*10)*10)=0,"整","零

"&TEXT(INT(A2*100)-INT(A2*10)*10,"[DBNum2]G/通用格式")&"分"),TEXT(INT(A2),"[DBNum2]G/通用格式")&"元

"&IF((INT(A2*100)-INT((A2)*10)*10)=0,TEXT((INT(A2*10)-INT(A2)*10),"[DBNum2]G/通用格式")&"角整",TEXT((INT(A2*10)-INT(A2)*10),"[DBNum2]G/通用格式")&"角

"&TEXT(INT(A2*100)-INT(A2*10)*10,"[DBNum2]G/通用格式")&"分"))

EXCEL中数字小写换大写方法三:

=IF(A2-INT(A2)=0,TEXT(INT(A2),"[DBNum2]G/通用格式")&"圆整",TEXT(INT(A2),"[DBNum2]G/通用格式")&"圆"&TEXT(INT((A2-INT(A2))*10),"[DBNum2]G/通用格式")&"角

"&TEXT(INT((A2*10-INT(A2*10))*10),"[DBNum2]G/通用格式")&"分")

EXCEL中数字小写换大写方法四:

=IF((A2-INT(A2))=0,TEXT(A2,"[DBNUM2]")&"元整

",IF(INT(A2*10)-A2*10=0,TEXT(INT(A2),"[DBNUM2]")&"元

"&TEXT((INT(A2*10)-INT(A2)*10),"[DBNUM2]")&"角整",TEXT(INT(A2),"[DBNUM2]")&"元

"&IF(INT(A2*10)-INT(A2)*10=0,"零",TEXT(INT(A2*10)-INT(A2)*10,"[DBNUM2]")&"角

")&TEXT(RIGHT(A2,1),"[DBNUM2]")&"分"))

看看结果是不是出现了你想要的?应该有你需要的大写金额了

公式的由来:

仟分位公式如下:

=TEXT(IF(LEN(INT($A1))>=4,MID($A1,LEN(INT($A1))-3,1),""),"[DBNum2]")

佰分位公式如下:

=TEXT(IF(LEN(INT($A1))>=3,MID($A1,LEN(INT($A1))-2,1),""),"[DBNum2]")

第一位小数的公式:

=TEXT(MID($A1,FIND(".",$A1)+1,1),"[DBNum2]")

第二位小数的公式:

=TEXT(MID(TEXT($A1,"0.00"),FIND(".",$A1)+2,1),"[DBNum2]") 其他依此类推

^^^^^^^^^^^^^^^^

用Excel函数将货币数值由阿拉伯数字自动生成为中文大写格式

如图是全部用Excel函数自编农业银行转帐支票套打工具,图中内容是需要打印到转帐支票上内容,其中A-D列为支票存根部分,我们利用Excel函数对要填写大部分内容建立公式后,只要输入支票存根部分的三项基本信息(A6-A8单元格):收款单位、金额、用途,其他内容全部自动生成。

图中输入阿拉伯数字格式金额的是支票存根中A7单元格,要自动生成中文大写金额的是H3单元格,我们按照支票中的金额中文大写格式的特殊的要求,利用Excel函数对H3进行公式设置。

在H3单元格输入:=IF((A7-INT(A7))=0,TEXT(A7,"[DBNUM2]")&"元整",IF(INT(A7*10)-A7*10=0,TEXT(INT(A7),"[DBNUM2]")&"元"&TEXT((INT(A7*10)-INT(A7)*10),"[DBNUM2]")&"角整",TEXT(INT(A7),"[DBNUM2]")&"元"&IF(INT(A7*10)-INT(A7)*10=0,"零",TEXT(INT(A7*10)-INT(A7)*10,"[DBNUM2]")&"角")&TEXT(RIGHT(A7,1),"[DBNUM2]")&"分"))。

公式中共运用4种函数,文本连接符号“&”及相应的汉字。

IF函数:是一个条件判断函数,此函数的基本格式是:IF(a,b,c)其中“a”是一个条件,“b”和“c”是两种判断结果,可以表述为:如果条件a成立,那么结果是b,否则结果就是c。以上公式是有四层嵌套条件判断函数,根据货币金额的不同情况生成不同格式的中文大写。

TEXT函数:TEXT函数可以将阿拉伯格式数字转换为中文大写格式,如公式中“TEXT(A7,"[DBNUM2]”结果是将单元格A7的阿拉伯数字转换为中文大写。

INT函数:这是一个取整函数,如公式中“INT(A7)”就是取单元格A7数字整数部分。A7-INT(A7)表示A7为整数,INT(A7*10)-A7*10=0表示A7有一位小数。

RIGHT函数:用该函数可以提取字符串右边的若干个字符,如公式中的“RIGHT(A7,1)”表示从A7单元格数字右起提取一个字符。

从整体来讲,这是一个多层嵌套条件函数公式,共有4层嵌套来完成条件判断。

可以将整个条件函数公式表述为:

如果单元格A7中数字为整数(假如为35566),那么人民币大写就是“叁万伍仟伍佰陆拾陆元整”,否则:

小写金额转换为大写金额(C实现)

前言 银行、单位和个人填写的各种票据和结算凭证是办理支付结算和现金收付的重要依据,直接关系到支付结算的准确、及时和安全。票据和结算凭证是银行、单位和个人凭以记载帐务的会计凭证,是记载经济业务和明确经济责任的一种书面证明。因此,填写票据和结算凭证,必须做到标准化、规范化,要要素齐全、数字正确、字迹清晰、不错漏、不潦草,防止涂改。 我的服务需要一个金额转换过程,本来想在网上找,但都是C++、JavaScript、Delphi 的Demo,还没有C的。索性自己写一个。参考了其它的转换算法,对我有些启发。 大多的算法都是直接分析字符串生成大写金额,即存在一个假设:源字符串的格式是正确的。在我的过程中,用状态机的方法分析源字符串,错误时,返回空指针(我可不敢保证传给我的过程的都是##.##)。分析出源字符串中整数部有多少个数字,是否有小数,统计结果放在一个结构体中,整数和小数部分的数字分别放在两个整形数组里。 有了统计数据就可以生成大写金额了。转换过程有个难点:要区分万、亿等“段”,特别是个位这个“段”,这个概念是在《小写转大写金额在C++中的实现》文章中提到的。在下面的程序中用j= ( size - i - 1 ) & 0x3,实际上是j = ( size - i - 1 ) % 4取模,j==0时为段尾,需要特殊处理。所有的处理都是围绕0来进行的,也就是说,0才是难点。 特殊位置的0,按段分,段中第一个非0数字前的0,可能有多个;段中两个非0数字间的0;段尾的0;个位的0;十分位,角位置的0。 另外,转换的一个重点是大写金额的写法,好像大多的算法都注重转换过程而对这个问题没有深究。我在文章后面附上转换规则。 下面是代码 1./** 2.* @brief 将源字符串中的小写金额转换为大写格式 3.* 4.* @param dest 目的字符串 5.* @param src 小写金额字符串 6.* @return 7.* - NULL 源字符串的格式错误,返回NULL 8.* - 非NULL 目的字符串的首地址 9.* @note 转换根据:中国人民银行会计司编写的最新《企业、银行正确办理支付结 算 10.* 指南》的第114页-第115页 11.*/ 12.char* chineseFee( char* dest, char* src ) 13.{

WORD数字小写金额变大写

Sub 小写金额变大写() Dim Numeric As Currency, IntPart As Long, DecimalPart As Byte, MyField As Field, Lable As String Dim Jiao As Byte, Fen As Byte, Oddment As String, Odd As String, MyChinese As String Const ZWDX As String = "壹贰叁肆伍陆柒捌玖零" '定义一个中文大写汉字常量 On Error Resume Next '错误忽略 With Selection Numeric = VBA.Round(VBA.V al(.Text), 2) '四舍五入保留小数点后两位 '判断是否在表格中!!此处为向左MoveLeft移动1(count)个单元格(wdCell) If .Information(wdWithInTable) Then _ .MoveLeft unit:=wdCell, Count:=1 Else .MoveRight unit:=wdCharacter '对数据进行判断,是否在指定的范围内 If VBA.Abs(Numeric) > 2147483647 Then MsgBox "数值超过范围!", _ vbOKOnly + vbExclamation, "Warning": Exit Sub IntPart = Int(VBA.Abs(Numeric)) '定义一个正整数 Odd = VBA.IIf(IntPart = 0, "", "元") '定义一个STRING变量 '插入中文大写前的标签 Lable = VBA.IIf(Numeric = VBA.Abs(Numeric), "人民币大写: ", "金额大写: 负") '对小数点后面二位数进行择定 DecimalPart = (VBA.Abs(Numeric) - IntPart) * 100 Select Case DecimalPart Case Is = 0 '如果是0,即是选定的数据为整数 Oddment = VBA.IIf(Odd = "", "", Odd & "整") Case Is < 10 '<10,即是零头是分 Oddment = VBA.IIf(Odd <> "", "元零" & VBA.Mid(ZWDX, DecimalPart, 1) & "分", _ VBA.Mid(ZWDX, DecimalPart, 1) & "分") Case 10, 20, 30, 40, 50, 60, 70, 80, 90 '如果是角整 Oddment = "元" & VBA.Mid(ZWDX, DecimalPart / 10, 1) & "角整" Case Else '既有角,又有分的情况 Jiao = VBA.Left(CStr(DecimalPart), 1) '取得角面值 Fen = VBA.Right(CStr(DecimalPart), 1) '取得分面值 Oddment = Odd & VBA.Mid(ZWDX, Jiao, 1) & "角" '转换为角的中文大写 Oddment = Oddment & VBA.Mid(ZWDX, Fen, 1) & "分" '转换为分的中文大写 End Select '指定区域插入中文大写格式的域 Set MyField = .Fields.Add(Range:=.Range, Text:="= " & IntPart & " \*CHINESENUM2") MyField.Select '选定域(最后是用指定文本覆盖选定区域) '如果仅有角分情况下,Mychinese为"" MyChinese = VBA.IIf(MyField.RESULT <> "零", MyField.RESULT, "") .Text = Lable & MyChinese & Oddment End With End Sub

大小写转换公式

Excel自动转换数字大小写具体的操作步骤如下: 1. 启动excel。按“alt+f11”快捷键打开“visual basic编辑器”。 2. 在“visual basic编辑器”中,单击“插入”菜单栏中的“模块”命令,插入一个模块。双击左侧“工程”窗口中的“模块1”选项,在窗口右边展开“模块1(代码)”编辑窗口,然后输入如下代码: function dx(q) dim cur as long,yuan as long dim jiao as integer,fen as integer dim cnyuan as string, cnjiao as string, cnfen as string if q = "" then dx = 0 exit function end if cur = round(q * 100) yuan = int(cur / 100) jiao = int(cur / 10) - yuan * 10 fen = cur - yuan * 100 - jiao * 10

cnyuan = application.worksheetfunction.text(yuan, "[dbnum2]") cnjiao = application.worksheetfunction.text(jiao, "[dbnum2]") cnfen = application.worksheetfunction.text(fen, "[dbnum2]") dx = cnyuan & "元" & "整" d1 = cnyuan & "元" if fen <> 0 and jiao <> 0 then dx = d1 & cnjiao & "角" & cnfen & "分" if yuan = 0 then dx = cnjiao & "角" & cnfen & "分" end if end if if fen = 0 and jiao <> 0 then dx = d1 & cnjiao & "角" & "整" if yuan = 0 then dx = cnjiao & "角" & "整"

EXCEL文本函数-数字小写换大写英文大小写互换

EXCEL文本函数-数字小写换大写/英文大小写互换 在大小写中英文互换公式中我们先假设每个表都有表头,且数字在第二行,在A2单元格内 注意:公式可以随意拖动至任意指定单元格,公式内对象不变;可复制(待鼠标变成黑色十字再拖);也可利用查找-替换-全部替换单元格如A2---全部换成F15 EXCEL中数字小写换大写方法一: 在单元格A2中输入小写数字123.12 B2处输入以下公式 =SUBSTITUTE(SUBSTITUTE(IF(A2<0,"负","")&TEXT(TRUNC(ABS(ROUND(A2,2))),"[DBNum2]")&"元"&IF (ISERR(FIND(".",ROUND(A2,2))),"",TEXT(RIGHT(TRUNC(ROUND(A2,2)*10)),"[DBNum2]"))&IF(ISERR (FIND(".0",TEXT(A2,"0.00"))),"角","")&IF(LEFT(RIGHT(ROUND(A2,2),3))=".",TEXT(RIGHT(ROUND (A2,2)),"[DBNum2]")&"分",IF(ROUND(A2,2)=0,"","整")),"零元零",""),"零元","") EXCEL中数字小写换大写方法二: 在单元格A2中输入小写数字123.12 B2处输入以下公式 =IF((INT(A2*10)-INT(A2)*10)=0,TEXT(INT(A2),"[DBNum2]G/通用格式")&"元"&IF((INT(A2*100)-IN T((A2)*10)*10)=0,"整","零"&TEXT(INT(A2*100)-INT(A2*10)*10,"[DBNum2]G/通用格式")&"分"),TE XT(INT(A2),"[DBNum2]G/通用格式")&"元"&IF((INT(A2*100)-INT((A2)*10)*10)=0,TEXT((INT(A2*10) -INT(A2)*10),"[DBNum2]G/通用格式")&"角整",TEXT((INT(A2*10)-INT(A2)*10),"[DBNum2]G/通用格式")&"角"&TEXT(INT(A2*100)-INT(A2*10)*10,"[DBNum2]G/通用格式")&"分")) EXCEL中数字小写换大写方法三: =IF(A2-INT(A2)=0,TEXT(INT(A2),"[DBNum2]G/通用格式")&"圆整",TEXT(INT(A2),"[DBNum2]G/通用 格式")&"圆"&TEXT(INT((A2-INT(A2))*10),"[DBNum2]G/通用格式")&"角"&TEXT(INT((A2*10-INT(A2* 10))*10),"[DBNum2]G/通用格式")&"分") EXCEL中数字小写换大写方法四: =IF((A2-INT(A2))=0,TEXT(A2,"[DBNUM2]")&"元整",IF(INT(A2*10)-A2*10=0,TEXT(INT(A2),"[DBNUM 2]")&"元"&TEXT((INT(A2*10)-INT(A2)*10),"[DBNUM2]")&"角整",TEXT(INT(A2),"[DBNUM2]")&"元"& IF(INT(A2*10)-INT(A2)*10=0,"零",TEXT(INT(A2*10)-INT(A2)*10,"[DBNUM2]")&"角")&TEXT(RIGHT (A2,1),"[DBNUM2]")&"分")) 看看结果是不是出现了你想要的?应该有你需要的大写金额了 公式的由来: 仟分位公式如下: =TEXT(IF(LEN(INT($A1))>=4,MID($A1,LEN(INT($A1))-3,1),""),"[DBNum2]")

Word中数字金额小写

Word中数字金额小写“变”大写有两招 在日常的办公应用中,尤其是作为一名财务人员,经常需要输入大写金额的形式的数字,“肆仟叁佰五拾元零伍分”,如果用手工输入的话,显得比较麻烦,其实只要通过输入小写数字并通过如下两招就能达到快速输入的目的。 第一招:釜底抽薪——自动更正法 如果需要重复的输入一个大写数字金额,可以采用自动更正的方法。例如要重复输入“肆仟叁佰伍拾元零伍分”,可以先输入“肆仟叁佰伍拾元零伍分”并选中它,然后执行菜单“工具→自动更正选项”打开“自动更正”对话框(图1),在“替换”下的框内输入“4350.05”并单击“添加”按钮确定后退出,以后直接输入“4350.05”后回车即可快速得到“肆仟叁佰伍拾元零伍分”。 第二招:一劳永逸——编制自动宏 如果有许多小写金额要变成大写的话,用上面的自动更正的方法需要定义很多自动更正项,显然也比较麻烦,其实只需要编辑一个宏就能做到“一劳永逸”了。启动Word后按下A lt+F11组合键,在打开的工程窗口左侧双击“ThisDocument”进入代码编写窗口,在代码编辑窗口中输入如下代码: Option Explicit Sub 小写金额变大写() Dim Numeric As Currency, IntPart As Long, DecimalPart As Byte, MyField As Field, Lable As String Dim Jiao As Byte, Fen As Byte, Oddment As String, Odd As String, MyChinese As String Const ZWDX As String = "壹贰叁肆伍陆柒捌玖零" ''定义一个中文大写汉字常量 On Error Resume Next ''错误忽略 With selection Numeric = VBA.Round(VBA.Val(.Text), 2) ''四舍五入保留小数点后两位 ''判断是否在表格中 If .Information(wdWithInTable) Then _ .MoveRight unit:=wdCell Else .MoveRight unit:=wdCharacter ''对数据进行判断,是否在指定的范围内 If VBA.Abs(Numeric) > 2147483647 Then MsgBox "数值超过范围!", _ vbOKOnly + vbExclamation, "Warning": Exit Sub IntPart = Int(VBA.Abs(Numeric)) ''定义一个正整数 Odd = VBA.IIf(IntPart = 0, "", "圆") ''定义一个STRING变量 ''插入中文大写前的标签 Lable = VBA.IIf(Numeric = VBA.Abs(Numeric), "人民币金额大写:", "人民币金额大写:负") ''对小数点后面二位数进行择定 DecimalPart = (VBA.Abs(Numeric) - IntPart) * 100 selectCase DecimalPart Case Is = 0 ''如果是0,即是选定的数据为整数

数字大写转换(简单实用

如何将小写数字自动转换为大写数字 发表日期:2008年7月24日共浏览3393次字体颜色:选择颜色 【字体:放大正 常缩小】 我们在日常工作中经常遇到既要输入小写,又要输入大写,比如开填支票。在开填支票时往往出现小写金额与大写金额不吻合,特别时数字长的最容易出错。现在这个问题得到了解决,只要把小写数字一输入,大写数字就自动产生,又快又准确。如何使用,请看下文。 一、公式及公式介绍 =IF(A1<0,"金额为负无效", (IF(OR(A1=0,A1=""),"(人民币)零元", IF(A1<1,"(人民币)", TEXT(INT(A1),"[dbnum2](人民币)G/通用格式")&"元"))))& IF( (INT(A1*10)-INT(A1)*10)=0, IF(INT(A1*100)-INT(A1*10)*10=0,"","零"), (TEXT(INT(A1*10)-INT(A1)*10,"[dbnum2]")&"角")) &IF( (INT(A1*100)-INT(A1*10)*10)=0, "整", TEXT((INT(A1*100)-INT(A1*10)*10),"[dbnum2]")&"分") 作色部分是公式,公式中“A1”是指欲转换的小写数字所在位置(单元格),它根据小写数字所在位置进行修改;“人民币”是指货币种类,可以修改成美元、日元或大写等字样;其他是不许修

改的。 二、操作 1、复制程序公式:将着色的程序公式部分拷贝到电子表格中欲生成为大写的单元格内。(选中程序中的着色部分,点击鼠标右键,点击“复制”功能,然后双击电子表格中欲生成为大写金额的单元格,点击鼠标右键,点击“粘贴”功能) 2、修改程序公式:①将公式里的单元格“A1”全部替还成小写数字所在的单元格(如小写数字所在的单元格是“B3”,即把程序公式中的“A1”替换成“B3”),共15处。②是美元或其他币种,把“人民币”全替换成“美元或其他币种”。③也可以把程序公式的“人民币”和“()”修改为“大写:”。 (文:苟在林) =IF(C9<0,"金额为负无效", (IF(OR(C9=0,C9=""),"(人民币)零元", IF(C9<1,"(人民币)", TEXT(INT(C9),"[dbnum2](人民币)G/通用格式")&"元"))))& IF( (INT(C9*10)-INT(C9)*10)=0, IF(INT(C9*100)-INT(C9*10)*10=0,"","零"), (TEXT(INT(C9*10)-INT(C9)*10,"[dbnum2]")&"角")) &IF( (INT(C9*100)-INT(C9*10)*10)=0, "整", TEXT((INT(C9*100)-INT(C9*10)*10),"[dbnum2]")&"分"

EXCEL中数字大小写转换方法

EXCEL中数字大小写转换方法 不知道大家工作中有没有遇到这样的问题,投标报价时,报价汇总时还需要大写形式,一个字一个字的敲进去,容易出错,更为不便的是,当报价修改后,需要重新敲一遍,那么有没有一种方法自动将小写转成大写呢? 答案是肯定的,一种最为简单的方法就是在需要大写的单元格直接引用小写数字,然后它会显示为大写的中文.我是通过摸索而得出,如果哪位朋友还有更好的相关知识请给予接下去讨论,学海无涯,更希望用得着的朋友能得到一点帮助,现将我自己摸索的结果发经广大朋友分享! EXCEL大小写转换方法 1. 结果数据无小数点范围转换:将小写数字转换成大写中文:右击需要转换的单元格,在弹出的快捷菜单中选择“单元格格式”,然后在“数字”选项卡中选择“自定义”,在“类型”中写入[DBNum2][$-804]"大""写"!:G/通用格式"元整"后按确定即可。 2. 结果数据保留两位小数数值且在十万以内范围转换:将小写数字转换成大写中文(万范围内):右击需要转换的单元格,在弹出的快捷菜单中选择“单元格格式”,然后在“数字”选项卡中选择“自定义”,在“类型”中写入:[DBNum2]0"万"0"千"0"百"0"拾"0"元".0"角"0"分""整" 3. 结果数据保留两位小数数值且在十万以外范围转换:将小写数字转换成大写中文(万范围内):右击需要转换的单元格,在弹出的快捷菜单中选择“单元格格式”,然后在“数字”选项卡中选择“自定义”,在“类型”中写入:[DBNum2]0"万"0"千"0"百"0"拾"0"万"0"千"0"百"0"拾"0"元".0"角"0"分""整" 附:本人愿意结交天下朋友,共同讨论电脑相关知识,下一请教是CAD的网络版本下载安装及三维二维之间转换,3D的制作,平立面图的快捷速成……希望朋友们能提供相关资料,谢谢

js 数字转换成中文大小写金额

//小写金额转换成中文大写金额 public string CmycurD(decimal num) { string str1 = "零壹贰叁肆伍陆柒捌玖"; //0-9所对应的汉字 string str2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; //数字位所对应的汉字 string str3 = ""; //从原num值中取出的值 string str4 = ""; //数字的字符串形式 string str5 = ""; //人民币大写金额形式 int i; //循环变量 int j; //num的值乘以100的字符串长度 string ch1 = ""; //数字的汉语读法 string ch2 = ""; //数字位的汉字读法 int nzero = 0; //用来计算连续的零值是几个 int temp; //从原num值中取出的值 num = Math.Round(Math.Abs(num), 2); //将num取绝对值并四舍五入取2位小数 str4 = ((long)(num * 100)).ToString(); //将num乘100并转换成字符串形式 j = str4.Length; //找出最高位 if (j > 15) { return "溢出"; } str2 = str2.Substring(15 - j); //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分 //循环取出每一位需要转换的值 for (i = 0; i < j; i++) { str3 = str4.Substring(i, 1); //取出需转换的某一位的值 temp = Convert.ToInt32(str3); //转换为数字 if (i != (j - 3) && i != (j - 7) && i != (j - 11) && i != (j - 15)) { //当所取位数不为元、万、亿、万亿上的数字时 if (str3 == "0") { ch1 = ""; ch2 = ""; nzero = nzero + 1; } else { if (str3 != "0" && nzero != 0) { ch1 = "零" + str1.Substring(temp * 1, 1); ch2 = str2.Substring(i, 1); nzero = 0;

Word中数字金额小写转大写

Word中数字金额小写“变”大写 在日常的办公应用中,尤其是作为一名财务人员,经常需要输入大写金额的形式的数字,“肆仟叁佰五拾元零伍分”,如果用手工输入的话,显得比较麻烦,其实只要通过输入小写数字并通过编写一个简单的宏就能达到快速输入的目的! 启动Word后按下A lt+F11组合键,在打开的工程窗口左侧双击“ThisDocument”进入代码编写窗口,在代码编辑窗口中输入如下代码: Option Explicit Sub 小写金额变大写() Dim Numeric As Currency, IntPart As Long, DecimalPart As Byte, MyField As Field, Lable As String Dim Jiao As Byte, Fen As Byte, Oddment As String, Odd As String, MyChinese As String Const ZWDX As String = "壹贰叁肆伍陆柒捌玖零" '定义一个中文大写汉字常量 On Error Resume Next '错误忽略 With Selection Numeric = VBA.Round(VBA.Val(.Text), 2) '四舍五入保留小数点后两位 '判断是否在表格中 If .Information(wdWithInTable) Then _ .MoveRight unit:=wdCell Else .MoveRight unit:=wdCharacter '对数据进行判断,是否在指定的范围内 If VBA.Abs(Numeric) > 2147483647 Then MsgBox "数值超过范围!", _ vbOKOnly + vbExclamation, "Warning": Exit Sub IntPart = Int(VBA.Abs(Numeric)) '定义一个正整数 Odd = VBA.IIf(IntPart = 0, "", "圆") '定义一个STRING变量

excel金额转大写的公式用法

excel金额转大写的公式用法 Excel中经常需要把金额转换成大写的形式,具体该怎么用公式进行转换大写格式呢?接下来是小编为大家带来的excel金额转大写的公式用法,供大家参考。 excel金额转大写的公式用法: 金额转换大写步骤1:将小写数字转换成大写中文:右击需要转换的单元格,在弹出的快捷菜单中选择设置单元格格式,然后在数字选项卡中选择特殊,在类型中选择中文大写数字,这时候原来的数字为12345,在示例里已变成大写的壹万贰仟叁佰肆拾伍,然后按确定即可。 金额转换大写步骤2:右击需要转换的单元格,在弹出的快捷菜单中选择设置单元格格式,然后在数字选项卡中选择自定义,在类型中写入【[DBNum2][$-804]G/通用格式元整】,同样,在示例里已变成大写的壹万贰仟叁佰肆拾伍,然后按确定即可。 金额转换大写步骤1:= 人民币:[DBNUM2])元整,IF(INT(SUM(E2:E4)*10)-SUM(E2:E4)*10=0,TEXT(INT(SUM(E2 :E4)),[DBNUM2])元[DBNUM2])角整,TEXT(INT(SUM(E2:E4)),[DBNUM2])元零,TEXT(INT(SUM(E2:E4)*10)-INT(SUM(E2:E4))*10,[DBNUM2])角)[DBNUM2])分))(¥元) 前后加插了字符串的方法,其中SUM(E2:E4)是一个求合函数,

请按实际要求替换为某个单元格或另外的内容。 使用记事本的替换功能就可以了。 看了excel金额转大写的公式用法还看了:1.excel 数字小写转大写公式的教程(2种) 2.怎么将Excel2007小写金额转换为大写金额 3.怎么利用Excel2013把数字转为中文大写数字 4.excel小写换大写函数的教程 5.Excel大写字母怎么转换为小写 6.excel利用公式数字转换文本的方法 7.Excel2007中怎么让单元格英文小写转为大写

EXCEL数字大小写转换公式

公式一: SUBSTITUTE(SUBSTITUTE(IF(A1<0,"负","")&TEXT(TRUNC(ABS(ROUND(A1,2))),"[DBNum2]")&"元"&IF(ISERR(FIND(".",ROUND(A1,2))),"",TEXT(RIGHT(TRUNC(ROUND(A1,2)*10)),"[DBN um2]"))&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 TENATE(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(A1*10),1)),"[DBNum2]"), IF(RIGHT(TRUNC(A1*10),1)="0","","角"),TEXT(IF(RIGHT(TRUNC(A1*100),1)="0","",RIGHT(TRUNC(A1*100),1)),"[DBNum2]"),IF (RIGHT(TRUNC(A1*100),1)="0","","分")) 公式三: IF(ROUND(A1,2)=0,"",IF(ROUND(ABS(A1),2)>=1,TEXT(INT(ROUND(ABS(A1),2)),"[DBNu m2]")&"元","")&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)),"[DBNum 2]")&"角","")&IF(RIGHT(TEXT(A1,".00"))*1>0,TEXT(RIGHT(TEXT(A1,".00")),"[DBNum2]")&"分","整"))) 我用不同的数值对这三个公式进行了一番测试,都达到了我的要求,至少到目前为止还没有发现上述公式存在着什么错误。上述公式对负数的处理采取了不同的方法。公式一和公式二对负数是在其前部加上一个“负”字,而公式三则是按正数进行处理。我比较推崇公式三的方式,不是还有条件格式可以设置吗?若是负数就用条件格式来变为红色。 我不准备在此对上述公式进行分析解说。撰写本文的目的是我也想自己来“组装”一个所谓的通用公式。我只所以说是“组装”而不是叫什么“开发”或者是“拼凑”,是因为EXCEL的函数现成地摆在了那里,使用时就是为了达到某种目的,按照其固有的规则,将其进行有机的组合,可谓“组装”。但是在这个过程中,也是要开动脑筋的,并非是随随便便“拼凑”就能成功的。本文的目的就是想将我在“组装”公式时的思路展现出来。 若用程序设计语言(比如用C语言)来写一个人民币数字金额转大写金额会怎样考虑呢?我想每一位数字都要考虑到。但在EXCEL中,单元格格式中有一个“特殊”格式,里面就有将小写数字转换为大写数字的格式。但要注意的是,这里转换的是数字而不是金额。所以转换出来后并不存在“元”、“角”、“分”、“整”等在大写金额中出现的字。但是,“元”只出现在整数部分的后面,而小数部分只有角分两位。这样只要利用EXCEL的“特殊”格式将数据分为整数部分、角位和分位三个部分来处理就行了。处理的顺序是先整数,再角位、再分

excel金额转大写的公式用法

excel金额转大写的公式用法 excel金额转大写的公式用法: 金额转换大写步骤1:将小写数字转换成大写中文:右击需要转换的单元格,在弹出的快捷菜单中选择“设置单元格格式”,然后在“数字”选项卡中选择“特殊”,在“类型”中选择"中文大写数字",这时候原来的数字为12345,在示例里已变成大写的"壹万贰仟叁佰肆拾伍",然后按确定即可。 金额转换大写步骤2:右击需要转换的单元格,在弹出的快捷菜单中选择“设置单元格格式”,然后在“数字”选项卡中选择“自定义”,在“类型”中写入【[dbnum2][$-804]g/通用格式"元""整"】,同样,在示例里已变成大写的"壹万贰仟叁佰肆拾伍",然后按确定即可。 金额转换大写步骤1:=" 人民币:"&if((sum(e2:e4)-int(sum(e2:e4)))=0,text(sum(e2:e4),"[db num2]")&"元整",if(int(sum(e2:e4)*10)-sum(e2:e4)*10=0,text(int(sum(e2: e4)),"[dbnum2]")&"元"&text((int(sum(e2:e4)*10)-int(sum(e2:e4))*10),"[dbnum2] ")&"角整",text(int(sum(e2:e4)),"[dbnum2]")&"元"&if(int(sum(e2:e4)*10)-int(sum(e2:e4))*10=0,"零",text(int(sum(e2:e4)*10)-int(sum(e2:e4))*10,"[dbnum2]")

&"角")&text(right(sum(e2:e4),1),"[dbnum2]")&"分"))&"(¥"&sum(e2:e4)&"元)" 前后加插了字符串的方法,其中sum(e2:e4)是一个求合函数,请按实际要求替换为某个单元格或另外的内容。 使用记事本的替换功能就可以了。 看了excel金额转大写的公式用法

利用Word宏把数字金额小写“变”大写

利用Word宏把数字金额小写“变”大写 在日常的办公应用中,尤其是作为一名财务人员,经常需要输入大写金额的形式的数字,“肆仟叁佰五拾元零伍分”,如果用手工输入的话,显得比较麻烦,其实只要通过输入小写数字并通过如下两招就能达到快速输入的目的。 启动Word后按下Alt+F11组合键,在打开的工程窗口左侧双击“ThisDocument”进入代码编写窗口,在代码编辑窗口中输入如下代码: Option Explicit Sub 小写金额变大写() Dim Numeric As Currency, IntPart As Long, DecimalPart As Byte, MyField As Field, Lable As String Dim Jiao As Byte, Fen As Byte, Oddment As String, Odd As String, MyChinese As String Const ZWDX As String = "壹贰叁肆伍陆柒捌玖零" '定义一个中文大写汉字常量 On Error Resume Next '错误忽略 With Selection Numeric = VBA.Round(VBA.Val(.Text), 2) '四舍五入保留小数点后两位 '判断是否在表格中 If .Information(wdWithInTable) Then _ .MoveRight unit:=wdCell Else .MoveRight unit:=wdCharacter '对数据进行判断,是否在指定的范围内 If VBA.Abs(Numeric) > 2147483647 Then MsgBox "数值超过范围!", _ vbOKOnly + vbExclamation, "Warning": Exit Sub IntPart = Int(VBA.Abs(Numeric)) '定义一个正整数 Odd = VBA.IIf(IntPart = 0, "", "元") '定义一个STRING变量 '插入中文大写前的标签 Lable = VBA.IIf(Numeric = VBA.Abs(Numeric), "人民币金额大写: ", "人民币金额大写: 负") '对小数点后面二位数进行择定 DecimalPart = (VBA.Abs(Numeric) - IntPart) * 100 Select Case DecimalPart Case Is = 0 '如果是0,即是选定的数据为整数 Oddment = VBA.IIf(Odd = "", "", Odd & "整") Case Is < 10 '<10,即是零头是分 Oddment = VBA.IIf(Odd <> "", "元零" & VBA.Mid(ZWDX, DecimalPart, 1) & "分", _ VBA.Mid(ZWDX, DecimalPart, 1) & "分") Case 10, 20, 30, 40, 50, 60, 70, 80, 90 '如果是角整 Oddment = "元" & VBA.Mid(ZWDX, DecimalPart / 10, 1) & "角整"

EXCEL中小写数字转换为中文大写货币金额格式方法

关于EXCEL中小写数字转换为中文大写货币金额格式方法 第一种方法:复制红字体部分至需大写金额单元格=TEXT(INT(B12),"[DBNum2]G/通用格式")&"元"&IF((INT(B12*10)-INT(B12)*10)=0,IF((INT(B12*100)-INT(B12)*100)>0,"零",""),TEXT(IN T(B12*10)-INT(B12)*10,"[DBNum2]G/通用格式")&"角")&IF((INT(B12*100)-INT(B12*10)*10) =0,"整",TEXT(INT(B12*100)-INT(B12*10)*10,"[DBNum2]G/通用格式")&"分") B12为小写金额所在单元格() 第二种方法:复制红字体部分至需大写金额单元格=IF(ROUND(B12,2)<0,"无效数值",IF(ROUN D(B12,2)=0,"零",IF(ROUND(B12,2)<1,"",TEXT(INT(ROUND(B12,2)),"[dbnum2]")&"元")&IF(I NT(ROUND(B12,2)*10)-INT(ROUND(B12,2))*10=0,IF(INT(ROUND(B12,2))*(INT(ROUND(B12, 2)*100)-INT(ROUND(B12,2)*10)*10)=0,"","零"),TEXT(INT(ROUND(B12,2)*10)-INT(ROUND (B12,2))*10,"[dbnum2]")&"角")&IF((INT(ROUND(B12,2)*100)-INT(ROUND(B12,2)*10)*10)= 0,"整",TEXT((INT(ROUND(B12,2)*100)-INT(ROUND(B12,2)*10)*10),"[dbnum2]")&"分"))) B12为小写金额所在单元格 1、这个看起来比较烦琐,不过终究达到了效果。 =TEXT(TRUNC(ROUND(待转换数字或单元格,2),0),"[DBNUM2]G/通用格式"&"元")&(IF((ROUN D(待转换数字或单元格,2)-TRUNC(ROUND(待转换数字或单元格,2),0))<0.01,"",IF(MIDB(R OUND(待转换数字或单元格,2),IF((ROUND(待转换数字或单元格,2)-TRUNC(ROUND(待转换数字或单元格,2),1))<0.01,(LEN(ROUND(待转换数字或单元格,2))),(LEN(ROUND(待转换数字或单元格,2))-1)),1)="0","零",TEXT(MIDB(ROUND(待转换数字或单元格,2),IF((ROUND(待转换数字或单元格,2)-TRUNC(ROUND(待转换数字或单元格,2),1))<0.01,(LEN(ROUND(待转换数字或单元格,2))),(LEN(ROUND(待转换数字或单元格,2))-1)),1),"[DBNUM2]G/通用格式")&"角")))&(IF((ROUND(待转换数字或单元格,2)-TRUNC(ROUND(待转换数字或单元格,2), 1))<0.01,"整",TEXT(RIGHT(ROUND(待转换数字或单元格,2),1),"[DBNUM2]G/通用格式")&"分")) 2、这个是最简洁的函数实现方式 =IF(待转换数字或单元格<0,"负","")&IF(TRUNC(ROUND(待转换数字或单元格,2))=0,"",TE XT(TRUNC(ABS(ROUND(待转换数字或单元格,2))),"[DBNum2]")&"元")&IF(ISERR(FIND(".", ROUND(待转换数字或单元格,2))),"",TEXT(RIGHT(TRUNC(ROUND(待转换数字或单元格,2)*1 0)),"[DBNum2]"))&IF(ISERR(FIND(".0",TEXT(待转换数字或单元格,"0.00"))),"角","")& IF(LEFT(RIGHT(ROUND(待转换数字或单元格,2),3))=".",TEXT(RIGHT(ROUND(待转换数字或单元格,2)),"[DBNum2]")&"分","整") 3、其他函数 =IF(ISNUMBER(A1),IF(TRUNC(A1)=0,IF(AND(MID(TEXT(TRUNC(A1,2),"0.00"),LEN(TEXT (T RUNC(A1,2),"0.00"))-1,1)="0",RIGHT(TEXT(TRUNC(A1,2),"0.00"),1)="0"),"零元",""), TEXT(TRUNC(A1),"[DBNUM2]")&"元")&(IF(MID(TEXT(TRUNC(A1,2), "0.00"),LEN(TEXT(TRU NC(A1,2),"0.00"))-1,1)="0",IF(OR(TRUNC(A1)=0,RIGHT(TEXT (TRUNC(A1,2),"0.00"),1) ="0"),"","零"),TEXT(MID(A1,LEN(TEXT(TRUNC(A1,2), "0.00"))-1,1),"[DBNUM2]")&"角"))&(IF(RIGHT(TEXT(TRUNC(A1,2), "0.00"),1)="0","",TEXT(RIGHT(TEXT(TRUNC(A1,2)," 0.00"),1),"[DBNUM2]")& "分")),IF(A1="","","不是有效金额,请重新输入!"))

Excel数字小写金额转换汉字大写金额公式的简单设置

Excel数字小写金额转换汉字大写金额公式的简单设置 来源:葛翔的日志 Excel数字小写金额转换汉字大写金额公式在会计工作中是经常应用到的,它能提高工作效率和会计数据的准确性。 网上有很多设置Excel数字小写金额转汉字大写金额公式的方法,基本上都很繁琐,且功能不全面(对负金额不能转换)。 本人在Excel会计工作实践中,设计了一个数字小写金额转换汉字大写金额的公式,公式仅500多个字符,个人感觉还很满意,现拿出来供大家分享,不足之处,也请大家不吝赐教。 公式如下: =IF(ROUND(A1,2)=0,"",IF(A1<0,"负","")&IF(ABS(A1)>=1,TEXT(INT(ROUND(ABS(A1),2)),"[dbnum2]")&"元","")&IF(VALUE(MID(RIGHT(TEXT((ABS(A1)*100+100),"###"),2),1,1))=0,IF(VALUE(RIGHT(TEXT(ABS( A1)*100,"###"),1))=0,"整",IF(ABS(A1)>=1,"零","")&TEXT(VALUE(RIGHT(TEXT(ABS(A1)*100,"###"),1)),"[dbnum2]")&"分"),IF(VALUE(RIGHT(TEXT(ABS(A1)*100,"###"),1))=0,TEXT(VALUE(MID(RIGHT(TEXT((ABS(A1)*100+1 00),"###"),2),1,1)),"[dbnum2]")&"角整",TEXT(VALUE(MID(RIGHT(TEXT((ABS(A1)*100+100),"###"),2),1,1)),"[dbnum2]")&"角"&TEXT(VALUE(RIGHT(TEXT(ABS(A1)*100,"###"),1)),"[dbnum2]")&"分"))) 公式中A1为小写金额所在单元格,实际使用中只需将其替换为实际小写金额所在单元格即可,非常方便。 公式可以对正数、零(本公式转换为空白,与支票一致,如需转换为“零元整”,只需在公式第一个双引号内加入即可)、负数(会计数据有时也涉及到)均可进行转换。 最近,在网上看到高手设计的更简洁的转换公式,缺点是只能把“0”转换为空白,不能转换为“零元整”,公式如下: =SUBSTITUTE(SUBSTITUTE(IF(-RMB(A1),IF(A1>0,,"负")&TEXT(INT(ABS(A1)+0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(RMB(A1,2),2),"[dbnum2]0角0分;;整"),),"零角",IF(A1^2<1,,"零")),"零分","整") 将以上两个公式结合一下,达到既简短,又能达到“0”的空白和“零元整”两种(根据需要只能选其中一种)转换结果的目的。公式如下:

相关主题