使用 Excel 或 Google 电子表格处理大量数字、单价、财报金额的时候,你可能会为了方便好读,或是公司要求,需要让数字以特定格式排版。
例如你在经营的是产品单价较低,例如螺丝、五金类的产品的话,可能就常常会需要输入与整理大量的小数,但数据量大起来的时候,这些位数不统一的小数看起来又会显得有点杂乱,没办法一次就认清楚所有的数字,你想要以更整齐好读的方式呈现:
或是因为小数点位置不一,让你容易搞混每个值之间的大小关系(例如 5.015 看起来反而比 15.01 大),而需要以小数点为中央对齐,更好辨认数值的整数与小数部分:
另一个需要特别排版的情境是,公司要求纪录单价时都要加入 “$” 或“元”这样的标号,你希望它们能排列整齐、而且可以做计算:
如果你试图手动调整,可能既困难又麻烦,但如果你了解电子表格工具“数值格式设置”的原理,这些细部的排版需求,其实都可以透过简单的格式设置一次套用、快速解决。
这篇文章就将为你解释原理,以实例带你一步步透过更改格式设置,让数字以想要的格式呈现。另外,我们也将解说调整格式后也可能生成的衍生问题--公式计算可能会有细微误差的问题,告诉你这样的误差为什么会生成,以及应该以什么方式来避免。
Excel 与 Google 电子表格的每一格都有对应的“单元格格式”,能决定数据如何被显示,例如同样的值 “1” 在通用格式、数值、百分比和科学记号格式下的显示方式都各有不同:
以本篇“数值相关”的格式来说,常见的需求包括在数字前加入货币符号、加上千分位符号、规定特定的小数码数,又或者是针对较大的数值要以“科学记号”显示、使用“百分比”显示比例等等……你很容易在 Excel 和 Google 电子表格的工具条中找到相应的设置单击钮:
有些时候,我们并没有办法只使用默认提供的格式就确保数据被以想要的方式显示,这个时候,还可以用“自订格式”让你以各种符号来弹性地设计数据的格式:
例如在数值前后加上特定的字、单元,或者是电话号码、存款帐户等等要以特定方式分隔的数字,就很适合使用自订格式来设置:
你会不会有时觉得,小数点没有办法对齐,在数据的呈现与阅读上造成你很大的困扰?就像下图这样,每个数字的小数点后位数都不一样,导致有些数值看起来更长,有些则更短,很难一眼就辨认出每一个数字的实际大小:
会发生这样的问题,是因为通用格式/自动格式的基本逻辑是“输入什么就显示什么”,所以并不会刻意对齐数值。也就是说,只要设置了适当的格式,就能避免每个数值的小数码数各不相同、导致小数点无法对齐、数值显示的长短也不一的状况。
针对这个问题,Excel 和 Google 电子表格都设计了能够快速增减小数码数的单击钮,让你直接在接口上使用:
以上面的例子来说,我们只要点击几次“增加小数码数”,就能够将让所有数值后的小数点位数固定:
如果你还希望更进一步地提升阅读的方便性,希望除了小数点能够对齐之外,还可以让没有值的位数直接省略,而不是显示一长串的 000…… 你可以在自订格式中使用 “?” 这个符号:
在上图,因为从小数点后第二位到第十位以 “?” 设置,因此值为 1.1 的 B6 单元格只显示到了小数点后第一位,后续则以空格填满到小数点后第十位的位置,以对齐其他的值。
例如 B7 的最后一个位数为 9,所以系统会保留显示该位数之前的 0。如此一来,就能够在不显示多余 0 的前提下对齐小数码数了。
要特别注意的是,自订格式里符号的多寡也会影响最终显示的结果,如果我们将 “?” 的位数减少,只设置到小数点后第三位的话,就会看到所有数值都只会对齐到小数点后第三位数,超过的部分则直接四舍五入,导致所有值都显示为“1.123”:
每间公司处理数据的方式都有所不同,有些时候,为了满足财务或会计需求,你可能会需要在单元格内加上 “$” 或“元”,让数据的整理与阅读变得更加顺畅。
当你直接将 “$” 或“元”直接加入单元格时,Excel 和 Google 电子表格可能会在你进行公式运算时发生错误:
这是因为手动在单元格里加上这两个符号时,系统会直接将数据识别为“字”,因此无法直接以公式计算。
因此,透过调整格式,就能让你既能够保留公式计算的可能性,同时满足需求。
在 Excel 和 Google 电子表格中,针对财务相关的格式都分为了“货币”以及“会计”两种,其中的分别在于货币符号以及小数点的位置是否对齐,且针对 0 和负值的呈现方式略有不同,在 Excel,两种格式会分别显示为:
而 Google 电子表格则会显示为:
但无论是货币还是会计格式,都只能将符号置于金额的前方,与我们平时使用的“1,000 元” 这样的描述方式略有不同,因此如果需要使用“元”并置于金额后方的话,就必须回到自订格式来设置。
在你打开自订格式后,可以从里面看到各种由 0 和 # 组成的“类型”,你可以先从中选择一项类型,例如可以保留小数点后两位的 “#,##0.00”:
并在格式后方加上以引号 “” 包覆的 “元”:
经过这样的设置后,单击下确定回到电子表格内,就能看到输入的数值后方加入了小数点后两位,且自动带出“元”:
又因为这样的格式设置并不会更改原先的数值,因此在套用公式后,系统也能够正确进行计算:
在前面的例子中,我们在加入 “元” 之前,有先选择了 “#,##0.00” 这个格式类型,这里的 # 和 0 分别在格式设置上是什么意思呢?
其实 # 和 0 就像前面提到的 “?” 一样,都是用来告诉系统“要显示多少位数”以及“如何呈现数据”的符号。# 和 0 两者的主要差异则在于:
.输入 0 的位数在数据不到该位数时,会以 0 保留
.输入 # 的位数在数据不到该位数时会直接省略
以下我们将会演示同一套数值在三种不同的格式: “#,##0.00 元”、“#,##0.## 元” 和 “# 元” 之间会如何显示。
我们刚刚所选择的 “#,##0.00 元” 这个格式会固定显示整数到小数点后第二位,且如果整数的部分超过了千位数,就会出现分隔符号 “,”:
将格式修改为 “#,##0.## 元” 的话,系统就会让小数“最多”只能显示到第二位数,如果数据本身位数不足则自动省略:
最后,当格式被设置为 “# 元” 或 “#,### 元” 时,因为格式本身没有定义小数后如何处理,因此会一律四舍五入到整数码,且由于使用的符号是 #,所以数值为 0 时会直接省略:
调整格式以后,回头发现公式算起来的结果不太正确吗?就像下图,明明 A1 显示了 1.01 这个数字,但输入公式 A1*2 却得到了 2.01:
如果我们增加一个小数码数,就会发现其实 A1 单元格里的内容是 1.005,只是为了配合格式而四舍五入到小数点后第 2 位数,导致显示上与实际保存的值生成差异:
这样的差距可能会导致不少数值的计算出现误差,像是汇率转换、计算税额、百分比时,就算原本的数值都是整数,也可能在计算的过程中出现小数。如果这样的问题堆到会计作帐时才被发现,更是会为了调试而加重工作量。
要从根本解决这个问题,我们建议你使用 ROUND 公式,让系统直接保存经过四舍五入计算后的值,确保显示与实际保存的值相符,自然就不会因为显示差异而导致计算误差了。
要设计适合的 ROUND 公式,只需要预先确定要参照哪个字段,以及最终引出的值要四舍五入到哪一个位数就可以了。
以上面的例子来说,如果我们希望参照 A1,且最后引出的值要取到小数点后第 2 位数,那么可以写出 ROUND(A1,2),就可以得到下图的效果:
这个时候再使用 B1*2 进行验算,就可以发现结果的确是 1.01 的两倍,也就是 2.02 了:
在 Ragic 加入数值字段后,字段设置里就会出现“格式”区块:
Ragic 的格式逻辑与 Excel、Google 电子表格相似,在数值上以 0 和 # 进行设置,例如将格式改为 “#,###.000##”,最终就会保留到小数点后第三位,如果后续还有位数的话,则最多显示至小数点后第五位:
与 Excel、Google 电子表格不同的地方在于,如果你需要在 Ragic 的字段内加入“元”或其他字符串,就不需要特别加入引号 “”,只要在格式的后方输入需要加入的内容即可: