乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 请教下表格中怎么把带小数点的数字,转换成大写-excel大写小数点,excel自动大写金额小数点

请教下表格中怎么把带小数点的数字,转换成大写-excel大写小数点,excel自动大写金额小数点

作者:乔山办公网日期:

返回目录:excel表格制作


比如说在表格中输入12.326然后转换成中文大写"壹拾贰点叁贰陆.回答列表在同一单元格中,再次输入不同的数字,中文大写也跟着变化。
特别说明,此单元格的数字不是金额,只是普通带小数点的数字,小数点后有一至四位小数.
晕,没见过。
问题:在Excel表格中,怎样将带小数点的小写数字转换成中文大写?
比如说在表格中输入12.326然后转换成中文大写"壹拾贰点叁贰陆.
在同一单元格中,再次输入不同的数字,中文大写也跟着变

一、在输入的当前单元格直接转换,没有现成的格式函数。但通过VBA代码还是能够实现的。(VBA代码我在后面讲)
如果想简单一点的话,通过相玲单元格转换大写还是方便一点。
如果在 A1 输入小写,就在 B1 输入如下公式:
=IF(A1>0,SUBSTITUTE((TEXT(A1,"[DBnum2]")),".","点"),IF(A1<0,"负"&SUBSTITUTE((TEXT(ABS(A1),"[DBnum2]")),".","点"),""))
上面的公式中考虑了输入负数和零的问题,如不考虑负数和零,公式可以简化如下:
=IF(A1>0,SUBSTITUTE((TEXT(A1,"[DBnum2]")),".","点"),"")

二、如果你坚持要在输入数据的单元格中直接转换中文大写,只好用VBA程序代码了,只是比较烦。
代码如下:
Private Sub Worksheet_Change(ByVal aa As Range)
On Error GoTo error
If aa.Column = 1 Then
Select Case aa
Case Is > 0
aa = Replace(Application.Text(aa, "[DBnum2]"), ".", "点")
Case Is < 0
aa = "负" & Replace(Application.Text(Abs(aa), "[DBnum2]"), ".", "点")
Case Is = 0
aa = ""
End Select
End If
error: Exit Sub
End Sub

说明:
1。我说的代码实际上是用Execl自带的VBA编程语言编制的一个小程序。这个程序在你打开工作表的时候已在后台准备运行,当工作表中某个单元格内容发生变化时马上运行。在程序运行中程序会自动判别,还在第一列的单元格中输入的小写数字都转换成中文大写,在其他单元格中输入的数字不转换大写。程序是在后台运行的,在工作表窗口是看不见的,只能看见程序运行后的结果。在工作表的单元格中不能设置这些程序代码。程序代码只能在VBA编码窗口中编制。打开VBA编程窗口的方法有好几种,这里只说一种。在已打开的工作表中,右击您要转换中文大写的工作表标签,在弹出的菜单中选择查看代码,这时VBA编码窗口已打开。把上面的代码输入到代码窗口中。当然可以用复制的方法把代码复制过去,这样不容易错。最后关闭代码窗口,自动回到工作表窗口。这时你在A1中输入数字试试看,是否得到中文大写的效果。

2。在上面程序代码中, 已设置为在工作表的第一列任何单元格中输入小写的数字都会马上转换成大写。其它单元格中输入的数据不会转换。如想在其它列的单元格中转换数据,请修改第三行代码------Column = 1---- 中的数字。数字1代表第一列,数字2代表第二列,依次类推。

3。如果不考虑负数、零等情况的话,代码可以简化如下:
Private Sub Worksheet_Change(ByVal aa As Range)
If aa.Column = 1 Then
aa = Replace(Application.Text(aa, "[DBnum2]"), ".", "点")
End If

End Sub
采用简化代码的情况下,输入的数字必须 >0 ,如果输入 <=0 的数字会有意想不7a686964616fe58685e5aeb9332到结果。因为代码中没有处理0和<0数字的语句。请凉解。

五、上面的公式和程序代码只解决特定问题的,不要直接用于人民币大小写的转换。

请多提意见!
问题己解决
你用替换功能呀。这个适合大批量的转换。
没有这样的功能吧.
这很容易呀,在Excel中就有这样的转换。选择要转换的数据,或者先在单元格中进行设置,右键/设置单元格格式,选择数字选项卡,选择左边的分类为特殊,然后选择右边的类型为中文大写数字,确定即可。
如此设置小数点的"."不能转换成"点".
在maya123215的回答的基础上,再“查找-替换”嘛,把“.”换成“点”。
maya123215老师用的方法: 右键->设置单元格格式->数字->特殊->数字中文大写
是最简单及常用的方法
由于单元格的内容仍然是数字 12.326, 并非文本格式“壹拾贰点叁贰陆”, 故miaowu老师提议用“查找-替换”嘛,把“.”换成“点”是不可行的
故我提议用以下的公式:
假设A1是 12.326
在任何一格输入公式:
=SUBSTITUTE(TEXT($A$1,"[DBNum2][$-804]G/通用格式"),".","点")
便会出现 壹拾贰点叁贰陆
由于中文大写主要是作金额, 单位是 元/角/分
公式变成:
=TEXT(INT(A1),"[DBNum2][$-804]G/通用格式")&"元"&IF((INT(A1*10)-INT(A1)*10)=0,"",TEXT(INT(A1*10)-INT(A1)*10,"[DBNum2][$-804]G/通用格式")&"角")&IF(INT(A1*100)-INT(A1*10)*10=0,"",TEXT(INT(A1*100)-INT(A1*10)*10,"[DBNum2][$-804]G/通用格式")&"分")
便会出现 壹拾贰元叁角贰分
注意: 此公式会将小数后第三个位舍去, 如公式要求四舍五入进位, 公式内所有 A1 要改成ROUND(A1,2), 公式便要长很多
呵呵,很好用,但有一个问题,假如小数点后面出现零,就不正确了,如6968.05,就变成了:陆仟玖佰陆拾捌元伍分,但实际需要的是:陆仟玖佰陆拾捌元零伍分,如何实现。
再就是后面是零角零分的情况如何实现。
还有要在本单元格转换如何实现,也就是说转换后的大写金额显示在小写数字所在的单元格。
刚看到你的意见
公式显示是可以解决 “零角伍分” 或 “零伍分”的问题, 但公式较长

如果你的数据USD 5137.5 在A1则在空单元格输入:
=LEFT(A1,4)&TEXT(MID(A1,5,FIND(".",A1)-4),"[DBNum2]G/通用格式")&"点"&TEXT(RIGHT(A1,LEN(A1)-FIND(".",A1)),"[DBNum2]G/通用格式")
结果是:USD 伍仟壹佰叁拾柒点伍
如果不要USD,则输入:
=TEXT(MID(A1,5,FIND(".",A1)-4),"[DBNum2]G/通用格式")&"点"&TEXT(RIGHT(A1,LEN(A1)-FIND(".",A1)),"[DBNum2]G/通用格式")
还可以把USD通过分列方式,放在不同的单元格中A1是USD,B1是5137.5,则则在空单元格输入:
=TEXT(MID(A1,5,FIND(".",A1)),"[DBNum2]G/通用格式")&"点"&TEXT(RIGHT(A1,LEN(A1)-FIND(".",A1)),"[DBNum2]G/通用格式")
1选中要转换的数据

2选择菜单栏中 “格式” 菜单下的 “单元格” 或者直接右击鼠标 选择 “设置单元格格式”

3选择 ”设置单元格“ 子菜单上的 “特殊” 选项下有 中文大写数字 和 中文小写数字 两种选项

工具/材料:电脑、excel。

第一步,打开电脑,打开excel软件进入界面。

第二步,进入界面打开文件。

第三步,找到要设置的单元格鼠标右键选中设置单元格格式。

第四步,进入界面后点击特殊,点击中文大写数字点击确定。

第五步,完成上面操作后即可完成转换。

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网