文档详情

利用EXCEL进行修约的计算方法.doc

发布:2016-05-25约1.6千字共2页下载文档
文本预览下载声明
看了你的“修约”的自定义函数,就是:四舍六入,五的时候分情况:前一位偶-舍,奇-入,五的后面还有数-入。其实还有简单的方法哟: 若你的数据在A1,我们想精确到 0.1,我们在B1写公式: =ROUND(A1,1)-(MOD(A1,2)=0.05) 若你的数据在A1,我们想精确到 0.01,我们在B1写公式: =ROUND(A1,2)-(MOD(A1,2)=0.005) 以此类推! 去试一试吧! 追问 谢谢您的回答。 您的这种方式有漏洞,按规范修约2.345保留两位小数,应该是2.34,而不是2.35了,因为5前面是偶数,然后5后面没有任何数了。 我的附件它还有个好处,可以修约会到想修约会的陪数,如0.1 0.2 0.25 0.5 5等等。 回答 sorry!由于浮点运算的误差,出了点问题!幸好被你明鉴,未酿出大祸!修改如下: 若A1的值,保留到整数,使用公式: =ROUND(A1,0)-(MOD(A1,2)=0.5) 保留一位小数,我们只需将A1乘以10,结果除以10,即 =(ROUND(A1*10,0)-(MOD(A1*10,2)=0.5))/10 保留二位小数,我们只需将A1乘以100,结果除以100,即 =(ROUND(A1*100,0)-(MOD(A1*100,2)=0.5))/100 以此类推!修改很是方便的哟! 你若想更通用一点,我们可以把修约的精度值放在某个单元格里,如C1存放0.02,B1写公式: =(ROUND(A2/C$1,0)-(MOD(A2/C$1,2)=0.5))*C$1 公式是可以下拖复制的,你可以改变一下C1的值去试一试! 如果你还是想用“自定义函数的方法”,稍候再叙! 追问 非常感谢你的帮助!要是能够用一种内嵌的函数会更好些,那样不必要另起一行来计算。还有不光是修约的合理性达到要求,最好还可以像我上传的附件那样任意给定值的陪数关系来准确修约(如0.2,0.25,0.3,0.4,0.5,0.002,0.025等等。在工程里面用的也比较多。 回答 看截图,你应该是 Excel 2010吧!自己做一个“函数”吧: 打开excel,Alt + F11,打开VBE,【插入】【模块】,【插入】【过程】,输入函数名:xiuyue,点选“函数”,在代码窗口,粘贴下面的代码: Public Function XiuYue(ByVal BeiXiuYue As Double, ByVal JingQueDao As Double) As Double Application.Volatile Dim a As String a = BeiXiuYue / JingQueDao Dim b As String b = a - Int(a) If b = 0.5 Then If Right(Int(a), 1) Mod 2 = 0 Then XiuYue = Int(a) * JingQueDao Else XiuYue = Int(a + 0.5) * JingQueDao End If Else XiuYue = Int(a + 0.5) * JingQueDao End If End Function Alt + F11,回到表格,点【文件】【另存为】,类型下选“Excel 加载宏(*.xlam),文件名改为:修约(后缀不要改哟),确定!关闭Excel ,重新打开Excel,按 Alt 、T、I ,勾选“修约” 这时就可以使用你定义的函数了=XiuYue(数,精度),再打开新的Excel也可继续使用的哟!请严格地按我说的步骤试一试吧 ! 再有问题,百度Hi我吧!
显示全部
相似文档