在表格里敲 0000001,回车变 1。再敲一遍,还是 1。工号、订单号、批次号这种定长编码,一进去就被吃掉了前导零。

为什么零会消失

表格默认按常规格式存数据,它先判断这是不是数字。0000001 在数值上就是 1,前面几个零没有数值意义,于是被丢掉。右对齐就是它已经变成数字的信号,文本才是左对齐。

三种保住零的写法

  • 先选中列,右键设置单元格格式改成文本,再输入。已经输完的改格式不生效,得重输一遍
  • 输入时前面加一个英文单引号,表格会强制按文本存,单引号本身不显示
  • 自定义格式填七个 0,值仍然是 1,只是显示成 0000001

前两种是真文本,后一种是假象。用自定义格式的列,拿去和别的表做匹配、导出、排序,实际参与运算的还是 1。所以要看用途:只是打印好看,用自定义格式;要拿去匹配或者交付,老老实实设成文本。

文本格式也有副作用。整列是文本时,排序按字符比,10 会排在 9 前面;求和、计数这类函数直接返回 0。这种列只适合当编号看,别在上面做统计,真统计就另建一列,用函数转成数值再算。

CSV 导入是最容易踩的坑

系统导出的对账单、花名册存成 CSV,直接双击打开,前导零全没。正确做法是用导入向导,第一步选分隔符,第三步把编号那一列的类型手动改成文本,再点完成。中间那步不设,进去就是数字,事后改格式也救不回来,只能重导。

还有两个连带问题:文本和数字混着存,用查找函数会报找不到,明明看着一模一样;用连接符拼接时,数字会丢零,得先套补位函数。粘贴数据时也要选匹配目标格式,直接粘贴会把格式一起带过来。

把表交给别的系统时同样要注意。有的系统读 CSV 会自作主张去零,导进去还是 1,这一步只能在对方的导入模板里设,自己这边的表格改成什么都救不回来。

判断就一句:这列数字要不要参与计算。要计算就当数字,不计算就该是文本,别用显示格式骗自己。