使用此自定义数字格式时,为什么万亿被格式化为十亿?

Why are Trillions formatted as Billions, when using this Custom Number Format?

我对十亿级的数字使用自定义数字格式,效果如预期:

[<1000000]#,##0.0," K";  [<1000000000]#,##0.0,," M";  #,##0.0,,," B"

现在我需要处理数万亿级的更大数字,所以我尝试了:

[<1000000000]#,##0.0," M"; [<1000000000000]#,##0.0,," B"; #,##0.0,,," T"

但是,这失败了 - 它显示一万亿 (1,000,000,000,000,000) 作为 1,000,000.0 T,实际上格式为十亿,而不是万亿。

我已经检查了解决方案,例如 并进行了谷歌搜索,但我不明白为什么这种格式不起作用。 请注意,建议的 SO(链接)格式不起作用。

只是想避免缓慢的自定义函数等,所以如果有人有建议,我们将非常欢迎。

文档摘录:

number format documentation 关于 , 令牌的说法:

If it appears between two digit characters (0, # or ?), then it renders the entire number with grouping separators (grouping by the thousands).

所以,=TEXT(1000, "0,0")1000 渲染为 1,000(它只是每 3 个数字添加一个 ,

If it follows the digit characters, it scales the digits by one thousand per comma (e.g., the format #0.0,, renders the number 12,200,000 as 12.2).

因此,=TEXT(1000, "0,") 会将 1000 渲染为 1

问题:

[<1,000,000,000]#,##0.0," M";
[<1,000,000,000,000]#,##0.0,," B";
 #,##0.0,,," T"

只有一个 , 用于 " M"(少于 10 亿)格式。所以,这个数字只按 1000 缩放,而不是 1000^2。

解决方案:

再添加一个,

Number Fixed Original
Formatting: [<1000000000]#,##0.0,," M"; [<1000000000000]#,##0.0,,," B"; #,##0.0,,,," T [<1000000000]#,##0.0," M"; [<1000000000000]#,##0.0,," B"; #,##0.0,,," T"
10 0.0 M 0.0 M
100 0.0 M 0.1 M
1000 0.0 M 1.0 M
10000 0.0 M 10.0 M
100000 0.1 M 100.0 M
1000000 1.0 M 1,000.0 M
10000000 10.0 M 10,000.0 M
100000000 100.0 M 100,000.0 M
1000000000 1.0 B 1,000.0 B
10000000000 10.0 B 10,000.0 B
100000000000 100.0 B 100,000.0 B
1000000000000 1.0 T 1,000.0 T
10000000000000 10.0 T 10,000.0 T
100000000000000 100.0 T 100,000.0 T
1000000000000000 1,000.0 T 1,000,000.0 T
10000000000000000 10,000.0 T 10,000,000.0 T