ARTICLE · 1065672
Excel数字加不出合计,它们其实是文本
跳出来一个 0。
我以为框错了区域,重新框了一遍,还是 0。我又把整个公式删掉重写,还是 0。那一列上下扫过去,每个格子都是清清楚楚的数字,一位不差。
旁边的人探头看了一眼,说,你这列是文本格式吧。她在表格左上角点了一下那个黄色小提示,选了转换,数字立刻出来了。当时我心里冒出来的不是"原来这么简单",是"那你为什么不早告诉我"。
表格判断一个格子是什么,看的不是它长得像什么,而是它底层被存成了什么。这一点很反直觉,但它解释了很多奇怪的现象。
同样是 1 2 3 这三个字符,存成数字,它能参与加减乘除;存成文本,它就只能当一个字符组合,求和的时候会被整列跳过。你眼睛看到的形态一模一样,表格内部处理的方式完全不同。
不用记原理,三个地方能一眼看出来:
看对齐。在没有特别设置对齐的情况下,真正的数字默认靠右,文本默认靠左。如果一列数字全都贴着左边站,基本可以断定它们是文本。
看绿三角。单元格左上角有个小三角标记,点上去会出现一个感叹号提示,里面通常就有"转换为数字"这一项。这是表格在向你报错——它能看出来这玩意儿长得像数字但存错了,只是它不会主动帮你改。
看状态栏。选中整列,看窗口底部。如果显示的是"计数"而不是"求和",说明这一列里没有它认得的数字。
最麻烦的一种情况是混着来:一列里有三百行数字,只有十来行是文本格式。求和是有结果的,看着很正常,实际少了那十几行的金额。这种错误不会报错,只会让你交出去的表比实际少几百几千块。所以对账的表,光看合计有数字还不行,得看它是不是全都包含了。
表格不认长相,只认类型。你认识它是数字,没用。
第一种,也是最省事的:点那个黄色提示。选中整列,左上角会出现感叹号图标,点开选择"转换为数字",一列同时刷过来。缺点是这个提示有时候不出现,尤其是数据是从网页或者其他表粘过来的。
第二种,分列,这是万能钥匙。选中这一列,点"数据"选项卡,找到"分列",弹窗什么都不用改,一路点下一步到完成。它会把这一列按"原始格式"重新走一遍,绝大多数看起来像数字的文本都会被刷成真正的数字。这是我用得最多的方法,因为它几乎不会失败。
第三种,加个零。找个空单元格输入 0,复制它,然后选中要转的那一列,右键选择性粘贴,在"运算"里勾"加"。等于给整列数字加了个零,运算一发生,文本就被迫变成了数字。这个方法的好处是不会动你原来的排列,也不会碰到别的列。
如果你只想在旁边的单元格里出一个干净的数,不动原始数据,用公式也行:给那个格子套一个转换函数,或者直接在前面加两个减号,等于把它强制拉进数值运算里。
转换之前有一件事必须先看一眼:这列里有没有带前导零的内容。像工号、编号、卡号这种 0012、0035 的东西,本来就是文本,一旦转成数字,前面的零会消失,变成 12 和 35。这种列千万别转,要转就先把格式设成文本再录一遍。
有时候你用了上面三种方法还是不成功,那就不是"存成文本"这么简单了,而是这串数字里面混进了看不见的字符。
最常见的是空格,而且分好几种:普通空格、全角空格、还有一种叫不换行空格的特殊字符。前两种可以用替换清掉,能看见替换掉几个就说明清掉了几个;第三种最难缠,看着跟普通空格一样,用普通替换却替不掉,得靠专门的清理函数。
除了空格,从网页和系统里导出来的数据还常带着换行符、制表符。判断方法很简单:把鼠标点进那个格子,看光标和数字之间有没有空隙。如果数字前面还空着一小块,光标要按一下才贴上去,里面就有东西。
还有一种情况是内容本身就不是纯数字:金额里带着千分位逗号、带着货币符号、带着单位,比如"1,200元"这种。这些长度不一的混在一起,转换当然不会成功,得先把多余的字符去掉,只留数字本身。
数字变文本这件事,从来不是在你算的时候发生的,是在数据到你手上之前就已经是这样了。
几个高发来源:系统导出的报表,导出功能为了保留原始字符,默认把一切按文本处理;从网页上复制粘贴的表格,网页里的东西天生就是文本;别人转发来的表,你不知道它中间经历了什么;手机上填的表单,号码类的东西基本都会存成文本。
所以真正的解决办法是往前移一步:数据到手第一件事,是验,不是算。我现在固定做两件事——先框住数字列看状态栏有没有"求和",没有就说明格式不对;再随便挑一个有代表性的数,手动加一下看对不对得上。
如果是你要收别人的数据,那就在收集的表单里把那一列提前设成数字或者固定格式。源头改一次,往后每一次汇总都省事。
表算不出结果,先别怀疑公式,先怀疑你手里那列数到底是不是数。
从那以后,我对"合计"这个数字的信任度降了很多。以前看到合计有数就交了,现在我会多看一行——总行数和参与计算的行数对不对得上。这个习惯不花时间,但它把我从"交出去的比例不对"这类事情里摘了出来。
你有没有被这种"看着是数字其实不是"坑过?是因为字段类型还是隐藏字符?评论区说说,看看哪种情况最常见。