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

搜索
查看: 7014|回复: 48
收起左侧

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

  [复制链接]
药徒
发表于 2019-2-26 19:41:46 | 显示全部楼层 |阅读模式

欢迎您注册蒲公英

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

x

宏的话,验证是不是挺复杂呢?闲来无事乱写了个公式,希望有用=if((A2*B2-0.5)/int(A2*B2)=1,int(A2*B2)+mod(int(A2*B2),2),if(A2*B2-int(A2*B2)>0.5,int(A2*B2)+1,int(A2*B2)))/B2
说明:
A2为原始数据;
B2为小数点保留位数,例如:1位小数为10,2位小数为100以此类推;
公式复制在C2栏内




补充内容 (2019-3-3 13:42):
=if((A2*power(10,B2)-0.5)/int(A2*power(10,B2))=1,int(A2*power(10,B2))+mod(int(A2*power(10,B2)),2),round(A2,B2)*power(10,B2))/power(10,B2)
A2:原始数据
B2:小数点保留位数,0、1、2、3……

补充内容 (2019-3-3 14:06):
参考31楼:
0位,=IF((A2-0.5)/int(A2)=1,int(A2)+mod(int(A2)),ROUND(A2,0))
1位,=IF((A2*10-0.5)/int(A2*10)=1,int(A2*10)+mod(int(A2*10),2),ROUND(A2,1)*10)/10

补充内容 (2019-3-3 14:08):
2位,=IF((A2*100-0.5)/int(A2*100)=1,int(A2*100)+mod(int(A2*100),2),ROUND(A2,2)*100)/100
3位,=IF((A2*1000-0.5)/int(A2*1000)=1,int(A2*1000)+mod(int(A2*1000),2),ROUND(A2,3)*1000)/1000

补充内容 (2019-3-3 14:08):
以此类推,欢迎测试

补充内容 (2019-3-3 14:19):
再次简化,这样应该没Bug了,31楼的思路很巧妙啊
0位:=IF(MOD((A1-0.5),2)=1,ROUND(A1,0),A1-0.5)
1位:=IF(MOD((10*A1-0.05),2)=1,ROUND(A1,1),A1-0.05)
2位:=IF(MOD((100*A1-0.005),2)=1,ROUND(A1,1),A1-0.005)

补充内容 (2019-3-3 14:20):
3位:=IF(MOD((1000*A1-0.0005),2)=1,ROUND(A1,1),A1-0.0005)
4位:=IF(MOD((10000*A1-0.00005),2)=1,ROUND(A1,1),A1-0.00005)

补充内容 (2019-3-3 14:39):
round后面的参数忘改了,依次为:round(A1,0),round(A1,1),round(A1,2),round(A1,3),round(A1,4)

补充内容 (2019-3-3 14:55):
测试了,不行,再研究研究吧

补充内容 (2019-3-3 15:34):
还是用这个吧=if((A2*power(10,B2)-0.5)/int(A2*power(10,B2))=1,int(A2*power(10,B2))+mod(int(A2*power(10,B2)),2),round(A2,B2)*power(10,B2))/power(10,B2)
A2:原始数据
B2:小数点保留位数,0、1、2、3……
微信图片_20190226193808.png
回复

使用道具 举报

发表于 2019-3-1 16:16:30 | 显示全部楼层
以修约A1中的数据为例:
保留至个位:=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))
以此类推。
回复

使用道具 举报

药徒
 楼主| 发表于 2019-3-3 15:50:58 | 显示全部楼层
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*10)=1,int(A2*10)+mod(int(A2*10),2),round(A2*10,0))/10
2位小数:=if((A2*100-0.5)/int(A2*100)=1,int(A2*100)+mod(int(A2*100),2),round(A2*100,0))/100
3位小数:=if((A2*1000-0.5)/int(A2*1000)=1,int(A2*1000)+mod(int(A2*1000),2),round(A2*1000,0))/1000
4位小数:=if((A2*10000-0.5)/int(A2*10000)=1,int(A2*10000)+mod(int(A2*10000),2),round(A2*10000,0))/10000
A2为需要处理的数据
这回应该没问题了,等测试完了再补充吧
回复

使用道具 举报

药徒
 楼主| 发表于 2019-2-26 19:47:24 | 显示全部楼层
可以把B列拖到其他位置隐藏起来
回复

使用道具 举报

药徒
发表于 2019-2-26 19:55:42 | 显示全部楼层
谢谢分享 ,高手啊
回复

使用道具 举报

药徒
 楼主| 发表于 2019-2-26 20:00:20 | 显示全部楼层
gproe 发表于 2019-2-26 19:55
谢谢分享 ,高手啊

乱写的,估计能简化,希望别被喷
回复

使用道具 举报

发表于 2019-2-26 20:39:28 | 显示全部楼层
谢谢分享,期望发布更多有用的公式
回复

使用道具 举报

发表于 2019-2-26 20:41:40 | 显示全部楼层
if((A2*B2-0.5)/int(A2*B2)=1,这块为啥这样设计呢
回复

使用道具 举报

药仙
发表于 2019-2-26 20:44:01 | 显示全部楼层
好高端的样子
回复

使用道具 举报

药徒
 楼主| 发表于 2019-2-26 21:17:40 | 显示全部楼层
试过A2*B2-int(A2*B2)=0.5,但初次写完了还好,但复制公式后就出错,也不知道怎么回事,难道是Excel的Bug?
回复

使用道具 举报

药徒
 楼主| 发表于 2019-2-26 21:19:12 | 显示全部楼层
Sunny-xixi 发表于 2019-2-26 20:41
if((A2*B2-0.5)/int(A2*B2)=1,这块为啥这样设计呢


试过A2*B2-int(A2*B2)=0.5,但初次写完了还好,但复制公式后就出错,也不知道怎么回事,难道是Excel的Bug?
回复

使用道具 举报

发表于 2019-2-27 07:54:30 | 显示全部楼层
试过没问题
回复

使用道具 举报

药徒
发表于 2019-2-27 08:12:58 | 显示全部楼层
回复

使用道具 举报

药徒
发表于 2019-2-27 08:30:48 | 显示全部楼层
赞,厉害了,宏验证起来太麻烦
回复

使用道具 举报

药徒
发表于 2019-2-27 08:32:32 | 显示全部楼层
感谢分享,特别好用
回复

使用道具 举报

药徒
发表于 2019-2-27 08:32:47 | 显示全部楼层
牛B,不催不黑
回复

使用道具 举报

药徒
发表于 2019-2-27 08:52:09 | 显示全部楼层
回复

使用道具 举报

发表于 2019-2-27 08:55:30 | 显示全部楼层
这个不会,学习
回复

使用道具 举报

药徒
 楼主| 发表于 2019-2-27 12:39:46 | 显示全部楼层
群友们有啥需要Excel编公式解决的可以交流交流,闲来无事可以瞎琢磨琢磨
回复

使用道具 举报

药徒
发表于 2019-2-27 15:57:13 | 显示全部楼层
楼主继续分享,坐等验证数据表,做个懒人,
回复

使用道具 举报

药徒
发表于 2019-2-27 17:04:20 | 显示全部楼层
高手,顶楼主。
回复

使用道具 举报

发表于 2019-2-27 20:37:08 | 显示全部楼层
借鉴学习,谢谢分享
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-10 12:56

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

Copyright © 2001-2020, Tencent Cloud.

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