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

搜索
123
返回列表 发新帖
楼主: Dvencent
收起左侧

Excel四舍六入五成双纯公式非宏版

  [复制链接]
发表于 2019-3-4 10:20:08 | 显示全部楼层
Dvencent 发表于 2019-3-3 15:50
0位小数:=if((A2-0.5)/int(A2)=1,int(A2)+mod(int(A2),2),round(A2,0))
1位小数:=if((A2*10-0.5)/int(A2 ...

我的公式有问题?
回复

使用道具 举报

发表于 2019-3-4 10:28:23 | 显示全部楼层
本帖最后由 凛冬将至 于 2019-3-4 10:34 编辑

是你写错公式了。把IF的判断条件“是”与“否”写反了,按照我的公式肯定是简单并正确的。

保留至个位:=IF(MOD((A1-0.5),2)=0,A1-0.5,ROUND(A1,0))
保留1位:=IF(MOD((10*A1-0.5),2)=0,A1-0.05,ROUND(A1,1))
保留2位:=IF(MOD((100*A1-0.5),2)=0,A1-0.005,ROUND(A1,2))
保留3位:=IF(MOD((1000*A1-0.5),2)=0,A1-0.0005,ROUND(A1,3))
原理是“当且仅当尾数正好出现0.5、0.05、0.005时,需要人为判断舍/约,其余情况一概使用Round函数即可解决。”
回复

使用道具 举报

药徒
 楼主| 发表于 2019-3-4 12:31:24 | 显示全部楼层
本帖最后由 Dvencent 于 2019-3-4 12:59 编辑
凛冬将至 发表于 2019-3-4 10:28
是你写错公式了。把IF的判断条件“是”与“否”写反了,按照我的公式肯定是简单并正确的。

保留至个位: ...

嗯嗯,我知道我那个写错了,但补充的内容没法修改,在39楼我修正了
你的公式逻辑上没错,但测试的时候有判断错了的情况,具体原因我也搞不明白,忘了是哪个数了,貌似是12.525,但刚刚又测试了一遍,又没事了,搞不懂了我最初的公式第一个判断条件是A2*B2-int(A2*B2)=0.5,逻辑上也没问题,但测试的时候就是时好时坏,后来才改了的,刚测试了一次A2*B2-int(A2*B2)=0.5也没问题了还有,我的公式还是又bug,刚才大量随机数据测试了一下,第一个判断条件(A2*10-0.5)/int(A2*10)=1需要修改成int(A2*10)/(A2*10-0.5)=1,分子分母对调,要不也会出问题
回复

使用道具 举报

药徒
发表于 2019-3-4 17:02:15 | 显示全部楼层
=ROUNDDOWN(B2,B1)+OR((--MID(B2,FIND(".",B2)+B1+1,1))>5,AND((--MID(B2,FIND(".",B2)+B1+1,1))=5,MOD((--MID(B2,FIND(".",B2)+B1,1)),2)=1))*10^(-B1)
随便写了一个,懒得验证了,大家来验证
B1修约位数
B2原始数据
回复

使用道具 举报

药徒
 楼主| 发表于 2019-3-5 11:07:50 | 显示全部楼层
不拘小杰 发表于 2019-3-4 17:02
=ROUNDDOWN(B2,B1)+OR((--MID(B2,FIND(".",B2)+B1+1,1))>5,AND((--MID(B2,FIND(".",B2)+B1+1,1))=5,MOD((-- ...

老大,公式毛事不行
回复

使用道具 举报

发表于 2019-3-5 13:57:23 | 显示全部楼层
Dvencent 发表于 2019-3-2 14:31
9.8451,修约为两个小数,结果应该为9.85啊

第一帮忙验证一下修约为两个小数位数的“=IF(AND((A1*100-INT(A1*100)<=0.5),MOD(MID(A1-INT(A1),4,1),2)=0),ROUNDDOWN(A1,2),ROUND(A1,2))”
回复

使用道具 举报

发表于 2019-7-25 15:34:46 | 显示全部楼层
楼主好,这两个我验证了下,针对21.545这个数作四舍六入五成双修约,公式A结果是21.54,公式B结果是21.55。
A:2位,=IF((A2*100-0.5)/int(A2*100)=1,int(A2*100)+mod(int(A2*100),2),ROUND(A2,2)*100)/100
B:2位小数:=if((A2*100-0.5)/int(A2*100)=1,int(A2*100)+mod(int(A2*100),2),round(A2*100,0))/100
公式中的函数意思都已知晓但是整个公式什么意思,能解释一下吗?
谢谢
回复

使用道具 举报

药徒
 楼主| 发表于 2019-7-29 07:59:58 | 显示全部楼层
liuh1219 发表于 2019-7-25 15:34
楼主好,这两个我验证了下,针对21.545这个数作四舍六入五成双修约,公式A结果是21.54,公式B结果是21.55。 ...

现在还有采用四舍六入五成双的了吗,我们改成四舍五入了
公式意思可以加好友交流
回复

使用道具 举报

药徒
发表于 2021-6-20 16:09:33 来自手机 | 显示全部楼层
研究了一小时才整明白,楼主厉害我觉得改成这样会更容易明白,=IF((A1*POWER(10,B1)-0.5)/INT(A1*POWER(10,B1))=1,(INT(A1*POWER(10,B1))+MOD(INT(A1*POWER(10,B1)),2))/POWER(10,B1),ROUND(A1,B1))
回复

使用道具 举报

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

本版积分规则

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

QQ|手机版|蒲公英|ouryao|蒲公英 ( 京ICP备14042168号-1 )  京ICP证150354号  互联网药品信息服务证书编号: (京)-非经营性-2024-0033

GMT+8, 2024-11-13 09:42

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

Copyright © 2001-2020, Tencent Cloud.

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