求助:如何在Excel中复刻The Bloomberg Terminal的数字格式
复刻彭博终端数字格式到Excel的解决方案
先梳理你给出的彭博格式对应逻辑,确保完全匹配需求:
- 当数值是1,000,000的整数倍时:除以1,000,000,后缀加
MM(比如1,000,000 → 1MM;10,000,000 →10MM) - 当数值≥10,000,000但不是1e6整数倍时:除以1,000,后缀加
MM(比如25,300,000 →25,300MM) - 当数值在1,000,000到10,000,000之间且不是1e6整数倍时:除以1,000,后缀加
M(比如1,400,000 →1400M) - 当数值<1,000,000时:除以1,000,后缀加
M(比如75,000→75M;100,000→100M)
方法一:使用Excel公式(最精准,支持所有情况)
这个方法通过公式判断数值归属,完全贴合你的示例需求。假设原始数值在单元格A1,在目标单元格输入以下公式:
=IF(MOD(A1,1000000)=0, TEXT(A1/1000000,"#,##0")&"MM", TEXT(A1/1000,"#,##0")&IF(A1>=10000000,"MM","M") )
公式说明:
MOD(A1,1000000)=0:判断数值是否为1,000,000的整数倍,若是则除以1e6并添加MM后缀- 非1e6整数倍的数值:
- 先统一除以1000
- 再判断数值是否≥10,000,000,是则加
MM,否则加M
TEXT(...)函数用于保留千位分隔符(比如25300会显示为25,300)
测试后完全匹配你给出的所有示例:
- 75,000 → 75M
- 100,000 →100M
- 1,000,000 →1MM
- 1,400,000 →1400M
- 10,000,000 →10MM
- 25,300,000 →25,300MM
方法二:自定义数字格式(局限性:无法区分1e6整数倍)
如果你只想改变单元格显示格式、不想用公式,自定义格式可以覆盖大部分场景,但无法自动识别1e6的整数倍(比如1,000,000会显示为1M而非1MM),仅推荐在你能确保非1e6整数倍的数值都≥10e6的场景下使用。
自定义格式代码:
[>=10000000]#,##0,M"MM";[>=1000000]#,##0,M;[<1000000]#,##0,M
格式说明:
[>=10000000]#,##0,M"MM":数值≥10e6时,除以1000后显示并加MM[>=1000000]#,##0,M:数值在1e6到10e6之间时,除以1000后显示并加M[<1000000]#,##0,M:数值<1e6时,除以1000后显示并加M
若要适配1e6整数倍的特殊显示,需要结合条件格式单独设置这类数值的格式。
内容的提问来源于stack exchange,提问作者Nikolajs
相关产品推荐
相关产品推荐

