大写数字1到10(大写数字1到10的正确写法)

数字自动生成单据样式的金额大写 函数NUMBERSTRING()

现在工作是导购,所以很少碰电脑,好久没学习了,这两天别人叫帮忙做下工资表,他的模板里是像单据里的大写金额一样的,下图

数字自动生成单据样式的金额大写 函数NUMBERSTRING()

这种算一个还要一个一个地把大写金额打上去,感觉很麻烦,原本是有个隐藏函数NUMBERSTRING()可以直接把大写变成小写,可达不到这种像单据式的效果。如果只算一个还好,一但要一下弄许多个,就想偷懒了。到处搜了一下,拼凑了段公式,还是解决了。

先看下代码

="本页共计(大写):( "&IFERROR(NUMBERSTRING(LEFT(RIGHT(" "&$P12*1000,8)),2),"零")&" )萬( "&IFERROR(NUMBERSTRING(LEFT(RIGHT(" "&$P12*1000,7)),2),"零")&" )仟( "&IFERROR(NUMBERSTRING(LEFT(RIGHT(" "&$P12*1000,6)),2),"零")&" ) 佰( "&IFERROR(NUMBERSTRING(LEFT(RIGHT(" "&$P12*1000,5)),2),"零")&" )拾( "&IFERROR(NUMBERSTRING(LEFT(RIGHT(" "&$P12*1000,4)),2),"零")&" )元( "&IFERROR(NUMBERSTRING(LEFT(RIGHT(" "&$P12*1000,3)),2),"零")&" )角( "&IFERROR(NUMBERSTRING(LEFT(RIGHT(" "&$P12*1000,2)),2),"零")&" )分"

这里面主要的公式其实就是

=IFERROR(NUMBERSTRING(LEFT(RIGHT(" "&$P12*1000,8)),2),"零")

下面来一步一步地解析这个公式,这个公式的原本的想法,就是要让括号里面能自动根据已有的小写数字显示大写金额,为了美观,还要把原来要显示的大写金额分成个、十、百、千、万等的位数。

所以最开始的公式只是一个简单的字符链接公式,像下面

="本页共计(大写):( "&公式&" )萬( "&公式&" )仟( "&公式&" ) 佰( "&公式&" )拾( "&公式&" )元( "&公式&" )角( "&公式&" )分"

这里面的公式就是我们需要解决的各位的大写。

  • 先看看这个萬位,例子中是零,为了不出现因为数字的金额没有这么多显示错误值,首先用一个判断错误值的函数来排除,为了和上面区分,下面公式都加了标如下:
=IFERROR(公式-1,"零")

注:IFERROR()函数很好理解,就是判断第一个参数是不是错误值,是就写第二个参数,不是就显示参数1。

因为本例中数字没有萬位,所以需要的判断一下,所取用的这个数字有没有这个位,如果有就计算这个公式,如果没有,就直接写零,所以在萬位的括号里是直接用的这个函数的第二个结果。

  • 再看仟位,在仟位已经有数字了,直接用到了公式-1,看一下这个公式的结构:
=NUMBERSTRING(LEFT(RIGHT(" "&$P12*1000,7)),2)

这个公式是由开头说的隐藏函数NUMBERSTRING()为基础,因为我们主要是想得到大写数字,所以这个公式最开始的想法是:

=NUMBERSTRING(公式-1.1,2)

注:NUMBERSTRING()函数就是数字到文本的意思,它有两个参数,第一个就是你想要转换的数字 ,第二个是选项1,2,3。1代表普通的大写,2代表财务专用的大写,3代表一一对应的大写,我们这里用到的是2这个选项,就是财务的金额大写。

  • 那怎么从公式-1.1里得到我们想要的数字就是中心了,看下完整的例子:
数字自动生成单据样式的金额大写 函数NUMBERSTRING()

例子中的数字是8800,仟位是8,现在主要目的就是从这个数字中提取8,其实这样就简单了

看一下找到的公式:

=LEFT(RIGHT(" "&$P12*1000,7))

简单看成LEFT(公式-1.1.1)

即从公式-1.1.1中提取第一个字符串,这里是省略了LEFT的第二个参数的,不写的时候直接默认为提取第一个字符串了。

注:这里用到了截取字符串的函数,一个是从左边,一个是从右边,以前有讲过。

公式-1.1.1中$P12是我们数字的单元格,那公式

=RIGHT(" "&$P12*1000,7)

其实就是把数字8800*1000,前面加个空格得到的就是“ 8800000”这个字符串,需要得到第一个8,要从右向前提取7位就是字符串“8800000”。

注:乘以1000是为了后面的小数位。

最后用LEFT从左提取第一个字符串就是仟位的8。

其它位就是改变一下RIGHT()函数提取的位数就行,比如佰位就只需要从右提取6位即“800000”。

注:为什么要用到" "空字符串,其实我也试着不用看了下,结果是最高的萬位就会显示仟位的8,想了一下,在最高位没有的情况下,那最多只能提取到仟位,当然只能显示8了,所以这个是必须加的。

不知道公式有没有复制掉了,有需要的朋友看了如果用不了,可以给私我。

本例中的红字全是用公式写的,为了偷懒月份从下面工作表提取,年份从工作簿的名字中提取的,看图:

数字自动生成单据样式的金额大写 函数NUMBERSTRING()

方法以前都讲过,大家也可以搬到自己的表里用,一般都只改单元格地址就好了。

今天就学到这里了,有机会再继续。

本文来自余生难投稿,不代表胡巴网立场,如若转载,请注明出处:https://www.hu85.com/249962.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxxxx@qq.com 举报,一经查实,本站将立刻删除。