我们经常在进行数据处理的时候,经常会遇到阿拉伯数字与中文数字之间的转换,尤其遇到“钱”的问题时。而EXCEL提供的设置单元格格式,根本满足不了这种需求。 今天韩老师跟大家讲利用NUMBERSTRING和TEXT函数实现数字在阿拉伯与中文格式之间的转变。 阿拉伯数字转中文数字常用的两种函数是NUMBERSTRING和TEXT。 NUMBERSTRING函数,顾名思义,是数字到文本的转换。 该函数,在EXCEL里是隐藏的,输入的时候,需要我们全部输入函数名,而且,参数也不会提示。 那韩老师就把该函数的用法与参数解释一下: NUMBERSTRING函数的参数有两个所以,语法我们可以简单的写成: NUMBERSTRING(要转换成中文字符串的数值,格式参数) 其中:
以“123456789”为例,不同的格式参数,转换成为的中文数字格式不同,结果如下图: NUMBERSTRING函数的局限是:仅能计算整数。 TEXT函数用来数字转中文大写时的语法: 其中:
以“123456789”为例,不同的格式参数,转换成为的中文数字格式不同,结果如下图: 不同形式的中文数字转换成阿拉伯数字的公式不同,如下图: 韩老师以第一个公式: “{=MAX((TEXT(ROW($1:$99999),"[dbnum1]")=A2)*ROW($1:$99999))}”为例,来讲述实现方法。 本公式: 第一步计算ROW($1:$99999),此步的结果是返回1~99999之间的整数;因为本示例要转换的数字有五位,所以,用1~99999,如果有三位,可以用1~999,有六位,需要用1~999999; 第二步计算TEXT(ROW($1:$99999),"[dbnum1]"),将1~99999之间的整数转换为“一万二千三百四十五”格式的中文数字; 第三步计算TEXT(ROW($1:$99999),"[dbnum1]")=A2,将1~99999之间格式为“一万二千三百四十五”的中文数字与A2单元格的中文数字比较,如果相等,返回TRUE,如果不相等,返回FALSE。所以,此步返回的是由一个TRUE和99998个FALSE组成的数组; 第四部计算(TEXT(ROW($1:$99999),"[dbnum1]")=A2)*ROW($1:$99999),由一个TRUE和99998个FALSE组成的数组,分别与对应的1~99999相乘,TRUE相当于1,FALSE相当于0,所以,此步的结果是返回1个阿拉伯数字与99998个0组成的数组,而该阿拉伯数字,就是与A2单元格相对应的数字; 最后一步计算{=MAX((TEXT(ROW($1:$99999),"[dbnum1]")=A2)*ROW($1:$99999))},在1个阿拉伯数字与99998个0组成的数组中取最大值,也就是与A2单元格相对应的数字; 因为是数组计算,所以,以<Ctrl+Shift+Enter>结束公式输入。 又因为数组中的数据有99999个,所以公式运行稍有点慢。 |
|
来自: bitterfleabane > 《EXCEL》