如何在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