当前位置:文档之家› Excel货币大写转换

Excel货币大写转换

Excel货币大写转换
Excel货币大写转换

Excel中如何将货币数值由数字金额自动转为中文大写金额

使用Excel时有时会用数据的转换,尤其是做财务工作,如工资表等时就需要用中文大写金额。如果手动输入,就会麻烦一些,多的时候也会增加了工作量。我们可以使用Excel 中的函数来实现将货币数值由数字金额自动转换成中文大写金额。

本文以一份表格为例讲解如何将数字金额转换为中文大写金额。

先在Excel表格中算出合计金额,如下图。

利用公式把小写的货币转换为中文大写,并写在合并的单元格中。公式如下:

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

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

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

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

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

把公式输入合计右边的合并单元格中,如下图。

输入后的显示结果如下图。

公式中一共用到了4函数,文本连接符“&”及相应的汉字。下面对这4种函数做个讲解:IF函数:是一个条件判断函数,该函数的基本格式是:IF(a,b,c),其中“a”是一个条件,“b”和“c”是两种判断结果,可以表述为:如果条件a成立,那么结果是b,否则结果就是c。以上公式是一个多层嵌套判断函数,根据货币金额的不同情况生成不同格式的中文大写。

INT函数:是一个取整函数,取参数数字的整数部分。如:INT(I41)是取I41这个单元格数字的整数部分,(I41-INT(I41))=0表示一个整数,INT(I41*10)-INT(I41)*10表示I41单元小数点后第一位数,INT(I41*10)-INT(I41)*10=0表示I41单元格中有一位小数。

TEXT函数:可以将阿拉伯格式数字转换为中文大写格式,如公式中

TEXT(I41,"[DBNUM2] ")就是把I41单元格中的数字转换成中文大写格式,其中"[DBNUM2] "是把数字转换为中文大写形式,照搬即可。

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

公式使用了多层嵌套,看起来比较复杂一些。

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

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

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

如果单元格A7中数字为两位小数数字,且十分位为0(假如为35566.08),那么人民币大写就是“叁万伍仟伍佰陆拾陆元零捌分”。否则:

如果单元格A7中数字为两位数小数,且十分位不为0(假如为35566.28),那么人民币大写就是“叁万伍仟伍佰陆拾陆元贰角捌分”。

注:本文参考了网络上相关内容的文章

小写金额转换为大写金额(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.{

Excel--手把手教你转换出中文大写金额

手把手教你转换出中文大写金额 大家在使用Excel的时候,是否会遇到要把一个或一些阿拉伯数字转换成中文大写金额的计算要求呢?如果只是偶尔需要对少数几个数字进行转换,干脆手工操作啦,但如果要进行转换的数字较多或经常要转换时,该怎么办呢?一向无往不胜的Excel能为你做些什么呢?其实,这个不难,最少有三种方法可以实现。 一、设置单元格格式: 用这个办法能直接将阿拉伯数字转换成中文大写金额,而且操作简单。右击需要转换的单元格,在弹出的快捷菜单中选择“单元格格式”,然后在“数字”选项卡中选择“自定义”,在“类型”中写入“[DBNum2]G/通用格式"元"”后按确定即可。瞧,321是不是已经变成了“叁佰贰拾壹元”了? 可惜的是,这个办法只能处理整数,而对带有小数的数字无能为力。当然也有过朋友通过对此法进行一定的扩展而可以处理部分带小数的数字,但效果不是很理想。 二、利用公式进行转换: 所谓“自力更生,丰衣足食”,这第三种方法就是自己编写公式进行转换。 为了照顾一些Excel初学者,我们先来了解一下什么是Excel里的公式与函数。Excel之所以计算功能异常强大,百分之八十的功劳就在于用户可以创建公式进行计算。所谓公式,实际上就是一个计算

表达式(通常是包含函数与单元格引用的计算表达式)。在Excel里,以“=”作为公式的标志,在任何一个非文本值类型的单元格内,只要以“=”开头,就必定是Excel公式,举一最简单的例子:如果A1、B1单元格的值为别为1和2,那么如果在C3单元格内输入“=A1+B1”,则Excel会自动将A1和B1的值相加,得到数值3,再返回给C3单元格。 再来说函数,函数其实就是包装好的公式,它能根据你提供的参数自动进行复杂的计算,从而最大限度地减轻你的工作量。Excel内置了大量具备各种功能的函数,而且Excel还允许用户自己添加函数,这样一来,在Excel里几乎没有计算不出来的东西了。拿Excel中较常用到的SUM函数来说,如果要计算从A1到A100单元格的数值总和,写公式时是用不着写成“=A1+A2+A3+……A100”的,而只是简单地写成“=SUM(A1:A10)”就可以了。 Excel中有上百种函数,今天我们只讲我们将要用到的几个。其实所有这些函数的功能及详细用法在Excel帮助文件里都有介绍,当你遇到具体计算要求时,只要你点击常用工具栏中“粘贴函数”按钮,Excel会将所有的函数一一展示在你眼前,结合相应的帮助文件,你可以迅速挑选到一个适合你的函数。 1、IF函数 这是Excel里最常用到的函数之一,它的功能是执行真假值判断,根据逻辑测试的真假值返回不同的结果。其语法为IF(判断表达式,当条件值为真时返回的值,当条件值为假时返回的值)。通俗地说,

手把手教你转换出中文大写金额

手把手教你转换出中文大写金额 Excel Home 2002-3-14 21:43:36 大家在使用Excel的时候,是否会遇到要把一个或一些阿拉伯数字转换成中文大写金额的计算要求呢?如果只是偶尔需要对少数几个数字进行转换,干脆手工操作啦,但如果要进行转换的数字较多或经常要转换时,该怎么办呢?一向无往不胜的Excel能为你做些什么呢?其实,这个不难,最少有三种方法可以实现。 一、设置单元格格式: 用这个办法能直接将阿拉伯数字转换成中文大写金额,而且操作简单。右击需要转换的单元格,在弹出的快捷菜单中选择“单元格格式”,然后在“数字”选项卡中选择“自定义”,在“类型”中写入“[DBNum2]G/通用格式"元"”后按确定即可。瞧,321是不是已经变成了“叁佰贰拾壹元”了? 可惜的是,这个办法只能处理整数,而对带有小数的数字无能为力。当然也有过朋友通过对此法进行一定的扩展而可以处理部分带小数的数字,但效果不是很理想。 二、利用中文大写金额转换函数: 先别急,这个函数你在Excel里是找不到的,微软毕竟不是大陆公司!这个函数被收集在本站开发的“Excel 扩展函数集”里,下载这个函数集,按说明进行安装后,在Excel中运用一个叫EHDXRMB()的函数就可以将任意数字转换成中文大写金额。具体情况在此就不多进行介绍了。 三、利用公式进行转换: 所谓“自力更生,丰衣足食”,这第三种方法就是自己编写公式进行转换。虽然吝啬的小编连白开水也舍不得给我,但我还是一如既往地发扬大公无私之精神将独门密技告之天下,包学包会,不会免费再学……(小编:STOP!再要是废话就OUT!) 为了照顾一些Excel初学者,我们先来了解一下什么是Excel里的公式与函数。Excel之所以计算功能异常强大,百分之八十的功劳就在于用户可以创建公式进行计算。所谓公式,实际上就是一个计算表达式(通常是包含函数与单元格引用的计算表达式)。在Excel里,以“=”作为公式的标志,在任何一个非文本值类型的单元格内,只要以“=”开头,就必定是Excel公式,举一最简单的例子:如果A1、B1单元格的值为别为1和2,那么如果在C3单元格内输入“=A1+B1”,则Excel会自动将A1和B1的值相加,得到数值3,再返回给C3单元格。 再来说函数,函数其实就是包装好的公式,它能根据你提供的参数自动进行复杂的计算,从而最大限度地减轻你的工作量。Excel内置了大量具备各种功能的函数,而且Excel还允许用户自己添加函数(就像第二种方法中笔者写的那个),这样一来,在Excel里几乎没有计算不出来的东西了。拿Excel中较常用到的SUM函数来说,如果要计算从A1到A100单元格的数值总和,写公式时是用不着写成 “=A1+A2+A3+……A100”的,而只是简单地写成“=SUM(A1:A10)”就可以了。 Excel中有上百种函数,今天我们只讲我们将要用到的几个。其实所有这些函数的功能及详细用法在Excel 帮助文件里都有介绍,当你遇到具体计算要求时,只要你点击常用工具栏中“粘贴函数”按钮,Excel会将所有的函数一一展示在你眼前,结合相应的帮助文件,你可以迅速挑选到一个适合你的函数。 1、IF函数 这是Excel里最常用到的函数之一,它的功能是执行真假值判断,根据逻辑测试的真假值返回不同的结果。其语法为IF(判断表达式,当条件值为真时返回的值,当条件值为假时返回的值)。通俗地说,就是“如果……就……否则”的语法结构。比如A1单元格内为学生成绩,我们现在要在B1单元格计算此成绩是否及格,则公式为“=IF(A1<60,"不及格","及格")”,这样一来,如果A1的数值小于60,B1就会显示“不及格”,否则就显示“及格”,是不是挺简单?IF函数是允许嵌套的,也就是说IF函数里面还可以有IF函数,这样就可以执行比较复杂的判断了。 2、TRUNC函数 这个函数可以截去指定位数的小数,如果将小数部分全部截去,就可以得到一个整数。要注意,截去是指

人民币小写金额转换成大写格式

人民币小写金额转换成大写格式 要将人民币小写金额转换成大写格式,用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要左对齐。

二、用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所示。

金额大写转换函数

金额大写转换函数 #region 金额大写转化 private static String[] Ls_ShZ = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "拾" }; private static String[] Ls_DW_Zh = { "元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万" }; private static String[] Num_DW = { "", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万" }; private static String[] Ls_DW_X = { "角", "分" }; /// <summary> /// 金额小写转中文大写。 /// 整数支持到万亿;小数部分支持到分(超过两位将进行Banker舍入法处

Excel中如何将货币数值由数字金额自动转为中文大写金额

Excel中如何将货币数值由数字金额自动转为中文大写金额 使用Excel时有时会用数据的转换,尤其是做财务工作,如工资表等时就需要用中文大写金额。如果手动输入,就会麻烦一些,多的时候也会增加了工作量。我们可以使用Excel中的函数来实现将货币数值由数字金额自动转换成中文大写金额。 本文以一份表格为例讲解如何将数字金额转换为中文大写金额。 先在Excel表格中算出合计金额,如下图。 利用公式把小写的货币转换为中文大写,并写在合并的单元格中。公式如下:

=IF((I41-INT(I41))=0,TEXT(I41,"[DBNUM2]")&"元整 ",IF(INT(I41*10)-I41*10=0,TEXT(INT(I41),"[DBNUM2]")&"元 "&TEXT(INT(I41*10)-INT(I41)*10,"[DBNUM2]")&"角整 ",TEXT(INT(I41),"[DBNUM2]")&"元"&IF(INT(I41*10)-INT(I41)*10,"零",TEXT(INT(I41*10)-INT(I41)*10,"[DBNUM2]")&"角 ")&TEXT(RIGHT(I41,1),"[DBNUM2]")&"分"))。 把公式输入合计右边的合并单元格中,如下图。 输入后的显示结果如下图。

公式中一共用到了4函数,文本连接符“&”及相应的汉字。下面对这4种函数做个讲解: IF函数:是一个条件判断函数,该函数的基本格式是:IF(a,b,c),其中“a”是一个条件,“b”和“c”是两种判断结果,可以表述为:如果条件a成立,那么结果是b,否则结果就是c。以上公式是一个多层嵌套判断函数,根据货币金额的不同情况生成不同格式的中文大写。 INT函数:是一个取整函数,取参数数字的整数部分。如:INT(I41)是取I41这个单元格数字的整数部分,(I41-INT(I41))=0表示一个整数,INT(I41*10)-INT(I41)*10表示I41单元小数点后第一位数,

金额大小写转换

金额大小写转换 第一招:釜底抽薪——自动更正法 如果需要重复的输入一个大写数字金额,可以采用自动更正的方法。例如要重复输入“肆仟叁佰伍拾元零伍分”,可以先输入“肆仟叁佰伍拾元零伍分”并选中它,然后执行菜单“工具→自动更正选项”打开“自动更正”对话框,在“替换”下的框内输入“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.V al(.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) & "角整" Case Else '既有角,又有分的情况

Excel中金额大小写转换

Excel中金额大小写转换 一、Excel中金额大小写转换公式 公式1: “=IF(ROUND(E19,2)=0,"",IF(ROUND(ABS(E19),2)>=1,TEXT(INT(ROUND(ABS(E19),2)),"[ DBNum2]")&"元","")&IF(RIGHT(TEXT(E19,".00"),2)*1=0,"整 ",IF(RIGHT(TEXT(E19,".00"),4)*1>=1,IF(RIGHT(TEXT(E19,".00"),2)*1>9,"","零 "),IF(ROUND(ABS(E19),2)>=1,"零 ",""))&IF(RIGHT(TEXT(E19,".00"),2)*1>9,TEXT(LEFT(RIGHT(TEXT(E19,".00"),2)),"[DBNu m2]")&"角 ","")&IF(RIGHT(TEXT(E19,".00"))*1>0,TEXT(RIGHT(TEXT(E19,".00")),"[DBNum2]")&"分","整")))” 公式2:“=IF(F4<1,IF(F4<0.1,TEXT(INT(F4*100),"[DBNum2]G/通用格式")&"分 ",IF((INT(F4*100)-INT(F4*10)*10=0),TEXT(INT(F4*10),"[DBNum2]G/通用格式")&"角整",TEXT(INT(F4*10),"[DBNum2]G/通用格式")&"角 "&TEXT(INT(F4*100)-INT(F4*10)*10,"[DBNum2]G/通用格式")&"分 ")),TEXT(INT(F4),"[DBNum2]G/通用格式"&"元 ")&IF((INT(F4*10)-INT(F4)*10)=0,IF((INT(F4*100)-INT(F4*10)*10)=0,"","零 "),IF((INT(F4*0.1)-INT(F4)*0.1)=0,"零","")&TEXT(INT(F4*10)-INT(F4)*10,"[DBNum2]G/通用格式")&"角")&IF((INT(F4*100)-INT(F4*10)*10)=0,"整 ",TEXT(INT(F4*100)-INT(F4*10)*10,"[DBNum2]G/通用格式")&"分"))” 公式3:“=IF(B10<1,IF(B10<0.1,TEXT(INT(B10*100),"[DBNum2]G/通用格式")&"分 ",IF((INT(B10*100)-INT(B10*10)*10=0),TEXT(INT(B10*10),"[DBNum2]G/通用格式")&"角整",TEXT(INT(B10*10),"[DBNum2]G/通用格式")&"角 "&TEXT(INT(B10*100)-INT(B10*10)*10,"[DBNum2]G/通用格式")&"分 ")),TEXT(INT(B10),"[DBNum2]G/通用格式"&"元 ")&IF((INT(B10*10)-INT(B10)*10)=0,IF((INT(B10*100)-INT(B10*10)*10)=0,"","零 "),IF((INT(B10*0.1)-INT(B10)*0.1)=0,"零 ","")&TEXT(INT(B10*10)-INT(B10)*10,"[DBNum2]G/通用格式")&"角 ")&IF((INT(B10*100)-INT(B10*10)*10)=0,"整 ",TEXT(INT(B10*100)-INT(B10*10)*10,"[DBNum2]G/通用格式")&"分"))” 二、Excel中金额大小写转换函数[=ntoc(单元格)] 使用加载宏方法: “工具栏”→“宏”→“V isual Basic编辑器”,在“Visual Basic编辑器”中顶部选“插入”→“模块”,在“模块”对话框中选“通用”,并在编辑区域内粘贴以下内容: Function NtoC(n) 'n as single Const cNum = "零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分" Const cCha = "零仟零佰零拾零零零零零亿零万零元亿万零角零分零整-零零零零零亿万元亿零整整" NtoC = "" sNum = Trim(Str(Int(n * 100)))

把金额转换为大写

using System; namespace HaiNuo { /***************************************************************************************** * 类名:DecimalToUpper * 功能:把金额数据从小写转换为大写 * 限制条件:金额小于一万亿,且少于两位小数 * 作者:雷俊强junqiang_china@https://www.doczj.com/doc/4610416468.html, * 日期:2003-5-6 * 用法:DecimalToUpper x = new DecimalToUpper(); * this.textBox2.Text = x.ToUpper(d); * 欢迎下载、使用 * * FOR my wife and my son * *****************************************************************************************/ public class DecimalToUpper { public DecimalToUpper()

{ // // TODO: 在此处添加构造函数逻辑 // } ///

/// 小写金额转换为大写金额,其他条件:金额小于一万亿,最多两位小数 /// /// 源金额,d 《1000000000000.00(一万亿),且最多两位小数 /// 结果,大写金额 public string ToUpper(decimal d) { if (d == 0) return "零元整"; string je = d.ToString("####.00"); if (je.Length > 15) return ""; je = new String('0',15 - je.Length) + je; //若小于15

word转换人民币金额大写

word转换人民币金额大写 word转换人民币金额大写宏 在word中启用A lt+F11编辑宏,在打开的工程窗口左侧双击“ThisDocument”进入代码编写窗口,在代码编辑窗口中输入如下代码: 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) '四舍五入保留小数点后两位 '判断是否在表格中!!此处为向左MoveLeft移动3(count)个单元格(wdCell) If .Information(wdWithInTable) Then _ .MoveLeft unit:=wdCell, Count:=3 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)

金额大写的转换

金额大写的转换 假设A1单元格为原始数据,即小写数字。 公式法一: =IF(A1=0,"零元整",IF(A1<0,"负",)&IF(INT(ABS(A1)),TEXT(INT(ABS(A1)),"[dbnum2]")&"元",)&IF(INT(ABS(A1)*10)-INT(ABS(A1))*10,TEXT(INT(ABS(A1)*10)-INT(ABS(A1))*10,"[db num2]")&"角",IF(INT(ABS(A1))=ABS(A1),,"零"))&IF(ROUND(ABS(A1)*100-INT(ABS(A1)*10)* 10,) , TEXT(ROUND(ABS(A1)*100-INT(ABS(A1)*10)*10,),"[dbnum2]")&"分","整")) 公式法二: =IF(A1<0,"负",)&TEXT(TRUNC(ABS(A1)),"[DBNum2]G/通用格式")&"元"&IF(ROUND(A1,3) =ROUND(A1,),"整",TEXT(RIGHT(TRUNC(A1*10),1),"[DBNum2]G/通用格式")&"角"&IF (ROUND(A1,3)=ROUND(A1,1),"整",TEXT(RIGHT(ROUND((A1*100),),1),"[DBNum2]G/通用格式")&"分")) 公式法三: =CONCA TENATE(TEXT(INT(A1),"[DBNum2][$-804]G/通用格式")&"元"&IF((INT(A1*10) -INT(A1)*10)=0,"",TEXT(IF(AND(CEILING(A1*100,1)-INT(A1*10)*10=10,INT(A1*1000)-IN T(A1*100)*10>=5),INT(A1*10)-INT(A1)*10 1,INT(A1*10)-INT(A1)*10),"[DBNum2][$-804]G/通用格式")&"角")&IF(OR(INT(A1*100)-INT(A1*10)*10=0,(IF(INT(A1*1000)-INT(A1*100)*10>=5,CEILING( A1* 100,1)-INT(A1*10)*10=10,FALSE))),"整",(IF(INT(A1*1000)-INT(A1*100)*10>=5,(IF(CEILING(A1 *100,1)-INT(A1*10)*10=10,"",(TEXT(CEILING(A1*100,1)-INT(A1*10)*10,"[DBNum2][$-804 ]G/通用格式")&"分"))),(TEXT(INT(A1*100)-INT(A1*10)*10,"[DBNum2][$-804]G/通用格式")&"分")))),"(¥",FIXED(A1,2,TRUE),"元)") 四、VBA代码法(自定义函数) Public Function BigNum(xiaoxie As Currency) Application.Volatile Dim fuhao As String fuhao = "" If xiaoxie < 0 Then

人民银行人民币大小写转换规定

人民银行的规定: 银行、单位和个人填写的各种票据和结算凭证是办理支付结算和现金收付的重要依据,直接关系到支付结算的准确、及时和安全。票据和结算凭证是银行、单位和个人凭以记载账务的会计凭证,是记载经济业务和明确经济责任的一种书面证明。因此,填写票据和结算凭证,必须做到标准化、规范化,要要素齐全、数字正确、字迹清晰、不错漏、不潦草,防止涂改。 一、中文大写金额数字应用正楷或行书填写,如壹(壹)、贰(贰)、叁、肆(肆)、伍(伍)、陆(陆)、柒、捌、玖、拾、佰、仟、万(万)、亿、元、角、分、零、整(正)等字样。不得用一、二(两)、三、四、五、六、七、八、九、十、念、毛、另(或0)填写,不得自造简化字。 如果金额数字书写中使用繁体字,如貳、陸、億、萬、圓的,也应受理。 二、中文大写金额数字到“元”为止的,在“元”之后,应写“整”(或“正”)字,在“角”之后可以不写“整”(或“正”)字。大写金额数字有“分”的,“分”后面不写“整”(或“正”)字。 三、中文大写金额数字前应标明“人民币”字样,大写金额数字应紧接“人民币”字样填写,不得留有空白。大写金额数字前未印“人民币”字样的,应加填“人民币”三字。在票据和结算凭证大写金额栏内不得预印固定的“仟、佰、拾、万、仟、伯、拾、元、角、分”字样。 四、阿拉伯小写金额数字中有“0”时,中文大写应按照汉语语言规律、金额数字构成和防止涂改的要求进行书写。举例如下: (一)阿拉伯数字中间有“0”时,中文大写金额要写“零”字。如¥1,409.50,应写成人民币壹仟肆佰零玖元伍角。 (二)阿拉伯数字中间连续有几个“0”时,中文大写金额中间可以只写一个“零”字。如¥6,007.14,应写成人民币陆仟零柒元壹角肆分。 (三)阿拉伯金额数字万位或元位是“0”,或者数字中间连续有几个“0”,万位、元位也是“0’,但千位、角位不是“0”时,中文大写金额中可以只写一个零字,也可以不写“零”字。 如¥1,680.32,应写成人民币壹仟陆佰捌拾元零叁角贰分,或者写成人民币壹仟陆佰捌拾元叁角贰分; 又如¥107,000.53,应写成人民币壹拾万柒仟元零伍角叁分,或者写成人民币壹拾万零柒仟元伍角叁分。 (四)阿拉伯金额数字角位是“0”,而分位不是“0”时,中文大写金额“元”后面应写“零”字。如¥16,409.02,应写成人民币壹万陆仟肆佰零玖元零贰分;又如¥325.04,应写成人民币叁佰贰拾伍元零肆分。 五、阿拉伯小写金额数字前面,均应填写入民币符号“¥”(或草写:)。阿拉伯小写金额数字要认真填写,不得连写分辨不清。 六、票据的出票日期必须使用中文大写。为防止变造票据的出禀日期,在填写月、日时,月为壹、贰和壹拾的,日为壹至玖和壹拾、贰拾和叁抬的,应在其前加“零”;日为抬壹至拾玖的,应在其前加“壹”。如1月15日,应写成零壹月壹拾伍日。再如10月20日,应写成零壹拾月零贰拾日。 七、票据出票日期使用小写填写的,银行不予受理。大写日期未按要求规范填写的,银行可予受理,但由此造成损失的,由出票入自行承担。

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金额转大写的公式用法

转换大写金额

package base.util; import java.text.NumberFormat; import java.util.HashMap; /** * 转换大写金额 * */ @SuppressWarnings("unchecked") public class SimpleMoneyFormat { private static final String EMPTY = ""; private static final String ZERO = "零"; private static final String ONE = "壹"; private static final String TWO = "贰"; private static final String THREE = "叁"; private static final String FOUR = "肆"; private static final String FIVE = "伍"; private static final String SIX = "陆"; private static final String SEVEN = "柒"; private static final String EIGHT = "捌"; private static final String NINE = "玖"; private static final String TEN = "拾"; private static final String HUNDRED = "佰"; private static final String THOUSAND = "仟"; private static final String TEN_THOUSAND = "万"; private static final String HUNDRED_MILLION = "亿"; private static final String YUAN = "元"; private static final String JIAO = "角"; private static final String FEN = "分"; private static final String DOT = "."; private static SimpleMoneyFormat formatter = null; private HashMap chineseNumberMap = new HashMap(); private HashMap chineseMoneyPattern = new HashMap(); private NumberFormat numberFormat = NumberFormat.getInstance(); private SimpleMoneyFormat() { numberFormat.setMaximumFractionDigits(4); numberFormat.setMinimumFractionDigits(2); numberFormat.setGroupingUsed(false); chineseNumberMap.put("0", ZERO);

金额大写转换

金额大写转化 Js代码: /* 人民币大写金额规则 (一) 阿拉伯数字中间有“0”时,中文大写金额中间可以只写一个“零”字。 如¥1,409.50,应写成人民币壹仟肆佰零玖元伍角。 (二) 阿拉伯数字中间连续有几个“0”,中文大写金额中间可以只写一个“零”字, 如¥6,007.14,应写成人民币陆仟零柒元壹角肆分。 (三) 阿拉伯金额数字万位或元位是“0”,或者数字中间连续有几个“0”, 万位、元位也是“0”,但仟位、角位不是“0”时,中文大写金额中可以只写一个零字,也可以不写“零”字,如¥1,680.32,应写成人民币壹仟陆佰捌拾元零三角贰分,或者写成人民币壹仟陆佰捌拾元三角贰分; 又如¥107,000.53,应写成人民币壹拾万柒仟元零伍角叁分,或者写成人民币壹拾万柒仟元伍角叁分。 (四) 阿拉伯金额数字角位是“0”,而分位不是“0”时,中文大写金额“元”后面应写“零”字。 如¥16,409.02,应写成人民币壹万陆仟肆佰零玖元零贰分; 又如¥325.04,应写成人民币叁佰贰拾元零肆分。 根据《中华人民共和国票据法》的相关规定: 填写票据和结算凭证,必须做到标准化、规范化, 要素齐全、数字正确、字迹清晰、不错漏、不潦草,防止涂改。 1、中文大写金额数字如零、壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿等, 应用正楷或行书填写,不得自造简化字。如果金额数字书写中使用繁体字,也应受理(针对银行方)。 2、中文大写金额数字到“元”为止的,在“元”之后,应写“整”(或“正”)字, 在“角”之后可以不写“整”(或“正”)字。大写金额数字有“分”的,“分”后面不写“整”(或“正”)字。 3、中文大写在写一般票据和银行支票是不一样的。 一般票据的写法上面的上一部分已经写得很清楚了, 银行支票得写法就得把零全写上,不管0在什么位置,要写成零元零角零分。 */ // 预定义汉字与对应单位 var zwsz = new Array("", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); var xsdw = new Array("分", "角"); //小数部分单位 var zsdw = new Array("元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万"); //整数部分单位 var ling = 0;// 数字中连续的0出现的次数

相关主题
相关文档 最新文档