計量論壇
標題: 保留位數EXCEL實現 [打印本頁]
作者: wangyiyong7703 時間: 2023-9-16 01:00
標題: 保留位數EXCEL實現
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)))))
作者: wangyiyong7703 時間: 2023-9-16 12:39
對9.99999這種情況不適用,還待改進
作者: zcxxwxu 時間: 2023-9-18 16:23
點個贊,點個贊,點個贊,點個贊。
作者: 小阿飛飛 時間: 2023-9-28 15:34
=IF(MOD(ABS(R5*POWER(10,Y5)),2)<=0.5,ROUNDDOWN(R5,Y5),ROUND(R5,Y5))
不用那么麻煩吧我用的是這個
作者: wangyiyong7703 時間: 2023-9-29 12:13
顯然主邏輯程序是對的,但你要考慮特殊情況,在特殊情況下如0.999995,0.100005,您還能得出您想要的答案么。這個問題的難點就是特殊情況BUG,不考慮特殊情況,答案很多。還有浮點問題。好多。但怎樣規避是個問題。
作者: 軒轅夢 時間: 2023-9-30 16:35
感謝分享,下載看看
作者: 路云 時間: 2023-9-30 23:16
本帖最后由 路云 于 2023-9-30 23:53 編輯
其實沒那么復雜,只要建一個自定義函數,應用時直接調用即可。
4舍6入5留雙自定義函數:
Function Yround(ByVal a As Double, Optional ByVal d As integer)
Yround=Round(CDec(a),d)
End Function
注:參數a為傳值型雙精度變量(擬修約數),參數d為可選整型參數(需保留的小數位數)。
如您1樓的例子,只需在A2單元格輸入擬修約數,B2單元格輸入欲保留的小數位數,在C2單元格中直接調用自定義函數(輸入“=Yround(A2, B2)”)即可得到修約結果。無論A2單元格的擬修約數是正數還是負數,都會按自動按照“4舍6入5留雙”的修約規則進行修約。
(, 下載次數: 853)
作者: wangyiyong7703 時間: 2023-10-1 14:12
自定義函數也用到宏代碼,不能這樣操作,一般人用起來不方便
作者: wangyiyong7703 時間: 2023-10-1 14:14
我們的目標是避開宏代碼,完全用內建函數實現
作者: wangyiyong7703 時間: 2023-10-1 14:53
本帖最后由 wangyiyong7703 于 2023-10-1 14:56 編輯
IF(IFERROR(FIND(".",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)),1),0)=0,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(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",IFERROR(FIND(".",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)),1),0)+B2-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)))))
作者: wangyiyong7703 時間: 2023-10-1 14:54
本帖最后由 wangyiyong7703 于 2023-10-1 15:16 編輯
代碼進行了優化
適應范圍更廣,不用宏代碼,完全避開了自定義函數和程序用到宏代碼。
作者: wangyiyong7703 時間: 2023-10-1 15:17
從0.0001到100.0000,全部合格,保留2位小數
作者: 路云 時間: 2023-10-1 20:30
本帖最后由 路云 于 2023-10-1 20:41 編輯
建立自定義函數,目的就是要讓普通用戶能用起來呀。用時就像內部函數一樣調用即可。你鍵入那么復雜的函數都能用,難道鍵入“=Yroug(A2, B2)”還更難?
您這個公式我試了一下,存在以下問題:
-1.035000000,修約結果沒有按照“4舍6入5留雙”的修約規則修約至-1.04,而是修約至-1.03。
(, 下載次數: 842)
作者: wangyiyong7703 時間: 2023-10-1 21:15
公式出現浮點問題,正在改進,新的方法有點問題,
作者: wangyiyong7703 時間: 2023-10-1 21:16
邏輯沒有問題,避開浮點算法已經找到
作者: wangyiyong7703 時間: 2023-10-1 21:17
然后有時候是正常的,兩種情況都有
作者: wangyiyong7703 時間: 2023-10-1 21:41
沒有那容易,必須啟用宏,如果啟用宏,會帶來很多麻煩
作者: wangyiyong7703 時間: 2023-10-1 23:15
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+1/POWER(10,B2),1),0)=0,LEFT(A2,FIND(".",A2,1)*1+B2)*1+1/POWER(10,B2)&"."&REPT("0",B2),LEFT(A2,FIND(".",A2,1)*1+B2)*1+1/POWER(10,B2)&REPT("0",B2-(LEN(LEFT(A2,FIND(".",A2,1)*1+B2)*1+1/POWER(10,B2))-IFERROR(FIND(".",LEFT(A2,FIND(".",A2,1)*1+B2)*1+1/POWER(10,B2),1),0)))))
作者: wangyiyong7703 時間: 2023-10-2 10:02
=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+1/POWER(10,B2),1),0)=0,LEFT(A2,FIND(".",A2,1)*1+B2)*1+1/POWER(10,B2)&"."&REPT("0",B2),LEFT(A2,FIND(".",A2,1)*1+B2)*1+1/POWER(10,B2)&REPT("0",B2-(LEN(LEFT(A2,FIND(".",A2,1)*1+B2)*1+1/POWER(10,B2))-IFERROR(FIND(".",LEFT(A2,FIND(".",A2,1)*1+B2)*1+1/POWER(10,B2),1),0))))) 用的新的算法歡迎指正
作者: wangyiyong7703 時間: 2023-10-2 10:19
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))))) 適合負數修約
作者: 路云 時間: 2023-10-2 22:45
不明白您說的很多麻煩到底是什么麻煩。我們單位在LIMS系統中應用這么多年,從來沒有聽說過遇到什么麻煩。網絡版office安裝時就已經進行了安全設置,自定義函數都放在安全可信路徑下,原始記錄等都已制作成了智能型空白模板,試驗/檢測人員調用模板生成原始記錄的操作非常簡單,對于選擇項只需點擊下拉列表框、復選框、控件等進行選擇,只需錄入檢測數據,所有的數據處理和結果都是自動完成,試驗/檢測人員根本沒有感覺,也無需其他任何操作,完全做成了一種“傻瓜型”的智能Excel模板。
作者: wangyiyong7703 時間: 2023-10-3 07:48
單機版的麻煩,您的網絡版加持當然可以。
作者: 路云 時間: 2023-10-3 11:12
單機版的也一樣,又不要用戶去編輯宏代碼,就像調用普通內部函數一樣。
作者: wangyiyong7703 時間: 2023-10-3 13:53
那您發一個自定義的函數,我用二十多年了,沒見過
作者: 路云 時間: 2023-10-4 08:14
本帖最后由 路云 于 2023-10-4 10:02 編輯
我說的“用戶”,不是指OFFICE用戶,而是指具體填寫原始記錄的檢測/校準人員。如果見過,那就不叫“自定義函數”了。
作者: 路云 時間: 2023-10-4 10:53
(, 下載次數: 877)
(, 下載次數: 810)
作者: wangyiyong7703 時間: 2023-10-5 08:48
謝謝,就是要多找漏洞
作者: wangyiyong7703 時間: 2023-10-5 08:51
=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)))))
作者: wangyiyong7703 時間: 2023-10-5 08:51
您確認是用的我的公式。我這邊正常啊
作者: wangyiyong7703 時間: 2023-10-5 11:45
用這個試試,都是對的
作者: wangyiyong7703 時間: 2023-10-5 11:57
應該是版本的問題
作者: 路云 時間: 2023-10-6 08:51
本帖最后由 路云 于 2023-10-6 12:29 編輯
您的A列的數據格式不是“數字”,而是“文本”,所以才會得出“正常”的假象。
另外,擬修約數和修約后的最終結果,還應該根據實際需要,為其設置顯示格式,如:是否顯示正負號、小數位數,包括條件格式等(如7樓截圖)。
(, 下載次數: 818)
作者: 路云 時間: 2023-10-6 14:07
以下截圖示例中,E列用“4舍5入法”修約保留3位小數的修約結果;F列用“4舍6入5留雙法”(本人7樓提供的自定義函數)修約保留3位小數的修約結果。G列和H列都是用本人提供的自定義函數修約,保留2位小數的最終修約結果。
(, 下載次數: 839)
作者: wangyiyong7703 時間: 2023-10-6 14:11
1.這個當然要用文本格式來弄,電子表格是智能的,默認自動舍去后面的0,相當于修約過,按正常的情況下,是不能這樣操作的。因為用文本格式是必須的。2.您的反例要符合正常的要求,全數的有效位要大于修約后的有效位數。這個可以改進,但沒有必要。您的幾個反例再弄多一點,經典一點
作者: wangyiyong7703 時間: 2023-10-6 14:12
謝謝,后期還請您多提寶貴的反例
作者: wangyiyong7703 時間: 2023-10-6 14:16
正常情況下,一些文獻提供的公式基本上都能滿足,可惜的是特殊情況下是不能滿足的。0.100000009,9.99999999.我的算法正是進行文本操作,避開了浮點的問題。
作者: 路云 時間: 2023-10-6 14:37
1.這個當然要用文本格式來弄,電子表格是智能的,默認自動舍去后面的0,相當于修約過,按正常的情況下,是不能這樣操作的。因為用文本格式是必須的。
這個理由是不成立的。如果是“文本”格式,中間有可能夾雜了其他文本字符,您的公式照樣發現不了,如:
(, 下載次數: 830)
2.您的反例要符合正常的要求,全數的有效位要大于修約后的有效位數。
修約前的全數有效位數多少,完全取決于數據處理的結果(如:多次測量結果的平均值),大于、小于、等于修約后的小數位數都是有可能的。
正常情況下,一些文獻提供的公式基本上都能滿足,可惜的是特殊情況下是不能滿足的。0.100000009,9.99999999.我的算法正是進行文本操作,避開了浮點的問題。
我提供的自定義函數,不存在浮點的問題。
作者: wangyiyong7703 時間: 2023-10-6 18:16
您函數中有相雙精度計算,主要是沒有辦法補位,這個功能比較麻煩。不然的話是很簡單的
作者: 路云 時間: 2023-10-6 19:08
沒看明白什么叫“有相雙精度計算”?您說的“補位”是啥意思?我最初也是與您的想法一樣,想通過您這種方式實現。結果研究了很長時間,也沒有找到一種能夠完全自動識別與控制的方法,而且迭代、嵌套、交叉引用太多,無法做成“傻瓜型”,滿足現場檢測/校準人員的錄入操作需求。最終還是用自定義函數方式解決問題,使過程大為簡化。最終要結合單元格格式、條件格式等設置,實現數據有效性自動識別、敲錄錯誤自動攔截提醒、自動生成符合性判定結論等功能。
作者: wangyiyong7703 時間: 2023-10-6 20:37
這個也是很簡單的,f(x)是公式中要求得的結果,f(x) & "00000"即可,補0即可。我們把主函數寫出來,電腦修約過度然后根據情況進行補位即可。我們是要避開VB,只用內建函數寫
作者: wangyiyong7703 時間: 2023-10-6 20:41
還是要有一定的規范,不可能做一個適用所有情況。否則VB也做不過來。通過規范使用者的操作行為。簡化函數。
作者: 路云 時間: 2023-10-6 22:41
本帖最后由 路云 于 2023-12-15 22:25 編輯
這個也是很簡單的,f(x)是公式中要求得的結果,f(x) & “00000”即可,補0即可。我們把主函數寫出來,電腦修約過度然后根據情況進行補位即可。我們是要避開VB,只用內建函數寫
不需要在公式中用“& 00000”方式補0,只需對修約后的測量結果所在單元格設置數字格式即可實現。
還是要有一定的規范,不可能做一個適用所有情況。否則VB也做不過來。通過規范使用者的操作行為。簡化函數。
通過VBA編制的“4舍6入5留雙修約自定義函數”,本來就是適用于所有數據按此修約規則的修約。就如同求平均值的內部函數“AVERAGE( )”和求和函數“SUM( )”一樣,這么方便、高效的函數您不用,非要逐個數據采取加減乘除四則運算的辦法去求。我也實在是想不明白圖什么?
現場實際操作的檢測/校準人員,對EXCEL的操作技能并不都十分精通,尤其對各種函數的應用、單元格格式的設置、條件格式的應用更是知之甚少,甚至一無所知。VBA本身就是微軟為個性化應用提供的高效應用工具,非常方便。我們不需要把VBA看得如臨大敵,談宏色變,沒那么可怕。我們的目的,就是要根據實際需要編制相應的標準化《原始記錄》模板表單,讓所有不懂EXCEL操作人員,只要會敲入數據,經過幾分鐘的簡單培訓,就能夠掌握、編制、生成每一份數據統一、規范、美觀的《原始記錄》,而且不會出現誤操作(因為所有不讓操作人員編輯的單元格都做了屏蔽設置,未經授權是點不進去的)。
作者: wangyiyong7703 時間: 2023-10-6 23:02
一條一條的駁,高手高手。
作者: wangyiyong7703 時間: 2023-10-6 23:29
麻煩您做一個不用VB的函數,或者完善一個您的函數,0.1000的結果顯示為0.1,我怎么也看不明白。您的函數中如果輸入項有字母,也能智能識別用作數值處理。我說的是我不想用VB這個宏功能。您能行么
補充內容 (2023-10-9 14:46):
您 的公式行么
作者: wangyiyong7703 時間: 2023-10-7 08:45
那麻煩您把你的單機板的excel文件傳到壇子里面,看能否用。我們學習學習
作者: wangyiyong7703 時間: 2023-10-7 15:39
修約表現,兩個公式都有問題,表現不一樣。16-18位,24-27位有異常。VB自定義的公式10位以后就開始一直不中,但要配合高端操作設置格式
作者: 路云 時間: 2023-10-8 17:22
本帖最后由 路云 于 2023-10-8 17:41 編輯
1、我的自定義函數(見7樓)您不是已經試用了嗎,單機版與網絡版都能用,只是要將文件另存為“Excel啟用宏的模板(*.xltm)”即可。
2、對于單元格來說,其默認的數字格式是“G/通用格式”(即“常規”格式),這種“常規”格式,其默認的有效顯示的數字位數只能10位。鍵入的數值位數超過15位時則會截尾,且數值在10[sup]-10[/sup]~10[sup]10[/sup]時,最多顯示前10位。若數值大于10[sup]10[/sup]或小于10[sup]-10[/sup]時,則以科學計數法顯示。所以必須配合單元格的數字格式設置(即:將數字格式設置為“自定義”格式),才能正常顯示。
3、除了科學研究,一般的檢測/校準領域,基本上不會遇到需要保留10位及以上“有效數字”的情形,所以該自定義函數在10[sup]-10[/sup]~10[sup]10[/sup]數值范圍內應用,是沒有任何問題的。如果真有這種需求,那恐怕就不是VBA宏能夠解決的了。
4、您是將數值轉換成文本來處理,修約結果也是文本,無法顯示正數的符號“+”。且數字中夾雜有其他字符,也同樣會在修約結果中顯示。所以這種處理方式實質上是“文本字符的截取與組合”。
作者: wangyiyong7703 時間: 2023-10-8 18:03
還是不了解。您的自定義函數盡然比不上內建函數的表現。還說vbA解決不了這個問題,您敢打賭么,解決了怎么辦
作者: 路云 時間: 2023-10-8 19:35
打賭就沒有意思了。我只是說“恐怕就不是VBA宏能夠解決的了”。EXCEL的數值處理范圍區間大小是有限的。您所提供的公式中,除了“POWER()”是數學類“工作表函數”外,基本上全是文字處理類或邏輯判斷類的“工作表函數”,而不是數值處理的內建函數。
本主題討論的是數據(非文本數據)的修約問題,EXCEL中與數值修約相關的,就只有“ROUND()”、“ROUNDDOWN()”和“ROUNDUP()”三個“工作表函數”。最為接近的就是“ROUND()”函數,僅僅是修約規則有那么一點點差異。“ROUND()”函數的修約規則是“四舍五入”,自定義函數的修約規則是“四舍六入五留雙”。
其實“ROUND()”函數有兩個,一個就是“工作表函數”(即您所說的“內建函數”),另一個是“VB函數”,盡管這兩個函數名稱一模一樣,但兩者的算法規則是不同的。
作者: wangyiyong7703 時間: 2023-10-8 19:52
1.麻煩您舉一些實質性的問題進行討論,這樣很累,沒有意義,之前您找到的很多有意義的反例很好;
2.純數字文本也可以參與其它計算,強制進行轉換。這里解決的是尾數補0的情況,用文本表示是不得已的事。
3.修約后尾數0后,系統自動去除,您的自定義函數是一個致命的問題。如果靠設置去解決,那您的公式確實看起來很好。
4.但是實際上不用設置格式,如果要用vb的話,徹底解決位數過大的問題。VB輕松解決。
5.你用設置格式解決尾數補0問題,確實不是很高端,我也是想避開。其實有很多內建函數配合格式設置可以做到,完全不用VB,這個早就實現了。
6.發揮內建函數作用,不靠其他方法是我追求的。因為您用vb做的自定義函數沒多大意思,我實不屑取,避開vb,才是我們想要的。用vb超百位的修約我也可以做到,早就做到了。
作者: wangyiyong7703 時間: 2023-10-8 19:56
這個是150的修約
作者: wangyiyong7703 時間: 2023-10-8 19:58
上面是vb做的,容易實現
作者: wangyiyong7703 時間: 2023-10-8 20:13
1.POWER()這個函數是有點問題,我的公式目前的缺陷就是它帶來的。
2.暫時沒有想到更好的辦法,如果你有好的算法,歡迎提出來。
3.用他來定位小數點確實是個好辦法,但缺陷是數位過大的時候問題就來了。如果只是解決數位小的問題,這個不在話下。
4.關鍵要提出一些好的反例,利于優化公式,給網友們提供方便實用的公式,
作者: wangyiyong7703 時間: 2023-10-10 08:38
避開格式設置問題公式如下:f(A1,B1)為網上或文獻中提供的各種數值計算處理的四舍六入五成雙公式,text(f(A1,B1),"0." & rept("0",B1).這樣不用格式設置。A1為待修約全數值,B1為修約要求的保留小數點位數
補充內容 (2023-10-10 16:33):
text(f(A1,B1),"0." & rept("0",B1))
作者: 路云 時間: 2023-10-13 23:58
2.純數字文本也可以參與其它計算,強制進行轉換。這里解決的是尾數補0的情況,用文本表示是不得已的事。
3.修約后尾數0后,系統自動去除,您的自定義函數是一個致命的問題。如果靠設置去解決,那您的公式確實看起來很好。
5.你用設置格式解決尾數補0問題,確實不是很高端,我也是想避開。其實有很多內建函數配合格式設置可以做到,完全不用VB,這個早就實現了。
EXCEL中“設置單元格格式”功能模塊,就是為了解決各種數據格式的顯示問題,運用公式、函數的目的,是解決“四舍六入五留雙”的問題。修約后的尾數補0,不是修約的問題,而是顯示格式的問題。所有的格式顯示問題,都可以用文本處理的方式去解決,那還需要“設置單元格格式”這一模塊嗎?有現成的、簡單的、適用的工具你不用,非要用文本處理的方式去解決,那是你的自由。
6.發揮內建函數作用,不靠其他方法是我追求的。因為您用vb做的自定義函數沒多大意思,我實不屑取,避開vb,才是我們想要的。用vb超百位的修約我也可以做到,早就做到了。
你可以有你的追求,你認為自定義函數沒多大意思那也是你個人的看法,我只是提供一種思路與方法,供您參考,我又沒有逼你一定要用。我不知道研究超百位的修約又有何意思,難道我們要去研究圓周率?現實當中超過10位小數的修約應用有多少?
POWER()函數只是解決實數的乘冪問題,解決不了修約后的尾數補0問題。自定義函數已經解決了修約的問題,無需用到這個函數。
避開格式設置問題公式如下:f(A1,B1)為網上或文獻中提供的各種數值計算處理的四舍六入五成雙公式,Text(f(A1,B1),"0." & rept("0",B1).這樣不用格式設置。A1為待修約全數值,B1為修約要求的保留小數點位數
所謂公式f(A1,B1),我也在網上找了很多,但最簡單易用的,就是我7樓提供的這個。用這個自定義函數,TEXT()公式就不靈了。
您的公式最大的問題是改變了數值的性質,將其變成了“文本”,解決不了帶符號顯示的問題,也避免不了37截圖所示的非數值問題。
作者: wangyiyong7703 時間: 2023-10-14 10:13
1.=TEXT(yround(A7,B7),"0."&REPT("0",B7)……原來顯示0.1,現在為0.100.用您的公式很好用呀,配合我提供的 TEXT(...rept..)公式,只是用了VB也要用公式設置,覺得太LOW了。
2.用vb我早就實現了上百位的修約,還不用格式設置,單元格有255個字符顯示,說明我可以修約2百多位數是沒有問題的。
3.用簡單的公式無法實現超多位數的修約,不然沒有必要在您的面前弄斧頭了,那不是丟人現眼,沒有必要發這個貼了。
4.文獻和網上好多公式沒有解決尾數為0自動不顯示,另一個超大位數的問題。我希望您也來提供一些好的算法。
5.尾數為0自動舍去,補零是須要的,文本是解決方法之一,用text也相當于手動設置改為公式設置,充分利用rept這個函數后,可以自動設置了。您用手動格式設置也可以。
6.因為之前很多有很多公式是用的數值處理,數值處理天然會帶有位數限制,修約結果受到影響。所以想到將數字進行文本方式處理,vb設計結果顯示是成功的。但用內建函數沒有找到很好的辦法,POWER相對來說表現效果好一點,但還是只能到15位,其它的基本只能到10位。當然目前只是想到用分段處理算法,但效果可能有限,只能到30位,而且公式很長。目前沒有好的算法。
作者: wangyiyong7703 時間: 2023-10-14 10:23
本帖最后由 wangyiyong7703 于 2023-10-14 10:29 編輯
1.至于您說的符號顯示問題,我覺不是個問題,就是正號顯示問題,負數修約到我這不成為問題,您用負數算一下就可以了。
2.您要舉一個實例,哪個地方要顯示正號;我是沒有見過必須要在修約之后顯示正號的;您自己的公式也沒有正號啊,為什么要求我的公式顯示正號。
3.我之所以不想理會正號問題,是覺得這個問題提的有點怪。一般人不會提出這種問題,到您這里成為問題???!!!
4.if(A1>0,"+" & f(A1,b1),f(A1,b1))如果你須要這個的話,我給提供您這個方法f(A1,b1)為無法顯示正號的公式。這種問題太LOW。
=IF(A15*1>0,"+" & IF(OR(AND(ISEVEN(MID(A15,FIND(".",A15)+B15,1)*1),MID(A15,FIND(".",A15)+B15+1,1)="5",IFERROR(RIGHT(A15,LEN(A15)-FIND(".",A15)-B15-1)*1,0)=0),MID(A15,FIND(".",A15)+B15+1,1)*1<5),LEFT(A15,FIND(".",A15,1)+B15),IF(IFERROR(FIND(".",LEFT(A15,FIND(".",A15,1)*1+B15)*1+IF(A15*1<0,-1,1)/POWER(10,B15),1),0)=0,LEFT(A15,FIND(".",A15,1)*1+B15)*1+IF(A15*1<0,-1,1)/POWER(10,B15)&"."&REPT("0",B15),LEFT(A15,FIND(".",A15,1)*1+B15)*1+IF(A15*1<0,-1,1)/POWER(10,B15)&REPT("0",B15-(LEN(LEFT(A15,FIND(".",A15,1)*1+B15)*1+IF(A15*1<0,-1,1)/POWER(10,B15))-IFERROR(FIND(".",LEFT(A15,FIND(".",A15,1)*1+B15)*1+IF(A15*1<0,-1,1)/POWER(10,B15),1),0))))),IF(OR(AND(ISEVEN(MID(A15,FIND(".",A15)+B15,1)*1),MID(A15,FIND(".",A15)+B15+1,1)="5",IFERROR(RIGHT(A15,LEN(A15)-FIND(".",A15)-B15-1)*1,0)=0),MID(A15,FIND(".",A15)+B15+1,1)*1<5),LEFT(A15,FIND(".",A15,1)+B15),IF(IFERROR(FIND(".",LEFT(A15,FIND(".",A15,1)*1+B15)*1+IF(A15*1<0,-1,1)/POWER(10,B15),1),0)=0,LEFT(A15,FIND(".",A15,1)*1+B15)*1+IF(A15*1<0,-1,1)/POWER(10,B15)&"."&REPT("0",B15),LEFT(A15,FIND(".",A15,1)*1+B15)*1+IF(A15*1<0,-1,1)/POWER(10,B15)&REPT("0",B15-(LEN(LEFT(A15,FIND(".",A15,1)*1+B15)*1+IF(A15*1<0,-1,1)/POWER(10,B15))-IFERROR(FIND(".",LEFT(A15,FIND(".",A15,1)*1+B15)*1+IF(A15*1<0,-1,1)/POWER(10,B15),1),0))))))
作者: wangyiyong7703 時間: 2023-10-14 10:42
1.至于您提的非數值問題,那這個問題你的公式也做到了嗎?把一個參有字母數字串去修約,這個反例夠可以了的。
2.A1里面輸入的待修約全數值是公式算出來的結果,比如平均值公式什么的,搞檢測的公式復雜一點,怎么會含有字母,除非您跳出了十進制。
3.A1里面手動輸入才會有帶字母的全數值。那是輸入的問題。要解決的是輸入規范的問題。不是這里要解決的。
4.如果您提出的反例只能到這個層次,那說明我的公式在處理數值上是沒有大的漏洞了。
5.之前其它貼子里面有人也提出了輸入問題,經過多次運算之后 的浮點問題,遺傳到我的公式里面,但我作出了合理解決。輸入階段的問題,在輸入階段解決。不能要求修約公式是萬能的。當然用vb可以解決有效性輸入的問題,但這個效率低了一點。在其它地方解決輸入問題可能好一點。
作者: 路云 時間: 2023-10-15 01:39
本帖最后由 路云 于 2023-10-15 13:53 編輯
1.=TEXT(yround(A7,B7),"0."&REPT("0",B7)……原來顯示0.1,現在為0.100.用您的公式很好用呀,配合我提供的 TEXT(...rept..)公式,只是用了VB也要用公式設置,覺得太LOW了。
不是公式設置,而是格式設置,不要把概念給搞混了。
2.用vb我早就實現了上百位的修約,還不用格式設置,單元格有255個字符顯示,說明我可以修約2百多位數是沒有問題的。
3.用簡單的公式無法實現超多位數的修約,不然沒有必要在您的面前弄斧頭了,那不是丟人現眼,沒有必要發這個貼了。
4.文獻和網上好多公式沒有解決尾數為0自動不顯示,另一個超大位數的問題。我希望您也來提供一些好的算法。
我早就說了,實際應用中,我幾十年也沒有遇到過超多位數的修約案例與需求。不想在已經能夠滿足實際需求的情況下,再去研究這種不切實際的問題。位數0自動不顯示,本就是單元格格式沒有設置所致。有了簡單易用的單元格格式設置功能模塊,我為什么還要去動這個腦筋呢?假如我現在要改成百分比的格式顯示,你是不是要重新修改公式呀?
2.您要舉一個實例,哪個地方要顯示正號;我是沒有見過必須要在修約之后顯示正號的;您自己的公式也沒有正號啊,為什么要求我的公式顯示正號。
3.我之所以不想理會正號問題,是覺得這個問題提的有點怪。一般人不會提出這種問題,到您這里成為問題???!!!
我33樓的實際案例,“示值誤差”的計算,其最終的修約結果,不就是要求除0誤差外,必須帶正負號嗎。
1.至于您提的非數值問題,那這個問題你的公式也做到了嗎?把一個參有字母數字串去修約,這個反例夠可以了的。
你的擬修約數是“文本”,誤敲入字母或其他符號完全是有可能的。
2.A1里面輸入的待修約全數值是公式算出來的結果,比如平均值公式什么的,搞檢測的公式復雜一點,怎么會含有字母,除非您跳出了十進制。
既然是公式算出來的,那么計算結果的小數位數,完全有可能會少于你需要保留的小數位數。
3.A1里面手動輸入才會有帶字母的全數值。那是輸入的問題。要解決的是輸入規范的問題。不是這里要解決的。
你的單元格格式就是“文本”,誤操作完全是有可能的,而且輸入的其他字符完全符合“文本”的要求,是你沒有對輸入的數據進行“有效性控制”、攔截。
另外強調一點,實際應用中,第二列的“保留小數位數”,根本就無需在原始記錄的表格中出現,也無需去輸入。相應單元格的數據處理后的最終結果的保留小數位數,應該是在編制“原始記錄表”模板時,就已經是確定,可以固化的。
(, 下載次數: 640)
作者: wangyiyong7703 時間: 2023-10-15 08:09
你的反例舉得很好啊,之前跟你講過,后面輸入數據處理即可,即對于待修約數有效數字比修約要求的少,包括浮點輸入,誤輸入都可以對其進行過慮,通過加round過濾浮點問題,通過f(x)&"000000"解決待修約位數少的問題。
作者: wangyiyong7703 時間: 2023-10-15 08:20
從實際角度講應盡量減少修約后精度提高的問題,不能拿這個說事。誤差確須帶正負符號的話,你加我的算法不就可以了。如果把這個算法也加到普通修約公式里面去,那不還要增加一個支鏈判定是不是誤差。搞笑,正確方向提反例好不好
作者: wangyiyong7703 時間: 2023-10-15 08:24
增加位數,不用vb,不用手動設置公式是我個人增加難度,不在這里惡心我,好不好,交待多少回了。你要知道excel愛好者有這么一群人就愛干這個事。
作者: wangyiyong7703 時間: 2023-10-15 08:28
有質量的反例希望你多提點,重復提有什么意思。提了那么多,還不如別人提的一個浮點問題有質量。
作者: 路云 時間: 2023-10-15 14:31
你的反例舉得很好啊,之前跟你講過,后面輸入數據處理即可,即對于待修約數有效數字比修約要求的少,包括浮點輸入,誤輸入都可以對其進行過慮,通過加round過濾浮點問題,通過f(x)&"000000"解決待修約位數少的問題。
如果工作表函數ROUND()能夠解決問題的話,也就用不著去用VB函數ROUND()去編制自定義函數了。
從實際角度講應盡量減少修約后精度提高的問題,不能拿這個說事。誤差確須帶正負符號的話,你加我的算法不就可以了。如果把這個算法也加到普通修約公式里面去,那不還要增加一個支鏈判定是不是誤差。搞笑,正確方向提反例好不好
數據處理的函數公式都一樣,僅僅是顯示格式(是否帶正負號)的要求不同,我為什么要去重新修改函數公式?是否帶正負號顯示,與數據處理的函數公式沒有任何關系。計算過程與步驟完全一致,通過單元格格式設置,你需要顯示符號(如“示值誤差”)就顯示符號,不需要顯示符號(如“示值重復性”)就不顯示符號。這個信息在編制原始記錄模板時,還不知道嗎?需要你去另加支鏈來判定是否需要顯示符號嗎?
增加位數,不用vb,不用手動設置公式是我個人增加難度,不在這里惡心我,好不好,交待多少回了。你要知道excel愛好者有這么一群人就愛干這個事。
我沒有惡心你。追求難度是你的事,我無權干預。提供參考方案是我的事,采不采納是你的自由,沒有人強迫你一定要怎么樣。你覺得你的方法好,你就用你的方法好了,有什么好糾結的呢。
你的這種思路和方案,我不是沒有研究嘗試過,編制的原始記錄模板也不下幾十上百份。最終的體驗感覺是不靈活,通用性差,還需要在表格中輸入并不需要在原始記錄中出現的“保留小數位數”,以及需要根據不同的顯示格式需求來修改公式。我這里只是談我個人的體驗感,不代表其他人的體驗感。
有質量的反例希望你多提點,重復提有什么意思。提了那么多,還不如別人提的一個浮點問題有質量。
我不清楚您所說的“質量反例”是啥意思。如果您認為我提出的問題都不是問題,那就只當我沒說好了。浮點問題我早就說了,用VB的ROUND()函數,取代工作表函數ROUND()就可以解決。還要怎么說呢?
作者: wangyiyong7703 時間: 2023-10-15 14:49
這個貼子不歡迎你好不好,不是真心為廣大網友考慮,你另開一貼吧,讓別人評價你那無敵的修約公式。不要回復了,知趣點
作者: 路云 時間: 2023-10-15 15:51
放心好了,不會再回復你了。
我并沒有說我的自定義函數無敵,但愿你搭臺唱戲能吸引更多的量友,受益你那萬能的修約公式。
作者: wangyiyong7703 時間: 2023-10-16 13:07
歡迎善意的網友們提出好的意見和建議。多提出在制作模版中遇到的修約公式問題,一起探討解決方案。公式原創不易,希望得到網友推動進步
作者: 銀光戰火 時間: 2024-12-23 15:18
我的天爺啊,兩位大神中的大神,我記得wps里有個公式roundbanke,就是四舍六入五留雙啊
作者: lo452355 時間: 2024-12-27 16:33
這是尋根問底了,roundbanke的來源了
作者: woaijiliang666 時間: 2024-12-28 17:16
1111111不錯呀
作者: wangyiyong7703 時間: 2025-1-4 15:21
roundbank的表現還是有漏洞的,沒有我的公式表現好。正是因為目前開發的好多自動修約的公式有問題,才想到改進。漏洞推動進步,歡迎提出反例。
作者: wangyiyong7703 時間: 2025-1-4 15:25
標題: 一般不是超長的數值,這個足以應付了
本帖最后由 wangyiyong7703 于 2025-1-4 15:26 編輯
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)))))
作者: 靜心養氣 時間: 2025-6-20 08:46
公式太長沒有應用的意義。除非特定的超高細度精確計算,一般情況ROUNDBANK足夠用,當然ROUNDBANK存在位數為0時不顯示0的問題,不夠優化,但可以通過設置數字位數來實現。
最終還是為了更普適的應用,不是為了秀特例的技巧。
作者: 我要吃板面 時間: 2025-6-21 17:29
直接選擇保留小數位默認的應該是四舍五入吧 也沒人查這個
作者: 步云風 時間: 2025-6-23 21:39
感謝分享,下載看看
作者: wangyiyong7703 時間: 2025-6-27 09:26
對于操作來說,沒有長短之分,復粘即可。正是之前的公式不滿意才想到要完善。其實可以用vb自定義函數的,這樣用起來,不必要知道編碼了。
作者: wangyiyong7703 時間: 2025-6-27 09:28
這個是基本概念,可大可小的問題
作者: jealsipi 時間: 2025-7-17 09:53
看起來 好復雜
| 歡迎光臨 計量論壇 (http://www.bkd208.com/) |
Powered by Discuz! X3.4 |
国产一区国产精品,2019中文亚洲字幕,电影在线高清,欧美精品一区二区三区久久
久久久久国产精品麻豆ai换脸
|
国产精品911|
色婷婷激情综合|
2023国产精品自拍|
午夜精品一区在线观看|
91麻豆6部合集magnet|
国产欧美日韩在线|
精品写真视频在线观看|
欧美日韩精品高清|
一级精品视频在线观看宜春院|
国产成人免费视频一区|
久久久久国产精品人|
黑人巨大精品欧美一区|
日韩久久精品一区|
日本免费新一区视频|
在线不卡中文字幕播放|
肉色丝袜一区二区|
678五月天丁香亚洲综合网|
亚洲一级电影视频|
欧美日韩一区二区在线观看|
亚洲在线视频免费观看|
欧美综合天天夜夜久久|
亚洲品质自拍视频网站|
日本黄色一区二区|
亚洲一区二区三区小说|
欧美日韩一区二区在线视频|
视频一区二区三区在线|
欧美一区二区三区在线观看视频|
五月天激情综合网|
日韩视频免费观看高清在线视频|
免费欧美高清视频|
精品国产成人在线影院|
国产成人av影院|
亚洲人成亚洲人成在线观看图片|
91福利社在线观看|
成人午夜av影视|
亚洲欧美日韩在线不卡|
精品视频在线免费|
久草中文综合在线|
国产精品久久国产精麻豆99网站|
91丝袜高跟美女视频|
婷婷中文字幕综合|
亚洲精品一区在线观看|
成人精品一区二区三区四区|
亚洲线精品一区二区三区|
91精品久久久久久久99蜜桃|
国内精品国产三级国产a久久|
中文字幕av在线一区二区三区|
91婷婷韩国欧美一区二区|
日本伊人精品一区二区三区观看方式
|
亚洲午夜激情av|
日韩精品一区二区三区在线播放
|
成人免费的视频|
亚洲一区在线观看免费观看电影高清|
欧美精品一级二级三级|
国产曰批免费观看久久久|
一区二区三区在线视频播放|
精品国产乱子伦一区|
色综合一区二区三区|
久久国产三级精品|
一区二区三区资源|
久久久久久免费|
欧美日韩精品一区二区三区蜜桃|
国产米奇在线777精品观看|
亚洲影视资源网|
国产三级一区二区|
欧美一级欧美一级在线播放|
91在线视频网址|
韩国三级在线一区|
石原莉奈在线亚洲二区|
亚洲欧美日韩精品久久久久|
亚洲精品一区二区精华|
欧美一区日韩一区|
日本电影欧美片|
成人av网站在线观看|
国内精品写真在线观看|
爽好多水快深点欧美视频|
国产精品超碰97尤物18|
久久久久免费观看|
日韩精品一区二区三区视频|
欧美性猛片aaaaaaa做受|
99久久99久久精品免费观看|
国产一区二区电影|
久久成人久久鬼色|
日本亚洲免费观看|
同产精品九九九|
婷婷久久综合九色国产成人|
一区二区成人在线观看|
亚洲乱码国产乱码精品精可以看
|
337p亚洲精品色噜噜|
欧美日韩综合在线|
色94色欧美sute亚洲13|
色综合一区二区三区|
99精品视频一区二区|
成人av电影观看|
不卡影院免费观看|
bt欧美亚洲午夜电影天堂|
3751色影院一区二区三区|
欧美日韩一区二区三区高清|
欧美无砖砖区免费|
欧美日韩在线观看一区二区|
欧美亚洲综合在线|
欧美日韩激情一区|
5858s免费视频成人|
4438x亚洲最大成人网|
日韩欧美电影一二三|
日韩一级成人av|
久久亚洲一级片|
欧美激情在线一区二区三区|
亚洲欧洲日韩综合一区二区|
亚洲色图视频网站|
亚洲伊人伊色伊影伊综合网|
三级亚洲高清视频|
国产最新精品精品你懂的|
国产成人免费xxxxxxxx|
成人网在线播放|
91理论电影在线观看|
欧美色倩网站大全免费|
日韩午夜中文字幕|
国产午夜亚洲精品羞羞网站|
国产精品护士白丝一区av|
一区二区三区在线观看国产|
日日夜夜精品视频免费|
精品一区二区av|
99热这里都是精品|
欧美精品xxxxbbbb|
久久青草国产手机看片福利盒子
|
国产精品丝袜一区|
亚洲精品视频一区二区|
日本一不卡视频|
国产91精品一区二区|
91国偷自产一区二区三区观看|
欧美精品123区|
国产亚洲成av人在线观看导航|
亚洲美女淫视频|
久久成人麻豆午夜电影|
色综合久久久久|
精品国产一区二区三区久久影院
|
国产精品每日更新在线播放网址|
一区二区三区中文字幕|
精品亚洲成a人|
在线视频你懂得一区二区三区|
欧美大片在线观看一区|
亚洲情趣在线观看|
国产在线视视频有精品|
色哟哟日韩精品|
久久久99久久|
日本网站在线观看一区二区三区|
福利一区二区在线|
日韩一区二区三区电影在线观看
|
欧美变态凌虐bdsm|
亚洲精品第1页|
国产精品亚洲一区二区三区在线|
精品婷婷伊人一区三区三|
国产精品久久久久影院|
久久99国内精品|
777色狠狠一区二区三区|
国产精品毛片a∨一区二区三区|
免费人成黄页网站在线一区二区|
91免费在线看|
国产精品伦理在线|
国产一区二区三区电影在线观看|
欧美日韩国产123区|
亚洲六月丁香色婷婷综合久久|
国内外成人在线|
欧美大片国产精品|
亚洲成年人网站在线观看|
99精品偷自拍|
中文字幕亚洲成人|
国产suv精品一区二区三区|
精品美女一区二区三区|
日本aⅴ免费视频一区二区三区
|
91麻豆精品久久久久蜜臀|
亚洲综合网站在线观看|
国产精品丝袜久久久久久app|
激情综合一区二区三区|
日韩限制级电影在线观看|
日韩va欧美va亚洲va久久|
欧美日韩国产高清一区二区三区
|
久久国产剧场电影|
日韩一区二区精品|
免费xxxx性欧美18vr|
91麻豆精品久久久久蜜臀|
日韩精品成人一区二区在线|
在线成人午夜影院|
免费在线看成人av|
精品sm在线观看|
国产精品一区二区视频|
国产欧美一区二区精品性|
国产成人精品免费视频网站|
国产日韩v精品一区二区|
成人免费看的视频|
亚洲美女视频在线观看|
欧美性猛交xxxxxx富婆|
视频一区在线播放|
精品国产sm最大网站免费看|
国产麻豆91精品|
综合久久久久久|
91福利国产精品|
麻豆久久久久久久|