如何在excel中将数字从欧洲格式转换为英国(分隔符逗号到点)?

时间:2017-08-06 07:43:17

标签: excel

我有包含欧洲格式数据的Excel文件。千位分隔符是一个点,但我想使用逗号。我可以使用= SUBSTITUTE函数轻松转换它。但是,当我这样做时,我会在数字的末尾丢失零。 例如 11.500(转换为)11,5(十一万五千变成十一点半)

转换后,我尝试更改自定义格式,但我没有运气。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

A)。使用Excel公式

您遇到的问题是由Excel执行的自动转换处理'。'作为DecimalSeparator。下面的公式使用'&'“'强制Excel将单元格中的值视为替换函数中的Text值。然后,Value函数将强制替换(在Text中)的结果为数字。然后,您可以相应地应用所需的NumberFormat。

=VALUE(SUBSTITUTE(<Cell Address>&"",".",""))

e.g。

=VALUE(SUBSTITUTE(A1&"",".",""))

B)使用VBA代码

您可以使用以下命令强制系统恢复为'dot'作为小数点分隔符,并将','作为千位分隔符。

Sub OverrideSystemSeparators()
    Application.DecimalSeparator = "."
    Application.ThousandsSeparator = ","
    Application.UseSystemSeparators = False
End Sub

上面的代码假设使用具有默认Decimalseparator(',')和Thousandseparator('。')的Europe系统打开excel文件。

但是,如果您使用英国/美国系统打开它并且数据仍为欧洲格式,请确认数据是数字格式还是文本格式。

如果是文本格式,请使用以下代码 - 您需要根据要转换的数据范围替换最后2个语句。简而言之,它取代了'。'没有任何东西然后,应用NumberFormat添加','作为千分隔符。

Sub OverrideSystemSeparators()
    Application.UseSystemSeparators = True
    ActiveCell.Value = Replace(ActiveCell.Value, ".", "")
    ActiveCell.NumberFormat = "#,##0.00"
End Sub