如果逗号后面只有零,如何让逗号消失?

Posted

技术标签:

【中文标题】如果逗号后面只有零,如何让逗号消失?【英文标题】:How to make comma disappear if there would be only zeros after it? 【发布时间】:2016-05-18 14:19:15 【问题描述】:

我希望数字按以下方式显示:

1250000 -> 1,25M
2000000 -> 2M
300000  -> 300k

所以,如果数字小于 100 万,则显示 (number/1000)k; 如果超过一百万则显示 (number/1000000)M。

目前为止

[>=1000000]0,00  "M";[<1000000]0 "k"

问题在于它显示,例如,1000000 为 1,00M。

我可以换成

[>=1000000]0,##  "M";[<1000000]0 "k"

但将 1000000 显示为 1,M。

有谁知道如何让逗号在 100 万的倍数时消失?

【问题讨论】:

请说明您使用的编程语言和库。 我认为excel标签就足够了。 嗯。我没看到。没关系。 【参考方案1】:

我认为您的格式代码中缺少一些逗号(我正在处理美国本地化)。对于单元格上的数字格式,请使用 [&gt;=1000000]#.##,, "M";[&lt;1000000]0,"k"。这会给你:

1250000 -> 1.25M
2000000 -> 2.M
300000  -> 300k

为了摆脱 .在 2.M 中,您可以使用条件格式。当数字是 1,000,000 的偶数倍时,请使用不同的格式。

    选择单元格和条件格式 -> 新规则... 选择“使用公式...”并输入=MOD(CellAddress,1000000)=0 点击格式,设置自定义数字格式为[&gt;=1000000]#,, "M";[&lt;1000000]#,"k"

在第 2 步中,如果您处理非整数,也可以使用=MOD(H30,1000000)&lt;4900。这应该给你:

1250000 -> 1.25M
2000001 -> 2M
 300000 -> 300k
1000000 -> 1M
1005000 -> 1.01M (Rounded up)

【讨论】:

谢谢,条件格式确实解决了这个问题。我只是感兴趣是否可以使用自定义数字格式来完成。 是的,@FaragóDávid,尽可能保持简单是很好的,但我认为在这种情况下是不可能的。感谢您接受这个答案。【参考方案2】:

我创建了一个小型 UDF(用户定义函数)来解决这个问题:

Function formatLargeNumber(myValue As Long) As String

If myValue < 1000000 Then
    formatLargeNumber = CStr(Round(myValue / 1000, 0)) & " K"
    Exit Function
End If

If XLMod(myValue, 1000000) < 5000 Then
    formatLargeNumber = CStr(Round(myValue / 1000000, 0)) & " M"
Else
    formatLargeNumber = Format(CStr(Round(myValue / 1000000, 2)), "#.00") & " M"
End If

End Function
Function XLMod(a, b)
    ' This replicates the Excel MOD function
    XLMod = a - b * Int(a / b)
End Function

您可以通过键入以下内容直接将其应用到电子表格中:

=formatLargeNumber(cellreference)

或者使用这个子测试它:

Sub testFunction()
    Dim x As Long, y As String
    x = 1005001 'change his to test
    y = formatLargeNumber(x)
    Debug.Print y
End Sub

如果您想了解有关 UDF 的更多信息,请查看此处: User Defined Function (Excel Easy) 或 Creating UDFs (Better Solutions)

【讨论】:

以上是关于如果逗号后面只有零,如何让逗号消失?的主要内容,如果未能解决你的问题,请参考以下文章

Google表格十进制数,如何删除逗号并添加零

notepad如何在数字后加逗号

如何在数字字符串中插入逗号以分隔零? [复制]

用户在输入框中输入小数点时逗号消失

带逗号的 Oracle 格式数字删除尾随零小数

如何在excel每一行数据后面都加一个逗号