如果逗号后面只有零,如何使逗号消失?
How to make comma disappear if there would be only zeros after it?
我希望按以下方式显示数字:
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万的倍数时消失?
我认为您的格式代码中缺少几个逗号(我正在处理美国本地化)。对于单元格上的数字格式,请使用 [>=1000000]#.##,, "M";[<1000000]0,"k"
。这会给你:
1250000 -> 1.25M
2000000 -> 2.M
300000 -> 300k
摆脱 .在 2.M 中,您可以使用条件格式。当数字是 1,000,000 的偶数倍时,使用不同的格式。
- Select 你单元格,条件格式 -> 新规则...
- Select "Use a formula..." 然后输入
=MOD(CellAddress,1000000)=0
- 点击格式,将自定义数字格式设置为
[>=1000000]#,, "M";[<1000000]#,"k"
在第 2 步中,如果您处理的是非整数,也可以使用 =MOD(H30,1000000)<4900
。这应该给你:
1250000 -> 1.25M
2000001 -> 2M
300000 -> 300k
1000000 -> 1M
1005000 -> 1.01M (Rounded up)
我创建了一个小的 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) or Creating UDFs (Better Solutions)
我希望按以下方式显示数字:
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万的倍数时消失?
我认为您的格式代码中缺少几个逗号(我正在处理美国本地化)。对于单元格上的数字格式,请使用 [>=1000000]#.##,, "M";[<1000000]0,"k"
。这会给你:
1250000 -> 1.25M
2000000 -> 2.M
300000 -> 300k
摆脱 .在 2.M 中,您可以使用条件格式。当数字是 1,000,000 的偶数倍时,使用不同的格式。
- Select 你单元格,条件格式 -> 新规则...
- Select "Use a formula..." 然后输入
=MOD(CellAddress,1000000)=0
- 点击格式,将自定义数字格式设置为
[>=1000000]#,, "M";[<1000000]#,"k"
在第 2 步中,如果您处理的是非整数,也可以使用 =MOD(H30,1000000)<4900
。这应该给你:
1250000 -> 1.25M
2000001 -> 2M
300000 -> 300k
1000000 -> 1M
1005000 -> 1.01M (Rounded up)
我创建了一个小的 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) or Creating UDFs (Better Solutions)