計(jì)量論壇

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
打印 上一主題 下一主題

[數(shù)據(jù)] 四舍六入函數(shù)模板

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
sunrry 發(fā)表于 2021-7-28 09:11:42 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本人根據(jù)四舍六入奇進(jìn)偶不進(jìn)原則,利用vba做了個(gè)自定義的函數(shù),希望對(duì)大家有用。
函數(shù)語音是    Round2(被修約數(shù)據(jù),小數(shù)位數(shù))
例如把3.45修約保留一位小數(shù),就是    =round(3.45,1)
此表格嵌套了vba,所以只能在此表中進(jìn)行操作。

四舍六入函數(shù)模板.zip

11.59 KB, 下載次數(shù): 114, 下載積分: 金幣 -1

2#
 樓主| sunrry 發(fā)表于 2021-7-28 09:16:21 | 只看該作者
此函數(shù)利用vba,極大精簡了使用函數(shù)的復(fù)雜計(jì)算步驟。同時(shí)有別于目前發(fā)表論文中的方法(本人已發(fā)),能有效去除excel中浮點(diǎn)誤差的影響。目前其他方法基本上都是根據(jù)小數(shù)點(diǎn)后七位數(shù)字大小判斷進(jìn)行去除浮點(diǎn)誤差,本方法通過強(qiáng)制轉(zhuǎn)換十進(jìn)制解決浮點(diǎn)誤差。
3#
alickglyn 發(fā)表于 2021-7-28 15:45:01 | 只看該作者
一行excel函數(shù)解決,=ROUND(A1,a)-(MOD(A1*10^(a+1),20)=5)*10^(-a),A1是需要修約的數(shù)的單元格,a為修約位數(shù)。
4#
 樓主| sunrry 發(fā)表于 2021-7-29 08:42:22 | 只看該作者
alickglyn 發(fā)表于 2021-7-28 15:45
一行excel函數(shù)解決,=ROUND(A1,a)-(MOD(A1*10^(a+1),20)=5)*10^(-a),A1是需要修約的數(shù)的單元格,a為修約位 ...

第一,麻煩,每次都要替換,尤其是有時(shí)候公式嵌套公式,就更復(fù)雜了
第二,excel小數(shù)存在浮點(diǎn)誤差影響,這個(gè)公式有誤判。
第三,你這個(gè)負(fù)數(shù)修約結(jié)果是錯(cuò)的
5#
唐家琨少 發(fā)表于 2021-7-29 09:15:58 | 只看該作者
謝謝樓主的分享,最近也在開始自學(xué)用宏,正好用你的來學(xué)習(xí)下。
vba版的確實(shí)好用,不過用宏的話,當(dāng)表格傳到別的電腦很有可能就會(huì)失效啊。有很多電腦的excel默認(rèn)禁用了宏。
6#
 樓主| sunrry 發(fā)表于 2021-7-29 11:48:22 | 只看該作者
唐家琨少 發(fā)表于 2021-7-29 09:15
謝謝樓主的分享,最近也在開始自學(xué)用宏,正好用你的來學(xué)習(xí)下。
vba版的確實(shí)好用,不過用宏的話,當(dāng)表格傳到 ...

取消禁止就可以用了。
7#
烏拉辣拉 發(fā)表于 2021-7-29 13:41:15 | 只看該作者
學(xué)習(xí)一下,很有幫助
8#
 樓主| sunrry 發(fā)表于 2021-7-30 12:32:35 | 只看該作者
大家有方便實(shí)用的工具也可以互相交流一下啊
9#
連長 發(fā)表于 2021-7-30 15:05:15 | 只看該作者
修約間隔為10,你這函數(shù)就扒瞎了
10#
 樓主| sunrry 發(fā)表于 2021-8-10 12:12:51 | 只看該作者
連長 發(fā)表于 2021-7-30 15:05
修約間隔為10,你這函數(shù)就扒瞎了

修約間隔為5和10的可以再搞個(gè)函數(shù),或者直接拿這個(gè)數(shù)除相應(yīng)的數(shù)以后修約再乘回來
11#
 樓主| sunrry 發(fā)表于 2021-8-10 12:13:12 | 只看該作者
excel里面的修約函數(shù)也沒有2間隔、5間隔之類的
12#
連長 發(fā)表于 2021-8-11 08:47:36 | 只看該作者
可以按照規(guī)則,結(jié)合excel的數(shù)據(jù)處理,自己寫個(gè)function,費(fèi)點(diǎn)勁,但不難。

修約間隔.png (89.79 KB, 下載次數(shù): 846)

修約間隔.png
13#
 樓主| sunrry 發(fā)表于 2021-8-11 11:45:05 | 只看該作者
難者不會(huì)  會(huì)者不難
14#
wangyiyong7703 發(fā)表于 2023-9-18 18:32:41 | 只看該作者
特殊情況適應(yīng)了么,3.001,8.9999。還是用了編程,要全部用內(nèi)建函數(shù)。編程可以把很多漏洞補(bǔ)上
15#
wangyiyong7703 發(fā)表于 2023-9-18 18:34:09 | 只看該作者

A2輸入待修約數(shù)值,B2輸入保留小數(shù)點(diǎn)位數(shù),C2輸入公式。對(duì)9.9999多的情況不適用,還待改進(jìn)

IF(B2=0,IF(OR(AND(ISEVEN(INT(A2)),A2-INT(A2)=0.5),A2-INT(A2)<0.5),INT(A2),INT(A2)+1),IF(LEN(IF(OR(AND(ISEVEN(INT(A2*POWER(10,B2))),A2*POWER(10,B2)-INT(A2*POWER(10,B2))=0.5),A2*POWER(10,B2)-INT(A2*POWER(10,B2))<0.5),INT(A2*POWER(10,B2))/POWER(10,B2),(INT(A2*POWER(10,B2))+1)/POWER(10,B2)))=LEN(INT(A2)),IF(OR(AND(ISEVEN(INT(A2*POWER(10,B2))),A2*POWER(10,B2)-INT(A2*POWER(10,B2))=0.5),A2*POWER(10,B2)-INT(A2*POWER(10,B2))<0.5),INT(A2*POWER(10,B2))/POWER(10,B2),(INT(A2*POWER(10,B2))+1)/POWER(10,B2))&"."&REPT("0",B2),IF(LEN(INT(A2*POWER(10,B2)))+1>LEN((IF(OR(AND(ISEVEN(INT(A2*POWER(10,B2))),A2*POWER(10,B2)-INT(A2*POWER(10,B2))=0.5),A2*POWER(10,B2)-INT(A2*POWER(10,B2))<0.5),INT(A2*POWER(10,B2))/POWER(10,B2),(INT(A2*POWER(10,B2))+1)/POWER(10,B2)))),(IF(OR(AND(ISEVEN(INT(A2*POWER(10,B2))),A2*POWER(10,B2)-INT(A2*POWER(10,B2))=0.5),A2*POWER(10,B2)-INT(A2*POWER(10,B2))<0.5),INT(A2*POWER(10,B2))/POWER(10,B2),(INT(A2*POWER(10,B2))+1)/POWER(10,B2)))&REPT("0",LEN(INT(A2*POWER(10,B2)))-1-LEN((IF(OR(AND(ISEVEN(INT(A2*POWER(10,B2))),A2*POWER(10,B2)-INT(A2*POWER(10,B2))=0.5),A2*POWER(10,B2)-INT(A2*POWER(10,B2))<0.5),INT(A2*POWER(10,B2))/POWER(10,B2),(INT(A2*POWER(10,B2))+1)/POWER(10,B2))))),IF(OR(AND(ISEVEN(INT(A2*POWER(10,B2))),A2*POWER(10,B2)-INT(A2*POWER(10,B2))=0.5),A2*POWER(10,B2)-INT(A2*POWER(10,B2))<0.5),INT(A2*POWER(10,B2))/POWER(10,B2),(INT(A2*POWER(10,B2))+1)/POWER(10,B2)))))
16#
 樓主| sunrry 發(fā)表于 2023-9-22 14:57:15 | 只看該作者
wangyiyong7703 發(fā)表于 2023-9-18 18:34
A2輸入待修約數(shù)值,B2輸入保留小數(shù)點(diǎn)位數(shù),C2輸入公式。對(duì)9.9999多的情況不適用,還待改進(jìn)

IF(B2=0,IF(OR ...

你不覺得你的公式很麻煩么。。。。
17#
wangyiyong7703 發(fā)表于 2023-9-22 17:11:10 | 只看該作者
sunrry 發(fā)表于 2023-9-22 14:57
你不覺得你的公式很麻煩么。。。。

開始設(shè)計(jì)有點(diǎn)麻煩而已,你直接復(fù)制使用有什么麻煩的。如果你用宏去做才真的麻煩。這個(gè)公式避開了宏代碼,也相當(dāng)于宏代碼
18#
 樓主| sunrry 發(fā)表于 2023-9-25 13:21:15 | 只看該作者
wangyiyong7703 發(fā)表于 2023-9-22 17:11
開始設(shè)計(jì)有點(diǎn)麻煩而已,你直接復(fù)制使用有什么麻煩的。如果你用宏去做才真的麻煩。這個(gè)公式避開了宏代碼, ...

對(duì)對(duì)對(duì),你說的都對(duì)。
19#
wangyiyong7703 發(fā)表于 2023-10-2 13:05:28 | 只看該作者

IF(OR(AND(ISEVEN(MID(A2,FIND(".",A2)+B2,1)*1),MID(A2,FIND(".",A2)+B2+1,1)="5",IFERROR(RIGHT(A2,LEN(A2)-FIND(".",A2)-B2-1)*1,0)=0),MID(A2,FIND(".",A2)+B2+1,1)*1<5),LEFT(A2,FIND(".",A2,1)+B2),IF(IFERROR(FIND(".",LEFT(A2,FIND(".",A2,1)*1+B2)*1+IF(A2*1<0,-1,1)/POWER(10,B2),1),0)=0,LEFT(A2,FIND(".",A2,1)*1+B2)*1+IF(A2*1<0,-1,1)/POWER(10,B2)&"."&REPT("0",B2),LEFT(A2,FIND(".",A2,1)*1+B2)*1+IF(A2*1<0,-1,1)/POWER(10,B2)&REPT("0",B2-(LEN(LEFT(A2,FIND(".",A2,1)*1+B2)*1+IF(A2*1<0,-1,1)/POWER(10,B2))-IFERROR(FIND(".",LEFT(A2,FIND(".",A2,1)*1+B2)*1+IF(A2*1<0,-1,1)/POWER(10,B2),1),0)))))
20#
wangyiyong7703 發(fā)表于 2023-10-2 13:06:19 | 只看該作者
sunrry 發(fā)表于 2023-9-25 13:21
對(duì)對(duì)對(duì),你說的都對(duì)。

新的算法做的,麻煩抽空指正一下。
21#
 樓主| sunrry 發(fā)表于 2023-10-7 13:09:06 | 只看該作者
wangyiyong7703 發(fā)表于 2023-10-2 13:06
新的算法做的,麻煩抽空指正一下。

1、小數(shù)點(diǎn)有效位數(shù)為0直接報(bào)錯(cuò)
2、多次計(jì)算后的浮點(diǎn)小數(shù)無法避免,后面一堆錯(cuò)誤。(可以看圖,B2=A2+0.1,C2=B2+0.1,以此類推)
22#
 樓主| sunrry 發(fā)表于 2023-10-7 13:20:27 | 只看該作者
=IF(ABS(ABS(A2/1*10^B2-TRUNC(A2/1,B2)*10^B2)-0.5)<10^-7,CEILING(ABS(TRUNC(A2/1,B2)),2*10^-B2)*SIGN(A2/1)*1,ROUND(A2/1,B2)*1)
23#
wangyiyong7703 發(fā)表于 2023-10-7 15:05:41 | 只看該作者
sunrry 發(fā)表于 2023-10-7 13:09
1、小數(shù)點(diǎn)有效位數(shù)為0直接報(bào)錯(cuò)
2、多次計(jì)算后的浮點(diǎn)小數(shù)無法避免,后面一堆錯(cuò)誤。(可以看圖,B2=A2+0.1, ...

謝謝,,,,,,
24#
wangyiyong7703 發(fā)表于 2023-10-7 15:17:07 | 只看該作者
本帖最后由 wangyiyong7703 于 2023-10-7 15:29 編輯
sunrry 發(fā)表于 2023-10-7 13:20
=IF(ABS(ABS(A2/1*10^B2-TRUNC(A2/1,B2)*10^B2)-0.5)


我設(shè)計(jì)的是保留多少位小數(shù)的,1位以上,不含0位的。0位及以上可以再設(shè)計(jì)。主要是出現(xiàn)整數(shù)后的加零補(bǔ)位。你說的浮點(diǎn)問題具體指出來,我的是沒有的
25#
wangyiyong7703 發(fā)表于 2023-10-7 18:07:26 | 只看該作者
sunrry 發(fā)表于 2023-10-7 13:09
1、小數(shù)點(diǎn)有效位數(shù)為0直接報(bào)錯(cuò)
2、多次計(jì)算后的浮點(diǎn)小數(shù)無法避免,后面一堆錯(cuò)誤。(可以看圖,B2=A2+0.1, ...

我看了一下,不是我要解決浮點(diǎn)問題,是你的輸入本來就有問題,6.94999999999999,不是顯示的6.95

微信圖片_20231007180624.png (14.14 KB, 下載次數(shù): 710)

微信圖片_20231007180624.png
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|Archiver|計(jì)量論壇 ( 閩ICP備06005787號(hào)-1—304所 )
電話:0592-5613810 QQ:473647 微信:gfjlbbs閩公網(wǎng)安備 35020602000072號(hào)

GMT+8, 2025-7-18 18:56

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文在线а√天堂| 韩国福利视频一区二区| 69农夫和老妇重口小说| 草草影院第一页| 欧美精品一二三| 小婷的性放荡日记h交| 国自产拍91大神精品| 台湾三级香港三级经典三在线| 九色综合久久综合欧美97| 99精品国产成人a∨免费看| 美女黄网站人色视频免费国产 | 日本a∨在线播放高清| 理论片高清免费理论片| 打开腿让我添你下面小污文| 国产精品VA在线观看无码不卡 | 六月婷婷综合网| 久久国产乱子伦精品免| 亚洲人配人种jizz| 波多野结衣伦理电影在线观看| 无翼乌无遮挡h肉动漫在线观看| 国产成人精选视频69堂| 亚洲国产成人精品无码区花野真一| eeuss影院在线观看| 精品无码国产自产拍在线观看 | 免费日本三级电影| 中文字幕无码不卡在线| 被民工蹂躏的雯雅婷| 日韩精品免费一线在线观看| 国产精品无码久久综合网| 亚洲激情中文字幕| 99热这里只有精品免费播放| 秋霞黄色一级片| 女神校花乳环调教| 免费看黄色三级毛片| 99re热久久资源最新获取| 波多野结衣电车痴汉| 在线观看成年人| 亚洲狠狠婷婷综合久久蜜芽| 夜夜爽免费视频| 果冻传媒app下载网站| 国产真实伦正在播放|