如何在Excel中将欧洲格式的数字转换为英式(逗号分隔为点)?
我有Excel文件包含欧洲格式的数据。 千分号是一个点,但我想用逗号。 我可以很容易地使用= SUBSTITUTE函数来转换它。 但是,当我这样做的时候,我在数字的末尾丢了零。 比如11.500(转换成)11.5(十一万五百变成十一半)
转换后,我试图改变自定义格式,但我没有运气。
有任何想法吗?
一个)。 使用Excel公式
你遇到的问题是由Excel自动转换来处理'。' 作为DecimalSeparator。 下面的公式使用“&”“'强制Excel将单元格中的值作为”文本“值处理,而不是”replace“function。 值函数然后将强制replace的结果(在文本中)到一个数字。 然后,您可以相应地应用您所需的NumberFormat。
=VALUE(SUBSTITUTE(<Cell Address>&"",".",""))
例如
=VALUE(SUBSTITUTE(A1&"",".",""))
B)使用VBA代码
您可以使用下面的方法来强制系统恢复为小数点分隔符“dot”和千位分隔符“,”。
Sub OverrideSystemSeparators() Application.DecimalSeparator = "." Application.ThousandsSeparator = "," Application.UseSystemSeparators = False End Sub
上面的代码假定excel文件使用默认的Decimalseparator(',')和Thousandseparator('。')使用欧洲系统打开。
但是,如果您使用英国/美国系统打开它,并且数据仍然是欧洲格式,请validation数据是数字格式还是文本格式。
如果是文本格式,请使用下面的代码 – 您将需要根据您想要转换的数据范围来replace最后2条语句。 简而言之,它取代了'。' 什么也没有,然后,应用NumberFormat添加“,”作为千位分隔符。
Sub OverrideSystemSeparators() Application.UseSystemSeparators = True ActiveCell.Value = Replace(ActiveCell.Value, ".", "") ActiveCell.NumberFormat = "#,##0.00" End Sub