跳到主要内容

自定义格式:把数字变成话

0、#,##0.00、0.00% 这些格式代码,本质是 Excel 描述"数字怎么显示"的语言。学会自定义格式,能让表里的数字自己带单位、自己变色、自己判正负。

一、四段式结构​

自定义格式最多分四段,用分号隔开:

正数格式;负数格式;零值格式;文本格式

例如:

0.00;[红色]-0.00;0;"—"

含义:正数保留两位小数;负数显示为红色带负号;零显示 0;文本显示"—"。

只写一段时,四段都用它(除文本)。写两段时,第一段管正数和零,第二段管负数。

二、占位符​

代码含义例子(值 1234.5)
0数字占位,不足补 000000 → 01234
#数字占位,不足不补#### → 1234
?占位但保留对齐空格对齐小数点用
.小数点0.00 → 1234.50
,千分位分隔符#,##0 → 1,234
%乘以 100 并加百分号0% → 123450%

逗号放在末尾有特殊含义:一个逗号表示除以 1000。

#,##0,

值 1234500 显示为 1,235(千元单位)。

#,##0,,

除以 100 万,显示为 1(百万元单位)。

三、带单位的显示​

0.00"元"
0.0"kg"
#,##0"件"

单位要用英文双引号包起来,否则 Excel 会当成格式代码解析,可能报错或显示成别的东西。

想显示"元/件"这种复合单位:

0.00"元/件"

四、正负零分开显示​

#,##0.00;[红色]-#,##0.00;[蓝色]0.00

颜色名可用:[红色]、[蓝色]、[绿色]、[黄色]、[黑色]、[白色]、[青色]、[洋红]。英文版是 [Red]、[Blue] 等,中文环境下写英文也认。

也可以用颜色序号:[颜色1] 到 [颜色56],但可读性差,不推荐。

注意:颜色是显示属性,导出到 CSV 或复制为值时颜色信息丢失。

五、隐藏内容​

;;;

三段分号全空 = 什么都不显示。适合在图表里隐藏某些数据,或做占位格。

只隐藏零值:

0.00;-0.00;

第三段留空,零值不显示。

隐藏负数的负号(显示为正数外观):

0.00;0.00

这只是视觉隐藏,值仍然是负数。用这个格式做报表要非常谨慎——别人可能误读。

六、条件格式代码​

自定义格式支持简单条件:

[>=1000]#,##0,,"万";#,##0

一个格式里只能用两个条件([条件1]格式1;[条件2]格式2;其余)。

超过两档的需求,就别硬写格式了,用条件格式或 IF 函数。

七、日期与时间格式​

代码结果
yyyy-mm-dd2026-10-20
yyyy"年"m"月"d"日"2026年10月20日
aaaa星期五(中文星期)
aaa五
m/d10/20
hh:mm:ss14:30:00
[h]:mm累计小时(超 24 小时)
mm:ss.0秒带一位小数

关键区分:m 是月还是分,取决于位置。紧跟 h 或 s 的是分,其他是月。写 hh:mm 表示"时:分",mm:ss 表示"分:秒"。

想明确显示月份,放在 y 后面或用 mmm。

八、文本和邮编这类"数字"​

邮编、工号、身份证号:

000000

510183 保持 6 位,不足补 0。但格式改不了底层类型——它仍是数值。真正需要文本的地方(如导入数据库),还是要设成文本格式后重新录入。

手机号分段:

000-0000-0000

重要提醒:自定义格式只改显示,不改值。复制到别处按"值"粘贴会丢格式,按"全部"粘贴会带上格式。给外部系统导数据时,格式一律不带,所以要提前用 TEXT 函数转成文本。

九、常见坑​

现象原因处理
格式报错单位没加引号0.00"元"
显示成 #####列宽不够拉宽列或缩小字号
改了格式但求和变了应该不会,检查是不是转了文本格式不改值,核实数据源
类似 #,##0 但显示不对系统千分位设置为空检查区域设置
负数显示成正数用了 0.00;0.00确认是否故意
日期显示成序列值格式被改回常规重新套日期格式

十、速查​

需求格式代码
两位小数0.00
千分位#,##0
带单位0.00"元"
负数红色0.00;[红色]-0.00
零显示为横线0.00;-0.00;"—"
转万元0!.0,,"万"
邮编 6 位000000
累计小时[h]:mm
中文星期aaaa

自定义格式是"只改脸不改心"的工具。用它做展示,别指望它改数据——这条界线一清楚,格式就随便玩了。