截取小数位数的函数 excel中的公式、数字都对,但小数点后几位对不上,为什么?
excel中的公式、数字都对,但小数点后几位对不上,为什么?
EXCEL中的小数精度的问题还是蛮让人困扰的,尤其是财务人员,一分钱都不能差,否则就借贷不平。最典型的场景是做造工资表,做凭证,明明都对上了,可就是有差异。
纳尼?这到底是什么情况?还让不让人愉快地玩耍了?
(图片来源网络)
这背后涉及Excel显示和计算的逻辑,理解了就很好解决。
首先EXCEL显示是按照单元格设置的格式来的,所看到的数字并不是excel真正存储的数据。比如,在单元格B1输入1.3322,如果显示格式里设置的是显示两位小数,则在excel看到的就是1.33,1.33这个数字是1.3322按照四舍五入保留2位小数后的结果。
但是,excel在进行单元格计算时,却是基于excel真正存储的数据计算,比如还有一个单元格B2输入了1.3344,单元格格式也是显示2位,现在B3=B1 B2,如果B3单元格格式也是显示2位,你觉得应该是显示多少呢?
如果你去Excel验证就知道,B3显示的是2.67,因为它是先计算B3=1.3322 1.3344 = 3.6666,然后再进行四舍五入,变成了2.67,而不是 1.33 1.33 = 2.66。
这就是困扰很多财务人员问题,为什么合计就和明细对不上了。
怎么解决呢?有两种办法。
1、让excel在显示时强制调整精度。在 excel选项 — 高级 — 计算此工作薄时,勾选【将精度设为所显示的精度】。
这样excel计算时,会忽略实际精度,按照显示的数据进行计算,前面的示例,B3单元格的数据就变成了2.66。
2、通过函数进行转换。常用的是Round 函数,进行四舍五入,Round(A3,2),第一个参数是需要四舍五入的数值,第二个参数是小数位数。与之类似的函数还有 向上取值RoundUp,向下取值RoundDown,取整Int。
第一种方式很简单很暴力,但会影响整个excel中的数据,并不是所有场景下都适应。第二种方式要复杂一些,但胜在灵活,从财务角度,更多是在用第二种方式,因为财务本就比较严谨要求数据非常精确。
截取小数位数的函数 round函数精确小数点 保留小数点后四位公式
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。