在不同的语言环境中格式化数字(使用句点而不是逗号作为小数分隔符)

在不同的语言环境中格式化数字(使用句点而不是逗号作为小数分隔符)

我在德语版 Windows 8.1 上使用 Excel 2013。当我将数字格式化为数字,在单元格或图表中,它以逗号作为小数符号显示(如“3,1415”)。我想用句点显示数字,就像在英语(美国)区域设置中一样。

我尝试了具有明确语言环境的数字格式,例如

[$-409]0.0;@

但那没用。不过它对日期有效([$-409]MMM JJ;@)。

如何用句点格式化数字?我正在寻找最不具侵入性的解决方案,因此更改系统区域设置不是一种选择。根据工作簿或工作表更改语言是可以的,但我更喜欢对单个单元格或图表元素起作用的方法。我不想更改数据,因此函数substitute等将不起作用。

答案1

解决方法是:在高级设置中,您可以选择是否使用系统分隔符,并定义您自己的分隔符。

答案2

我有同样的问题:数字格式为“-34,754.27”,我想将其转换为英语语言环境中的数字,即“-34754,27”或“-34.754,27”

我正在使用构建它的NUMBERVALUE函数:

=NUMBERVALUE(文本,DECIMAL_SEPARATOR,GROUP_SEPARATOR)

这将根据您提供的分隔符来解释文本,并返回当前语言环境中的数字。

或者,您可以采用蛮力方式,自己搜索并替换这些分隔符 - 这种方法的问题在于,除了不优雅之外,您最终会得到需要进一步转换为数字的文本,然后您将回到 NUMBERVALUE,因此最好单独使用它:

(本例中的测试是 [@Suma] )

=REPLACE(IFERROR(REPLACE([@Suma],FIND("。",[@Suma],1),1,""),[@Suma]),FIND(",,IFERROR(REPLACE([@Suma],FIND("。",[@Suma],1),1,""),[@Suma]),1),1,"。")

答案3

如果您有一个显示单元格π作为:

3,1415

选择该单元格并运行这个小宏:

Sub Reformat()
    Dim st As String
    st = ActiveCell.Text
    st = Chr(34) & Replace(st, ",", ".") & Chr(34)
    ActiveCell.NumberFormat = st & ";;;"
End Sub

显示内容将变成:

3.1415

相关内容