分享

原来,Excel中'隐藏'着这个人民币大写函数!

 hl1bwcdm 2021-09-27
财务工作者朋友们经常需要将数字金额转换为人民币大写,使用WPS的用户只需要设置一下单元格格式就ok了。
然而Excel用户却没那么幸运,这种方式设置的中文大写数字是不符合人民币大写规范的。

¥人民币大写规范(↕ 上下滑动翻页)


人民币金额用到的中文大写汉字如下:

零、壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿。

人民币常识

人民币(缩写为RMB)是我国大陆地区的法定货币,尽管每个人几乎天天都要接触到人民币或者支票,但是人民币大写如何写是困扰很多人的问题。尽管生活中看起来极其熟悉而又简单的东西,但发现其实并不会写。人民币在ISO 4217简称为CNY(China Yuan),常用简写为RMB(Ren Min Bi);人民币货币的符号是“ ¥”('Y'+'='),读音为“YUAN”。人民币按照材料的自然属性划分,有金属币(亦称硬币)、 纸币(亦称钞票)。无论纸币、硬币均等价流通,至今已发行了五套人民币。


人民币大写规范详细介绍

银行、单位和个人填写的各种票据和结算凭证是办理支付结算和现金收付的重要依据,直接关系到支付结算的准确、及时和安全。票据和结算凭证是银行、单位和个人凭以记载账务的会计凭证,是记载经济业务和明确经济责任的一种书面证明。因此,填写票据和结算凭证必须做到标准化、规范化、要素齐全、数字正确、字迹清晰、不错漏、不潦草、防止涂改。中文大写金额数字应用正楷或行书填写,如壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿、元、角、分、零、整(正)等字样,不得用一、二(两)、三、四、五、六、七、八、九、十、毛、另(或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中居然还隐藏着一个数字转换为大写的函数。
下面大家一起来看下。

01

NUMBERSTRING函数

NUMBERSTRING函数,它的作用是将数字按照指定的类型转换为大写。

这个函数有两个参数:

第一个参数是要转换的数值

第二个参数是指定返回的类型

类型共三种,其中:1为汉字小写,2为汉字大写,3为汉字读数。

图片

说明:

1.NumberString函数为系统隐藏函数,在系统中是无法查询到相关说明,大家只需要掌握其语法结构和代码1、2、3代表的意义即可。

2.从转换的结果可以得出,Numberstirng函数在转换为指定的类型时是按照“四舍五入”的方式进行的。

3.美中不足的是Numberstring函数仅支持整数大写


02

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

图片

这个函数的使用也是非常简单,只有一个输入参数。
不过,这个函数并非是Excel隐藏的函数,而是表哥自定义的!
需要说明的是虽然创建这个函数的过程比较麻烦,但是一旦建立好了后,USERRMB函数就可以在任意工作簿、工作表中使用。
可谓是一劳永逸!

03

自定义函数创建过程
首先声明:此函数的核心代码并非Excel表哥首创,而是来源于ExcelHome论坛。
自定义此函数之前,需要先温习下表哥之前的这篇关于字符串提取的USEREXTRACT函数的制作教程:
图片

▲点击图片打开链接


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

图片

在已建立的模块中输入如下代码并保存:
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 IfEnd Function

▲左右滑动查看完整代码

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

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

同样的,我们也可以通过下述代码为此自定义函数添加公式说明:
Sub UserDefinedFuncClaim()Application.MacroOptions Macro:='USERRMB', Description:='说明:自定义函数-用于将数字转换为人民币大写。', Category:=14, _                         ArgumentDescriptions:=Array('待转换为人民币大写的单元格')End Sub
▲左右滑动查看完整代码
将上面的Sub过程放在加载宏工作簿的Workbook_Open()事件中即可:

图片

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

大家可以仔细保存好这个UserDefinedFunctions.xlam 加载宏文件,不断更新壮大自己的自定义函数库,用以解决Excel自带的公式函数无法满足的需求。
假以时日,一定能够让自己的工作效率6的飞起!

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


图片

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多