計量論壇

標題: 四舍六入五成雙EXCEL實現 [打印本頁]

作者: wangyiyong7703    時間: 2023-2-22 16:59
標題: 四舍六入五成雙EXCEL實現
=IF(MID(A2,FIND(".",A2,1)+B2+1,1)*1<5,LEFT(A2,B2+FIND(".",A2,1)),IF(AND(MID(A2,FIND(".",A2,1)+B2+1,1)*1=5,RIGHT(A2,LEN(A2)-FIND(".",A2,1)-B2)*1=5*POWER(10,LEN(A2)-FIND(".",A2,1)-B2-1),INT(MID(A2,FIND(".",A2,1)+B2,1)*1/2)=MID(A2,FIND(".",A2,1)+B2,1)*1/2),LEFT(A2,B2+FIND(".",A2,1)),LEFT(A2,B2+FIND(".",A2,1))*1+POWER(10,-B2)))

解析:
A2存有待修約值,
B2存有修約小數點保留位數N,
邏輯:如果小數點后第N+1位數字小于5 則結果為不進位;
         如果小數點后第N+1位數字等于5 且第N數數字為偶數則結果為不進位
         否則結果全部進位。


返回進位結果LEFT(A2,B2+FIND(".",A2,1))*1+POWER(10,-B2),
返回不進位結果LEFT(A2,B2+FIND(".",A2,1))
不進位條件:
     小數點N+1位數字MID(A2,FIND(".",A2,1)+B2+1,1)*1小于5;
     小數點N+1位數字MID(A2,FIND(".",A2,1)+B2+1,1)*1等于5,且后面全為0的
     條件RIGHT(A2,LEN(A2)-FIND(".",A2,1)-B2)*1=5*POWER(10,LEN(A2)-FIND(".",A2,1)-B2-1);         

進位條件:不進位便是進位。

附:
奇偶判定:INT(MID(A2,FIND(".",A2,1)+B2,1)*1/2)=MID(A2,FIND(".",A2,1)+B2,1)*1/2),成立為偶數
進位后:加數值POWER(10,-B2)
小數點從左到右所在位置:FIND(".",A2,1)

四舍六入五成雙在excel的實現.xlsx

9.43 KB, 下載次數: 93, 下載積分: 金幣 -1

C3是運算結果


作者: wangyiyong7703    時間: 2023-2-22 22:04
還有有效數字,里面公式太復雜了,就不作解析了。

四舍六入五成雙在excel的實現.xlsx

13.6 KB, 下載次數: 35, 下載積分: 金幣 -1


作者: frank001    時間: 2023-2-23 13:38
謝謝你的分享!
作者: wangyiyong7703    時間: 2023-2-23 15:16
frank001 發表于 2023-2-23 13:38
謝謝你的分享!

k7,原創作品,多多提意見,后期好改進
作者: NMR    時間: 2023-2-23 21:59

謝謝你的分享!
作者: 馮貴林    時間: 2023-2-24 08:23
怎么把它運用到自己的證書模板的數據處理過程中呢
作者: 錫林郭勒    時間: 2023-2-24 08:43
這可以解決好多問題,
作者: lreplay    時間: 2023-2-24 11:37
看不懂,但是大受震撼……
作者: frank001    時間: 2023-2-24 13:09
wangyiyong7703 發表于 2023-2-23 15:16
k7,原創作品,多多提意見,后期好改進

公式還有一個能改進的點,小數點后面最后一位為0時,小數位保留就會出現異常
作者: 五路車    時間: 2023-2-24 14:59
先進的科學技術,提高生產力水平,不錯
作者: stacay    時間: 2023-2-24 17:56
本帖最后由 stacay 于 2023-2-24 18:04 編輯

如果數據大于0.1可以用下面的公式。小于0.1就不大適用了。

假如原始數據在A1,則在B1或C1或D1其他列中輸入以下
=IF(TRUNC(MOD(ABS(A1*POWER(10,2)),2),2)=0.5,ROUNDDOWN(A1,2),ROUND(A1,2))

如果數據不在A1處,如在B1處,則需要把公式里的A1改成B1即可,照此類推
上面公式給出的是保留2位小數,如果保留3位,就把2改成3,保留0位則改成0,保留十位-1,百位-2,照此類推
=IF(TRUNC(MOD(ABS(A1*POWER(10,2)),2),2)=0.5,ROUNDDOWN(A1,2),ROUND(A1,2))

作者: wangyiyong7703    時間: 2023-2-24 21:10
frank001 發表于 2023-2-24 13:09
公式還有一個能改進的點,小數點后面最后一位為0時,小數位保留就會出現異常 ...

有改進版,這個只是初稿
作者: wangyiyong7703    時間: 2023-2-24 21:10
馮貴林 發表于 2023-2-24 08:23
怎么把它運用到自己的證書模板的數據處理過程中呢

好弄注意引用即可
作者: wangyiyong7703    時間: 2023-2-24 21:45
stacay 發表于 2023-2-24 17:56
如果數據大于0.1可以用下面的公式。小于0.1就不大適用了。

假如原始數據在A1,則在B1或C1或D1其他列中輸入 ...

連續0和連續9就失效,好多文獻的公司也是這樣的,連續9正在想辦法,連續0沒有問題


作者: wangyiyong7703    時間: 2023-2-25 15:13
漏洞補好,1以下不含1,=IF(IFERROR(FIND(REPT("9",B2),A2,1),1)=3,("1."&REPT("0",B2-1)),IF(IFERROR(FIND(REPT("9",B2),(LEFT(A2,FIND(".",A2,1))&RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1))),1),1)=3,IF((LEFT(A2,FIND(".",A2,1))&RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)))*1<("0."&REPT("9",B2)&"5")*1,("0."&REPT("0",INT(ABS(LOG(A2))))&REPT("9",B2)),("0." & REPT("0",INT(ABS(LOG(A2)))-1)&"1"& REPT("0",B2-1))),IF(OR(LEFT(RIGHT(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)),LEN(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)))-B2-2),1)*1<5,AND(5&REPT("0",LEN(RIGHT(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)),LEN(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)))-B2-2))-1)=RIGHT(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)),LEN(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)))-B2-2),ISEVEN(RIGHT(LEFT(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)),B2+2),1)*1))),ROUNDDOWN(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)),B2),ROUNDUP(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)),B2))/POWER(10,INT(ABS(LOG(A2)))) & REPT("0",B2+INT(ABS(LOG(A2)))-IF(ROUNDUP(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)),B2)=1,1,INT(ABS(LOG(A2)))-2)-LEN(IF(OR(LEFT(RIGHT(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)),LEN(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)))-B2-2),1)*1<5,AND(5&REPT("0",LEN(RIGHT(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)),LEN(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)))-B2-2))-1)=RIGHT(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)),LEN(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)))-B2-2),ISEVEN(RIGHT(LEFT(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)),B2+2),1)*1))),ROUNDDOWN(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)),B2),ROUNDUP(LEFT(A2,FIND(".",A2,1)) & RIGHT(A2,LEN(A2)-INT(ABS(LOG(A2)))-FIND(".",A2,1)),B2))))))
作者: wangyiyong7703    時間: 2023-2-25 15:17
frank001 發表于 2023-2-24 13:09
公式還有一個能改進的點,小數點后面最后一位為0時,小數位保留就會出現異常 ...

請您親測一下,多提提意見,原創不易
作者: wangyiyong7703    時間: 2023-2-25 15:17
stacay 發表于 2023-2-24 17:56
如果數據大于0.1可以用下面的公式。小于0.1就不大適用了。

假如原始數據在A1,則在B1或C1或D1其他列中輸入 ...

請您親測一下,多提提意見,原創不易
作者: wangyiyong7703    時間: 2023-2-25 16:04
大于1的公式,目前10的N次方沒有弄,=IF(AND(IFERROR(FIND(REPT("9",C2),(A2/POWER(10,INT(LOG(A2))+1)),1),1)=3,(A2/POWER(10,INT(LOG(A2))+1))*1<("0."&REPT("9",C2)&"5")*1),("0."&REPT("9",C2)),IF(AND(IFERROR(FIND(REPT("9",C2),(A2/POWER(10,INT(LOG(A2))+1))*1,1),1)=3,OR((A2/POWER(10,INT(LOG(A2))+1))*1>("0."&REPT("9",C2)&"5")*1,(A2/POWER(10,INT(LOG(A2))+1))*1=("0."&REPT("9",C2)&"5")*1)),("1."&REPT("0",C2-1)),IF(IFERROR(FIND(REPT("9",C2),(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1))&RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1))),1),1)=3,IF((LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1))&RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)))*1<("0."&REPT("9",C2)&"5")*1,("0."&REPT("0",INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1))))))&REPT("9",C2)),("0." & REPT("0",INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-1)&"1"& REPT("0",C2-1))),IF(OR(LEFT(RIGHT(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)),LEN(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)))-C2-2),1)*1<5,AND(5&REPT("0",LEN(RIGHT(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)),LEN(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)))-C2-2))-1)=RIGHT(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)),LEN(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)))-C2-2),ISEVEN(RIGHT(LEFT(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)),C2+2),1)*1))),ROUNDDOWN(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)),C2),ROUNDUP(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)),C2))/POWER(10,INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))) & REPT("0",C2+INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-IF(ROUNDUP(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)),C2)=1,1,INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-2)-LEN(IF(OR(LEFT(RIGHT(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)),LEN(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)))-C2-2),1)*1<5,AND(5&REPT("0",LEN(RIGHT(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)),LEN(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)))-C2-2))-1)=RIGHT(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)),LEN(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)))-C2-2),ISEVEN(RIGHT(LEFT(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)),C2+2),1)*1))),ROUNDDOWN(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)),C2),ROUNDUP(LEFT((A2/POWER(10,INT(LOG(A2))+1)),FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)) & RIGHT((A2/POWER(10,INT(LOG(A2))+1)),LEN((A2/POWER(10,INT(LOG(A2))+1)))-INT(ABS(LOG((A2/POWER(10,INT(LOG(A2))+1)))))-FIND(".",(A2/POWER(10,INT(LOG(A2))+1)),1)),C2)))))))*POWER(10,INT(LOG(A2))+1)
作者: myoliveryong    時間: 2023-2-25 20:04
wangyiyong7703 發表于 2023-2-25 16:04
大于1的公式,目前10的N次方沒有弄,=IF(AND(IFERROR(FIND(REPT("9",C2),(A2/POWER(10,INT(LOG(A2))+1)),1) ...

你為啥要來計量,不去IT?還是從IT過來的?
作者: Ming1212    時間: 2023-2-26 10:10
謝謝你的分享!
作者: wangyiyong7703    時間: 2023-2-26 12:47
有效數位,補全A2輸待修約值,B2輸入有效數位,C2輸入公式IF(IFERROR(FIND(".",A2,1),0)=0,"",RIGHT(A2,LEN(A2)-IFERROR(FIND(".",A2,1),0)));D2輸入公式:IF(INT(LOG(A2))<-1,(IF(TRUNC(A2)=0,"",TRUNC(A2))&C2)*1,IF(TRUNC(A2)=0,"",TRUNC(A2))&C2);結果顯示公式:IF(LEN((LEFT(D2,B2)+IF(OR(LEFT(RIGHT(D2,LEN(D2)-B2),1)*1<5,AND(ISEVEN(MID(D2,B2,1)),("5"&REPT("0",LEN(RIGHT(D2,LEN(D2)-B2))-1))-RIGHT(D2,LEN(D2)-B2)=0)),0,1)))=1,(LEFT(D2,B2)+IF(OR(LEFT(RIGHT(D2,LEN(D2)-B2),1)*1<5,AND(ISEVEN(MID(D2,B2,1)),("5"&REPT("0",LEN(RIGHT(D2,LEN(D2)-B2))-1))-RIGHT(D2,LEN(D2)-B2)=0)),0,1)),LEFT((LEFT(D2,B2)+IF(OR(LEFT(RIGHT(D2,LEN(D2)-B2),1)*1<5,AND(ISEVEN(MID(D2,B2,1)),("5"&REPT("0",LEN(RIGHT(D2,LEN(D2)-B2))-1))-RIGHT(D2,LEN(D2)-B2)=0)),0,1)),1)&"."&IF((LEN(LEFT(D2,B2))-LEN((LEFT(D2,B2)+IF(OR(LEFT(RIGHT(D2,LEN(D2)-B2),1)*1<5,AND(ISEVEN(MID(D2,B2,1)),("5"&REPT("0",LEN(RIGHT(D2,LEN(D2)-B2))-1))-RIGHT(D2,LEN(D2)-B2)=0)),0,1))))=0,RIGHT((LEFT(D2,B2)+IF(OR(LEFT(RIGHT(D2,LEN(D2)-B2),1)*1<5,AND(ISEVEN(MID(D2,B2,1)),("5"&REPT("0",LEN(RIGHT(D2,LEN(D2)-B2))-1))-RIGHT(D2,LEN(D2)-B2)=0)),0,1)),LEN((LEFT(D2,B2)+IF(OR(LEFT(RIGHT(D2,LEN(D2)-B2),1)*1<5,AND(ISEVEN(MID(D2,B2,1)),("5"&REPT("0",LEN(RIGHT(D2,LEN(D2)-B2))-1))-RIGHT(D2,LEN(D2)-B2)=0)),0,1)))-1),LEFT(RIGHT((LEFT(D2,B2)+IF(OR(LEFT(RIGHT(D2,LEN(D2)-B2),1)*1<5,AND(ISEVEN(MID(D2,B2,1)),("5"&REPT("0",LEN(RIGHT(D2,LEN(D2)-B2))-1))-RIGHT(D2,LEN(D2)-B2)=0)),0,1)),LEN((LEFT(D2,B2)+IF(OR(LEFT(RIGHT(D2,LEN(D2)-B2),1)*1<5,AND(ISEVEN(MID(D2,B2,1)),("5"&REPT("0",LEN(RIGHT(D2,LEN(D2)-B2))-1))-RIGHT(D2,LEN(D2)-B2)=0)),0,1)))-1),LEN(RIGHT((LEFT(D2,B2)+IF(OR(LEFT(RIGHT(D2,LEN(D2)-B2),1)*1<5,AND(ISEVEN(MID(D2,B2,1)),("5"&REPT("0",LEN(RIGHT(D2,LEN(D2)-B2))-1))-RIGHT(D2,LEN(D2)-B2)=0)),0,1)),LEN((LEFT(D2,B2)+IF(OR(LEFT(RIGHT(D2,LEN(D2)-B2),1)*1<5,AND(ISEVEN(MID(D2,B2,1)),("5"&REPT("0",LEN(RIGHT(D2,LEN(D2)-B2))-1))-RIGHT(D2,LEN(D2)-B2)=0)),0,1)))-1))-1))&IF(INT(LOG(A2))-(LEN(LEFT(D2,B2))-LEN((LEFT(D2,B2)+IF(OR(LEFT(RIGHT(D2,LEN(D2)-B2),1)*1<5,AND(ISEVEN(MID(D2,B2,1)),("5"&REPT("0",LEN(RIGHT(D2,LEN(D2)-B2))-1))-RIGHT(D2,LEN(D2)-B2)=0)),0,1))))=0,""," E "&INT(LOG(A2))-(LEN(LEFT(D2,B2))-LEN((LEFT(D2,B2)+IF(OR(LEFT(RIGHT(D2,LEN(D2)-B2),1)*1<5,AND(ISEVEN(MID(D2,B2,1)),("5"&REPT("0",LEN(RIGHT(D2,LEN(D2)-B2))-1))-RIGHT(D2,LEN(D2)-B2)=0)),0,1))))))
作者: dxquan    時間: 2023-2-26 13:50
一個字“牛”
作者: xuhuilai    時間: 2023-2-27 08:48
牛啊,大佬。
作者: nn141008    時間: 2023-2-27 11:09
大寫的牛!!
作者: wangyiyong7703    時間: 2023-2-27 14:13
有效數字大于1,求公式可在附件中下載。已更新。如有好的意見和建議,請發貼。

四舍六入五成雙在excel(不再更新).xlsx

27.31 KB, 下載次數: 13, 下載積分: 金幣 -1


作者: alin72    時間: 2023-2-27 14:23
太牛了。公式我看著都頭暈
作者: stacay    時間: 2023-2-27 15:30
wangyiyong7703 發表于 2023-2-25 15:17
請您親測一下,多提提意見,原創不易

EXCEL受限于浮點運算機制,是比較難處理 的。
作者: yshf530    時間: 2023-2-27 15:58
謝謝你的分享,用心了
作者: wangyiyong7703    時間: 2023-2-27 17:05
stacay 發表于 2023-2-27 15:30
EXCEL受限于浮點運算機制,是比較難處理 的。

確實碰到這種情況,改變了思路,才破解了。很不容易。不用宏程序解決確實太難了。我用宏程序測試過,目前還沒有發現異常,宏程序在文件里面。可運行

四舍六入五成雙在excel(不再更新).xlsx

27.31 KB, 下載次數: 28, 下載積分: 金幣 -1

下載這個看一哈


作者: 22063974    時間: 2023-3-1 09:52
非常好用的,謝謝,這是編程界的來到了計量領域
作者: Maybeanyou    時間: 2023-3-1 13:56
謝謝,幫大忙了
作者: 26826768    時間: 2023-3-1 14:40
牛啊!這個數據處理太牛了

作者: 于是乎    時間: 2023-3-1 15:43
謝謝你的分享,真是太牛了。
作者: azthankyou    時間: 2023-3-9 19:02
厲害了!我的哥!
作者: wangyiyong7703    時間: 2023-9-16 00:46
A2 輸入待修約數,B2輸入小數點,C2輸入公式


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))))
作者: wangyiyong7703    時間: 2023-9-16 01:01
A2輸入待修約數字,B2輸入保留小數點位數,C2輸入公式

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)))))
作者: 唐家琨少    時間: 2023-12-15 16:48
大佬思路太牛了,看了一下都是用很基礎的excel公式解決的,這個應該就不存在文件轉發給別人之后會因為office不一樣或者對方用WPS打開而失效了。
作者: wangyiyong7703    時間: 2023-12-19 15:50
唐家琨少 發表于 2023-12-15 16:48
大佬思路太牛了,看了一下都是用很基礎的excel公式解決的,這個應該就不存在文件轉發給別人之后會因為offic ...

關注之我后,還有更新的你可以看一哈其他的。用VB做過。現在做的這個還是有漏洞
作者: allene    時間: 2023-12-25 08:21
謝謝你的分享
作者: zzylyau126    時間: 2023-12-25 11:06
這個厲害!條件太多,復雜
作者: redxsnake    時間: 2023-12-28 16:17
講的很好,受益匪淺!學習了
作者: yuanxu2021    時間: 2024-11-16 11:07
感謝樓主分享!
作者: ge1422915514    時間: 2024-11-16 11:35

高級,提高生產力水平,不錯
作者: a7835209    時間: 2024-11-29 10:14
感謝樓主分享!下載學習了





歡迎光臨 計量論壇 (http://www.bkd208.com/) Powered by Discuz! X3.4
主站蜘蛛池模板: 性欧美video视频另类| 免费观看黄a一级视频日本| 天天看片日日夜夜| 欧洲精品一卡2卡三卡4卡乱码| 视频在线免费观看资源| 亚洲视频在线网| 国产欧美高清在线观看| 在线播放无码高潮的视频| 日本免费一区二区三区高清视频| 男的把j伸进女人p图片动态| 99精品中文字幕| 久久99国产精品久久99| 亚洲大片免费观看| 人妻少妇AV中文字幕乱码| 国产一区在线播放| 国产在线98福利播放视频免费| 国产香港日本三级在线观看| 婷婷人人爽人人做人人添| 无遮挡h肉动漫网站| 日韩夜夜高潮夜夜爽无码| 母子俩肥水不流外人田| 男女免费观看在线爽爽爽视频 | 亚洲图片欧美日韩| 国产影片中文字幕| 女性成人毛片a级| 欧美亚洲国产精品久久高清| 青青青手机视频| 中文字幕在线精品| 亚洲欧美精品一区天堂久久 | 男女做性猛烈叫床视频免费| eeuss免费影院| 久久综合九色综合网站| 午夜无码国产理论在线| 国产精品视频白浆免费视频| 无限资源视频手机在线观看| 欧美老少配xxxxx| 色狠狠一区二区三区香蕉蜜桃| 99在线精品视频在线观看| 久久国产精品免费| 亚洲成av人片在线观看无码不卡| 国产一区二区三区不卡免费观看|