Excel 会去掉前导零,因为它把 00742 读成数字 742。要显示这些零,给单元格设置自定义数字格式 00000;要把数字变成带零的文本,用 =TEXT(A2,"00000")。
| A | B | C | |
|---|---|---|---|
| 1 | Number | TEXT(A2,"00000") | Format 00000 |
| 2 | 742 | 00742 | 00742 |
| 3 | 15 | 00015 | 00015 |
| 4 | 31415 | 31415 | 31415 |
两列看起来一样,实际上并不相同:B 列中是文本,C 列中仍然是数字 742、15 和 31415,只是显示为五位。格式代码中的每个 0 表示一位总会显示的数字,所以 00000 的意思是“至少五位”。
输入时保留前导零
输入以零开头的编码并保留零,有三种方法:
- 自定义格式。 选中单元格,按 Ctrl+1(Mac 上按 Cmd+1),选择“自定义”,在“类型”中输入
00000。单元格仍然是数字,所以 SUM 和排序都能正常使用。适合固定长度的数字,例如邮政编码和员工编号。 - 撇号。 输入
'00742。撇号不会显示出来,它告诉 Excel 把这项内容存为文本。 - 文本格式。 选中单元格,点击“开始 > 数字格式 > 文本”,然后输入。之后输入的所有内容都会按原样存为文本。
| A | B | C | |
|---|---|---|---|
| 1 | Typed | Length | Is it text? |
| 2 | 00742 | 5 | TRUE |
| 3 | 742 | 3 | FALSE |
A2 输入的是 '00742,保留了全部五个字符。A3 输入的是不带撇号的 00742,所以它变成了数字 742,只有 3 位。对于编码而不是数量的值,请使用文本(撇号或文本格式):电话号码、账号、零件编码,以及任何超过 15 位的内容(Excel 只保留数字的 15 位有效数字,所以作为数字输入的 16 位卡号,最后一位会变成 0)。
用公式补上前导零
TEXT 把数字补齐到固定位数。对于本身已经是文本或可能含有字母的值,在前面加上零,再用 RIGHT 保留最后几个字符:
| A | B | C | |
|---|---|---|---|
| 1 | Value | TEXT(A2,"000000") | RIGHT("000000"&A2,6) |
| 2 | 42 | 000042 | 000042 |
| 3 | 1234 | 001234 | 001234 |
| 4 | A17 | A17 | 000A17 |
TEXT 需要数字:B4 中的文本 A17 保持不变。RIGHT 写法对两者都有效,因为它在任何内容前面拼上六个零,再保留最后六个字符。如果值本身已经超过六个字符,RIGHT 会把它截断。=REPT("0",MAX(0,6-LEN(A2)))&A2 只补上缺少的零,较长的值会保持完整。
| A | B | |
|---|---|---|
| 1 | Number | Employee ID |
| 2 | 4217 |
轮到你了: 员工编号有 6 位。在 B2 中把 A2 中的数字以带前导零的文本形式返回,例如 004217。
较长编码中的零
把补齐的数字放进编码或句子中,也要用 TEXT。直接拼接数字会丢掉零,即使单元格用自定义格式显示了这些零:
| A | B | C | |
|---|---|---|---|
| 1 | Order | With TEXT | Without TEXT |
| 2 | 0007 | ORD-0007 | ORD-7 |
| 3 | 0315 | ORD-0315 | ORD-315 |
| A | B | |
|---|---|---|
| 1 | Number | Invoice |
| 2 | 87 |
轮到你了: 在 B2 中生成发票编号:INV- 后面接上 A2 中补齐到 5 位的数字,例如 INV-00087。
去掉前导零,以及 CSV 的陷阱
要把带前导零的文本变回数字,用 =VALUE(A2)(详见 文本转数字)。对于用 00000 格式显示的数字,把格式改回“常规”。
丢失前导零最常见的情况是打开 CSV 文件:Excel 在打开文件时就把 00742 转换成 742,再次保存时写入的也是 742。要保留它们:
- 打开一个空白工作簿,使用“数据 > 从文本/CSV”,选择文件。
- 点击 转换数据,选中该列,把 数据类型 设为文本。
- 点击 关闭并上载。
在 Microsoft 365 中,“文件 > 选项 > 数据 > 自动数据转换”里有一个“删除前导零并转换为数字”的设置;取消勾选后,无论是输入还是打开 CSV 文件,Excel 都会保留零。在 Google 表格中,输入或粘贴编码之前,先把该列设为“纯文本”格式。
常见问题
Excel 为什么会去掉前导零?
Excel 把 00742 当作数字 742,而数字没有前导零。输入之前把单元格设为文本格式,或者先输入一个撇号('00742),或者保留数字并给它设置自定义格式 00000。
怎样在 Excel 中用公式补上前导零?
=TEXT(A2,"00000") 把数字补齐到 5 位,所以 742 变成 00742。如果是可能含有字母的文本,用 =RIGHT("00000"&A2,5)。
打开 CSV 文件时怎样保留前导零?
不要双击打开 CSV。使用“数据 > 从文本/CSV”,点击“转换数据”,把该列的类型设为文本,再加载。在 Microsoft 365 中,还可以在“文件 > 选项 > 数据 > 自动数据转换”中关闭“删除前导零”。
怎样在 Excel 中去掉前导零?
如果单元格中是 '00742 这样的文本,=VALUE(A2) 返回数字 742。如果它是设置了 00000 格式的数字,把格式改回“常规”即可。