欢迎光临
个人知识库,ERP、IT知识分享和应用

Excel中“隐藏”着这个人民币大写函数?

财务工作者朋友们经常需要将数字金额转换为人民币大写,使用WPS的用户只需要设置一下单元格格式就ok了

然而Excel用户却没那么幸运,这种方式设置的中文大写数字是不符合人民币大写规范的。

人民币金额用到的中文大写汉字如下: 零、壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿。

人民币大写规范详细介绍

银行、单位和个人填写的各种票据和结算凭证是办理支付结算和现金收付的重要依据,直接关系到支付结算的准确、及时和安全。票据和结算凭证是银行、单位和个人凭以记载账务的会计凭证,是记载经济业务和明确经济责任的一种书面证明。因此,填写票据和结算凭证必须做到标准化、规范化、要素齐全、数字正确、字迹清晰、不错漏、不潦草、防止涂改。中文大写金额数字应用正楷或行书填写,如壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿、元、角、分、零、整(正)等字样,不得用一、二(两)、三、四、五、六、七、八、九、十、毛、另(或0)填写,不得自造简化字。如果金额数字书写中使用繁体字,如贰、陆、亿、万、圆的,也应受理。

人民币大写的正确写法还应注意以下几项:

一、中文大写金额数字到“元”为止的,在“元”之后、应写“整”(或“正”)字;在“角”之后,可以不写“整”(或“正”)字;大写金额数字有“分”的,“分”后面不写“整”(或“正”)字。 二、中文大写金额数字前应标明“人民币”字样,大写金额数字应紧接“人民币”字样填写,不得留有空白。大写金额数字前未印“人民币”字样的,应加填“人民币”三字,在票据和结算凭证大写金额栏内不得预印固定的“仟、佰、拾、万、仟、佰、拾、元、角、分”字样。 三、阿拉伯数字小写金额数字中有“0”时,中文大写应按照汉语语言规律、金额数字构成和防止涂改的要求进行书写。举例如下:1、阿拉伯数字中间有“0”时,中文大写要写“零”字,如¥1409.50应写成人民币壹仟肆佰零玖元伍角;2、阿拉伯数字中间连续有几个“0”时、中文大写金额中间可以只写一个“零”字,如¥6007.14应写成人民币陆仟零柒元壹角肆分。3、阿拉伯金额数字万位和元位是“0”,或者数字中间连续有几个“0”,万位、元位也是“0”但千位、角位不是“0”时,中文大写金额中可以只写一个零字,也可以不写“零”字,如¥1680.32应写成人民币壹仟陆佰捌拾元零叁角贰分,或者写成人民币壹仟陆佰捌拾元叁角贰分。又如¥107000.53应写成人民币壹拾万柒仟元零伍角叁分,或者写成人民币壹拾万零柒仟元伍角叁分。4、阿拉伯金额数字角位是“0”而分位不是“0”时,中文大写金额“元”后面应写“零”字,如¥16409.02应写成人民币壹万陆仟肆佰零玖元零贰分,又如¥325.04应写成人民币叁佰贰拾伍元零肆分。四、阿拉伯小写金额数字前面均应填写人民币符号“¥”,阿拉伯小写金额数字要认真填写,不得连写分辨不清。 五、票据的出票日期必须使用中文大写,为防止变造票据的出票日期,在填写月、日时、月为壹、贰和壹拾的,日为壹至玖和壹拾、贰拾和叁拾的,应在其前加“零”,日为拾壹至拾玖的应在其前加“壹”,如1月15日应写成零壹月壹拾伍日,再如10月20日应写成零壹拾月零贰拾日。 六、票据出票日期使用小写填写的,银行不予受理;大写日期未按要求规范填写的,银行可予受理,但由此造成损失的由出票人自行承担。

来源: 人民币大写在线转换工具https://tool.gaodun.com/rmb.html

不过最近表哥发现Excel中居然还隐藏着一个数字转换为大写的函数。下面大家一起来看下。

01NUMBERSTRING函数

NUMBERSTRING函数,它的作用是将数字按照指定的类型转换为大写。这个函数有两个参数:第一个参数是要转换的数值第二个参数是指定返回的类型类型共三种,其中:1为汉字小写,2为汉字大写,3为汉字读数。

说明:

NumberString函数为系统隐藏函数,在系统中是无法查询到相关说明,大家只需要掌握其语法结构和代码1、2、3代表的意义即可。从转换的结果可以得出,Numberstirng函数在转换为指定的类型时是按照“四舍五入”的方式进行的。美中不足的是Numberstring函数仅支持正整数大写!

02USERRMB函数

其实,除了NumberString函数外,我们还可以使用USERRMB函数来实现符合规范的人民币大写功能!

这个函数的使用也是非常简单,只有一个输入参数。不过,这个函数并非是Excel隐藏的函数,而是表哥自定义的!

需要说明的是虽然创建这个函数的过程比较麻烦,但是一旦建立好了后,USERRMB函数就可以在任意工作簿、工作表中使用。可谓是一劳永逸!

03自定义函数创建过程

首先声明:此函数的核心代码并非Excel表哥首创,而是来源于ExcelHome论坛。

自定义此函数之前,需要先温习下表哥之前的这篇关于字符串提取的USEREXTRACT函数的制作教程:

Excel中这个USEREXTRACT数据提取函数怎么这么好用?mp.weixin.qq.com

打开我们上次自定义的UserDefinedFunctions.xlam加载宏文件(如果没有此文件,可按照下面的链接新建或者下载一个均可)。

Excel中这个USEREXTRACT数据提取函数怎么这么好用?

在已建立的模块中输入如下代码并保存:

Function USERRMB(Rng As Range) DX = IIf(Abs(Rng) < 0.005, “”, Replace(Replace(Replace(Join(Application.Text(Split(Format(Rng, ” 0. 00″)), Split(“@ [DBNum2];;0 [>9][dbnum2]元0角0分;[=0]元整;[dbnum2]元零0分”)), “”), “零分”, “整”), “0元零”, “”), “0元”, “”)) If Rng > 0.004 Then USERRMB = DX ‘正数显示 ElseIf Abs(Rng) < 0.005 Then USERRMB = “零元整” ‘0显示 Else USERRMB = “负” & Replace(DX, “-“, “”) ‘负数显示 End If End Function

▲左右滑动查看完整代码

至此,我们的USERRMB()函数自定义完成。

至于如何在任意工作簿或者工作表中使用此函数,那就更加简单了。只需要像正常输入其他函数一样输入即可。

同样的,我们也可以通过下述代码为此自定义函数添加公式说明:

Sub UserDefinedFuncClaim() Application.MacroOptions Macro:=”USERRMB”, Description:=”说明:自定义函数-用于将数字转换为人民币大写。”, Category:=14, _ ArgumentDescriptions:=Array(“待转换为人民币大写的单元格”) End Sub

将上面的Sub过程放在加载宏工作簿的Workbook_Open()事件中即可:

总结一下,继我们上次分享的字符串提取函数USEREXRTRACT函数后,我们这次又为自己的自定义函数库增加了一个新的人民币大写函数USERRMB()。

大家可以仔细保存好这个UserDefinedFunctions.xlam 加载宏文件,不断更新壮大自己的自定义函数库,用以解决Excel自带的公式函数无法满足的需求。

假以时日,一定能够让自己的工作效率6的飞起!

还是那句话,代码三五行,工作不用忙断肠!

需要此模板/工具的读者朋友可以关注Excel表哥百家号,回复【下载】获取下载链接

自定义函数推荐

比Ctrl+E 更强大,Excel字符串拆分神器Text函数来了!

未经允许不得转载:Blog.XiaoMing.Xyz » Excel中“隐藏”着这个人民币大写函数?
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址