首页 > EXCEL > Excel汉字转阿拉伯数字("一"转"1")

Excel汉字转阿拉伯数字("一"转"1")

2010年6月18日 Surda 发表评论 阅读评论

上午有群友问在Excel中将“五”转换成“5 “?看到这个问题我第一反映居然想到用choose()函数,细想不对。choose()处理数值转文本比较合乎,这属逆转。

过不多久有群友给出了个组合函数:

=match(B12,text(row(1:20),"[dbnum1]"),0)

此为一数组函数输入公式后按SHIFT+CTRL+ENTET,OK,单个转换成功。但公式填充出错,没有细究。问题应该是出在row(1:20)公式向下填充,数组发生了变化。

于是surda想通过数组参数来实现,经测试成功。效果如下:

  A B
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 #N/A
11 一十 10
12 一十一 11
13 一十二 12

公式:B1=MATCH(A1,TEXT({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20},"[dbnum1]"),0)

输入完公式按SHIFT+CTRL+ENTER。

公式分析:利用match()函数返回A1在数组参数text({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20},"[dbnum1]")中的位置。这里为什么要用到TEXT()输出,因为必须用到!如果不用text()输出,那可以把数组参数写成{一;二;三;四;五;六;七;八;九;......}。

使用函数公式其实不是非常方便,例用宏还是比较简易的。方法在此就不细说,网上很多教程。~_^

看到这,可能还有童鞋对text({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20},"[dbnum1]")不是特别理解。那就简单介绍下吧:follow me!

相信函数text(value,format_text)根据指定的数值格式(format_text)将数字转成文本。这个用法都会,可针对format_text参数可能了解不多。接下举例说明一下三个与数字转换相关的format_text参数,先看下表:

  A B C D E F
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 #N/A #N/A #N/A #N/A #N/A
11 一十 10 一十 壹拾 1十 10
12 一十一 11 一十一 壹拾壹 1十1 11
13 一十二 12 一十二 壹拾贰 1十2 12

数字1-12通过text()带不同format_text参数,输出的格式完全不一样。B列是正常的汉字数值、C列是大写的数值(常用于书写人民币格式)、E列(F列)输入全角阿拉伯数值。各公式SHOW:

C1=TEXT(B1,"[dbnum1]")

D1=TEXT(B1,"[dbnum2]")

E1=TEXT(B1,"[dbnum3]")

F1=TEXT(B1,"[dbnum3]0")

可以看到关键是在"[dbnum1]"、"[dbnum2]"、"[dbnum3]"、"[dbnum]0",为了直观表达,举个实例。

  G H I
7 数据源 结果 公式
8 19850210 壹仟玖佰捌拾伍万零贰佰壹拾 =TEXT(G8,"[dbnum2]")
9 19850210 壹玖捌伍零贰壹零 =TEXT(G9,"[dbnum2]0")
10 19850210 一千九百八十五万○二百一十 =TEXT(G10,"[dbnum1]")
11 19850210 一九八五○二一○ =TEXT(G11,"[dbnum1]0")
12 19850210 1千9百8十5万02百1十 =TEXT(G12,"[dbnum3]")
13 19850210 19850210 =TEXT(G13,"[dbnum3]0")

Ps:有意思的是Excel不认“十”,“10”要表达成“一十”,看来MS还需要更了解中文。~_^.测试平台MS EXCEL2010.

ShareOn:
  •