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

Excel学习世界 2023-10-12 21:36:43

有同学问 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 中这么简单。

2 阅读:95

Excel学习世界

简介:Excel 学习交流