在 Excel 中计算四舍五入或四舍六入,听我劝,一个函数就能搞定

文摘   职场   2024-07-14 11:00   上海  

公众号平台最新的推送规则对技术类文章不太友善,如果不想错过干货,请务必 “设为星标”哦!!!


点击上方蓝字 --> 点击“...”--> 选择“设为星标


有同学问 Power Query 是不是可有可无的?如果在 Excel 中可以完成的需求,不用 PQ 也无所谓。


如果非要这么说,也不是不对,但是好比你非要说沈阳到广州如果不坐飞机,走着也能到,自然无法反驳。


今天的案例,就好比是在 Excel 用公式相当于步行,而 PQ 却提供了直达航班。


案例:


对下图 1 中的数组分别进行四舍五入和四舍六入,结果保留 2 位小数。


效果如下图 2 所示。


解决方案:


1. 选中数据表的任意单元格 --> 选择菜单栏的“数据”-->“从表格”


2. 在弹出的对话框中点击“确定”。


表格已上传至 Power Query。


3. 选择菜单栏的“添加列”-->“自定义列”


4. 在弹出的对话框中将“新列名”设置为“两位小数”--> 输入以下公式 --> 点击“确定”:

Number.Round([数值],2,0)


公式释义:

  • Number.Round 的作用是将数值按要求舍入到最接近的值;

  • 前两个参数是必需的,分别表示要舍入的值,以及保留的位数;

  • 第三个参数可选,如果需要四舍五入,那么必须在此输入“0”,否则默认情况下是银行家舍入


既然上面的公式释义提到了一个概念:银行家舍入,那么就解释一下是什么意思。


  • 银行家舍入也称为“四舍六入五成双”;

  • 当尾数 <=4 时,舍去尾数;当尾数 >=6 时,将尾数舍去向前一位进位;

  • 当尾数等于 5 时,如果 5 前面的数字是奇数则进位,是偶数则不进位

  • 如果 5 的后面还有不为 0 的任何数,则均应进位


有关这个算法的 VBA 解法,可以参阅 Excel VBA(10) – 银行家舍入解决方案


Power Query 中非常方便,只要 Number.Round 中第三个参数不写,默认就是该算法。


5. 再次选择菜单栏的“添加列”-->“自定义列”


6. 在弹出的对话框中将列名定义为“银行家舍入”--> 输入以下公式 --> 点击“确定”:

Number.Round([数值],2)


大家可以比较一下,红框中的结果,就是两种舍入的差异值。


7. 删除“数值”列。


8. 选择菜单栏的“主页”-->“关闭并上载”-->“关闭并上载至”


9. 在弹出的对话框中选择“表”--> 选择“现有工作表”及所需上传至的位置 --> 点击“加载”


绿色的表格就是两种不同的舍入结果,本来挺复杂的事情,在 PQ 中这么简单。


转发、点赞、在看也是爱!

Excel学习世界
你遇到的所有 Excel 坑,我都帮你趟过了。
 最新文章