报表内计算数据偏差问题
在做表的过程中,经常会遇到合并计算等需求
特别是对于某些银行,仓储,物流,零售业等。
某些表的数据需要保留一定的格式,比如保留两位小数。
由于保留小数是四舍五入的,单个数据的四舍五入,对实际的结果不是很明显,但是当数据大量的时候,这个偏差就会比较大了。
比如,下面这张表。
只是张普通的展现表。
单价和计算结果是要求保留两位小数的。
结果看上去就会非常怪异,比如番茄酱,单价四舍五入后是 13.00 订购量是整数,但是计算结果却是 948.64,带有两位小数。
这样的结果看上去是很不舒服的。
对于这样的情况,就是由于四舍五入引起的偏差,因为计算数据是针对于真实值进行计算的,而非显示值、
所以要保证结果的一致性,就需要对显示值进行计算。需要调整单元格的表达式。
常用的方法就是 round 函数,直接用表达式执行四舍五入
函数说明:
对数据在指定位置上进行截取,剩余部分四舍五入
相关的函数有:
ceil:对数据在指定位置上进行截取,剩余部分只要有值就进位
floor:对数据在指定位置上进行截取,剩余部分只要有值全舍去
语法:
round(numberExp, {nExp})
参数说明:
numberExp 需要进行截取的数据
nExp 整数,用于指定需要进行截取的位置,
>0:从小数点往右位移nExp个位数,
<0:从小数点往左移nExp个位数
=0:表示当前小数点的位置
返回值:
数值型
示例:
例1:round(3451251.274,0) 返回:3451251.0
例2:round(3451251.274,-1) 返回:3451250.0
例3:round(3451251.274,-2) 返回:3451300.0
例4:round(3451251.274,1) 返回:3451251.3
例5:round(3451251.274,2) 返回:3451251.27
此例中,需要对单价进行调整,表达式改为:
=round(ds1.单价,2)
修改完后,再次预览,数据即满足需求。