蒲公英 - 制药技术的传播者 GMP理论的实践者

搜索
查看: 2850|回复: 6
收起左侧

[质量控制QC] 四舍六入五成双

[复制链接]
药徒
发表于 2019-3-3 09:26:58 | 显示全部楼层 |阅读模式

欢迎您注册蒲公英

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
四舍六入五成双,excle宏如何验证,谢谢。

回复

使用道具 举报

药徒
发表于 2019-3-3 10:59:02 | 显示全部楼层
没做过这个验证
回复

使用道具 举报

药徒
发表于 2019-3-3 13:21:40 来自手机 | 显示全部楼层
这个用公式就行了吧,宏太复杂了
回复

使用道具 举报

药徒
发表于 2019-3-3 13:23:59 | 显示全部楼层
回复

使用道具 举报

发表于 2019-3-3 18:40:48 | 显示全部楼层
简单点  5前面是双就不进位
单数  过5进位
回复

使用道具 举报

药徒
发表于 2019-3-3 19:15:19 | 显示全部楼层
3.14  3.15  3.151  3.16
3.24   3.25  3.251  3.26这是保留1位的,不知道对不?
回复

使用道具 举报

药生
发表于 2019-3-3 19:29:07 | 显示全部楼层
本帖最后由 joshua 于 2019-3-3 19:31 编辑

那我就试着讲一下我的理解好了
——首先要了解用“宏”(其实是 “公式”)实现有什么好处——
1-对开发者而言可以不用写写逻辑复杂的公式(看了之前几位的公式版 普遍公式很长,而且因为公式只能写在1行,嵌套多层if,不容易理解)
2-对使用者而言,最好直接像使用系统函数一样,不用关心具体实现过程(最好都不让他们看到实现过程)
3-之前用公式实现的 普遍要1列用于存放 修约位数,这个增加了多余数据,而且不太符合用户的使用习惯
4-宏可以实现四舍六入基础 更多更好的交互功能,比如被修约对象不是数值时可以警告等
5-公式复杂了之后,如果经常复制容易出错

注:roundX是自定义的 四舍六入函数, 像系统函数一样使用,而且用户不用看到背后很长的公式

不用单独存储 修约位数

可以实现监测 修约数字 类型等交互功能

-------宏的缺点----------
1、必须要启用宏(如果excel完全禁用的话可能看不到提升),而且需要以带有这个宏的文件去编自己的文件
2、对开发者门槛高一点,需要有一定VB基础(具体业务代码可能很简单,但那是在你对excel各种对象、VBA语句、VBA自带函数比较熟悉的前提下而言的)


-----关于验证--------
1-黑盒测试:这个对于公式版或者宏版应该没啥区别,就是多举一些数字 各种极端情况 去试存不存在修约错误的情况
2-白盒测试:关于原代码审核这块,主要是分析 公式或者宏代码在逻辑上有没有明显的漏洞,这个本质上两者应该是一样的,甚至我看到前面有几个公式版的 公式逻辑更加复杂一点,大家感觉宏很高深,并不是宏业务逻辑代码多么复杂,而是对宏的运行机制、语法规则不了解,所以这个你只有去学一点VB语法 和Excel对象 才能会,当人这个99%的制药人估计都不会
3-安全性验证:这个本质上“宏”会更有优势一点,excel的公式要保护起来 只能通过锁定单元格、保护excel表等实现,但是 你在修订表格的时候还是会开发编辑公式、而且excel自带的保护功能实在是太弱了,甚至不用第三方工具即可实现破解;而“宏”你要修改后台代码相对就难很多,1、90%的人不知道怎么去查看VBA工程,2、VBA工程通过密码加密后你就不能查看代码了(目前没有特别简单的破解方法)3、宏后台运行的特点,自然不会诱导用户去查看后台代码(平常我们使用系统函数时 也不会想去看看系统函数的后台实现逻辑)

--最后附上代码---
PS: 这个是利用了VBA里面自带的round函数(excel里面的round 函数是四舍五入的,VBA里面的round函数是 四舍六入的),另外也是因为浮点数精度的问题,这个版本应该会在个别情况下 出现修约不准的情况,要完善<要懂开发的才能做好验证>
  1. Public Function RoundX(ByVal rng As Range, ByVal i As Integer)
  2.     If IsNumeric(rng.Value) And rng.Value <> "" Then
  3.         RoundX = Round(rng.Value, i)
  4.     Else
  5.         MsgBox "被修约的对象不是数字或者为空,请检查!!", vbCritical, "类型错误警告!"
  6.         RoundX = "错误"
  7.     End If
  8. End Function
复制代码






四舍六入.xlsm

15.11 KB, 下载次数: 8, 下载积分: 金币 -1

售价: 5 金币  [记录]

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

×发帖声明
1、本站为技术交流论坛,发帖的内容具有互动属性。您在本站发布的内容:
①在无人回复的情况下,可以通过自助删帖功能随时删除(自助删帖功能关闭期间,可以联系管理员微信:8542508 处理。)
②在有人回复和讨论的情况下,主题帖和回复内容已构成一个不可分割的整体,您将不能直接删除该帖。
2、禁止发布任何涉政、涉黄赌毒及其他违反国家相关法律、法规、及本站版规的内容,详情请参阅《蒲公英论坛总版规》。
3、您在本站发表、转载的任何作品仅代表您个人观点,不代表本站观点。不要盗用有版权要求的作品,转贴请注明来源,否则文责自负。
4、请认真阅读上述条款,您发帖即代表接受上述条款。

QQ|手机版|蒲公英|ouryao|蒲公英 ( (京)-非经营性-2014-0058 京ICP证150354号 京ICP备14042168号-1 )

GMT+8, 2024-3-29 00:58

Powered by Discuz! X3.4运维单位:苏州豚鼠科技有限公司

Copyright © 2001-2020, Tencent Cloud.

声明:蒲公英网站所涉及的原创文章、文字内容、视频图片及首发资料,版权归作者及蒲公英网站所有,转载要在显著位置标明来源“蒲公英”;禁止任何形式的商业用途。违反上述声明的,本站及作者将追究法律责任。
快速回复 返回顶部 返回列表