李錦宏 南鋼集團冶山礦業有限公司 211523
EXCEL在回彈法測定混凝土強度計算中的應用
李錦宏 南鋼集團冶山礦業有限公司 211523
根據《回彈法檢測混凝土抗壓強度技術規程》JGJ/T23—2001在工程中的應用已很廣泛,但對檢測的結果按照規范要求進行計算比較復雜,本文建立了相關的數據庫,編寫了相應的計算程序,充分利用OFFICE軟件中的EXCEL電子表格的強大計算功能,使得復雜的問題簡單化,枯燥的計算趣味化,達到高效省時、準確便捷的目的。只要在輸出表格的數據格內輸入或拷貝檢測的數據,檢測結果便自動計算出來。
回彈計算;數據庫;計算程序;混凝土強度
根據《回彈法檢測混凝土抗壓強度技術規程》JGJ/T23—2001在工程中的應用已很廣泛,但對檢測的結果按照規范要求進行計算比較復雜,目前市場上已推出能直接計算出結果的數顯回彈儀,只是價格高得多,大約是傳統產品價格的10倍,不能為所有用戶所接受。本人最近也從事了用回彈法測定混凝土強度的鑒定工作,發現人工計算結果時有差錯,因此本人就花了些精力,建立了相關的數據庫,編寫了相應的計算程序,方便新老產品用戶的計算。本人也希望產品廠家在推廣產品的同時,推廣一下這個計算實用工具,充分利用OFFICE軟件中的EXCEL電子表格的強大計算功能,使得復雜的問題簡單化,枯燥的計算趣味化,達到高效省時、準確便捷的目的。只要在輸出表格的數據格內輸入或拷貝檢測的數據,檢測結果便自動計算出來。并自動生成兩種評定表格供用戶選用。
為了節省篇幅和方便讀者使用,本人在 LJH8123@sohu.com中給出了《回彈法測設混凝土強度計算程序》,登錄密碼為LJH8123,歡迎下載。并且結合規程的相關要求,給出相應的公式計算語句,對于復雜的公式,適當予以解惑。
1、規程要求每一測區測出16個數據,去掉3個最大值,去掉3個最小值[簡稱3對極值],其余10個值再平均得出Rm ,假如去掉1對極值比較簡單,只要求和[SUM()]減去極值[MAX()和MIN()]即可。如何去掉3對極值呢?本人模擬了兩種解決辦法:
(1)、在數字區域內先采用減去1對極值,使它在單元格內不顯示,再重復進行便能達到目的。由于檢測的數據可能有多個極大值或極小值,如果簡單除去極值可能會去掉多個,為了保證只去1對極值,就要逐個比對一下,前面有沒有出現極值,如出現了后面就保留此數據。在工作表樣表1中,AH5:AW5這16個單無格內采用兩個語句來實現:在AH5單元格內如果是極值便不顯示,采用如下語句:…=IF(OR(R5=MIN(R5:AG5),R5=MAX(R5:AG5)),"",R5)
IF()為條件語句。接下來在AI5內判斷前面是否出現過極值,如果出現過,則保留此數數,否則不顯示,采用如下語句:…=IF(OR(AND(MIN($R5:R5)<>MIN($R5:$AG5),S5=MIN($R5:$AG5)),AND(MAX($R5:R5)<>MAX($R5:$AG5),S5=MAX($R5:$AG5))),"",S5)
此語句中的“$”符是為了從AI5單元格內復制公式到AK5~AW5而加,作用是固定列,以下還可能出現固定某行或固定行和列(固定單元格)的語句;OR()是滿多個條件之一語句;AND()是同時滿足多個條件語句。在AX5:BM5重復上面公式就可達到去除2對極值的作用。再在單元區AX5:BM5求和并除去1對極值就達到除去3對極求和的目的,再除以10便得到規程需用的Rm 。
(2)將測區的16個數字進行排序,再對第4到第13個數據求和平均。在工作表樣表2中AH5中,采用如下語句:
=RANK.EQ(R6,$R6:$AG6,1)
運算出單元格AH6在AH6:AW6中的排序,計算結果作為查詢語句的參數,將AH5中的公式可復制到AI5~AG5,得到了16個數的序數組,在AH5~AW5的AH5中采用如下語句:=IF(TYPE(HLOOKUP(AH$1,$R5:$AG6,2,FALSE))=1,HLOOKUP(AH$1,$R5:$AG6,2,FALSE),AG6)
語句HLOOKUP()用序數進行查詢,同位數的第2個起查詢不到,它的序數顯示了n-1、n-2……,得出出錯信息#N/A,語句TYPE()對各種信息進行分類,數據型計算結果為TYPE(123)=1,TYPE(#N/A)=16,判斷計算結果不為1時用MIN(n-1、n-2……)的檢索結果即得自動排序數列,如AH~AW列所示。AH1:AW1為確定的排序號數,為查詢所用。
這種運算不能說是簡單,只能說巧妙一些,對于初學者不易想到。
2、附錄表格查詢問題
規程中給出了如下表格:
附錄A 測區混凝土強度換算表
附錄B 泵送混凝土測區混凝土強度換算值的修正值
附錄C 非水平狀態檢測時的回彈值修正值
附錄D 專用測強曲線的制定方法
附錄E 回彈法檢測混凝土抗壓強度報告
以下附錄表格的查詢涉及以下問題:
(1)二維插入的問題
如規程附錄C非水平狀態檢測時的回彈值修正值 要根據計算出測區混凝土回彈平均值Rm和測設角度α進行查表,這兩個參數都存在插入問題,要實現自動查表就要解決二維插入的問題。在樣表N5中編輯如下語句:
=(VLOOKUP(INT(M5),'C'!A:Z,8-INT(E$31/15))*(1-(M5-INT(M5)))+(M5-INT(M5))*VLOOKUP(INT(M5+1),'C'!A:Z,8-INT(E$31/15)))*(1-(E$31/15-INT(E$31/15)))+(E$31/15-INT(E$31/15))*(VLOOKUP(INT(M5),'C'!A:Z,9-INT(E$31/15))*(1-(M5-INT(M5)))+(M5-INT(M5))*VLOOKUP(INT(M5+1),'C'!A:Z,9-INT(E$31/15)))
以上語句較為復雜,不一定要求全部理解。為了復雜問題簡單化,我們先從一維插入著手,設查表變量為n1 mi=m2*(ni-n1) /(n2-n1)+m1*[1-(ni-n1)/(n2-n1)] 在工作表DX的C4單元格語句: =VLOOKUP(MIN(50,MAX(20,INT(A4))),D!$A$23:$D$53,3)*(1+INT(A4)-A4)+(A4-INT(A4))*VLOOKUP(MIN(50,MAX(20,INT(A4+1))),D!$A$23:$D$53,3) 以上語句中,(n2-n1)=1,/(n2-n1)相當于除以1省略了,相對簡單些,二維插入再根據一維計算結果再迭代一次。 (2)、數據庫的擴展問題 不像人工查表那樣,表格越簡單越好,自動查詢講究的是表格的規范化,格式要統一,這樣就必須對行或列實行同步距,便于編寫語句。如附錄C非水平狀態檢測時的回彈值修正值的列距——角度就應該從90°~-90°按照15°的列距錄入數據庫,所缺數據用插入法補齊。對行中0~20和50~80也按說明補齊,這樣編寫語句就簡單多了,而且方便插入。 盡管辦公軟件具有強大的計算功能,但所需計算參數一個不能少,而且要便于識別處理。因此對數據的采集應當好好規劃一下,以利于計算和打印輸出。首先對不能輕易改動和不需手工操作的表格可以將它隱藏起來(需要時可右擊工作表選項卡取消隱藏),此程序的附錄A~附錄D已設置為隱藏。以樣表2為例:從單元格B5:I28供錄入或拷貝12組檢測區數據;L5供錄入檢測的碳化深度值,每區不同時可在L列的相應行錄入;是否泵送在A33單元格錄入,此數據根據批注提示錄入“0”或“1”,分別代表“否”和“是”;測設角度在單元格E31錄入,同樣按照批注提示,錄入回彈角度(360度制);實測表面在單元格E32錄入,可選1、2、3,分別代表側面、表面、底面;表面光潔可在E33錄入,可選1、2、3、4,分別代表風干、潮濕、光潔、粗糙;另外檢測日期默認制表日期[TODAY()],在單元格K2內,不對應時應予以修改;檢驗部位在D2單元格內錄入。當你錄入完這些數據后,相應的計算結果已經計算出來,你所需做的工作是將此表的A:L列拷貝到其他文檔中即可排版打印。 本程序按照檢測10個構件的格式,分別按本規程附錄F和筑業軟件表格的格式進行數據鏈接,當你完成了工作表表1~表10的全部數據之后,兩表也大功告成了。如果行數不同也能方便的編輯,比前面的問題簡單多了。表格的相關信息留意對照一下,不對的修改過來。這樣便輕松完成了檢測工作的數據處理工作。 對首次使用本計算程序的使用者應當注意以下事項,以防數據錄入或不當剪切造成錯誤的計算結果,也不排除本人在編寫程序上出現的錯誤。 1、使用者熟知《回彈法檢測混凝土抗壓強度技術規程》JGJ/T23—2001。 2、對一些計算結果應進行復核,經多人、多次校對復核后方可采用。 3、對所采用檢測儀器應按規范要求進行保養和檢測。 4、經常備份,確保每次采用原程序。 5、本程序采用OFFICE 2010編輯,建議采用2007以上版本,2003及以下版本沒有樣表2的排序函數,只能參照樣表1應用。 [1]office函數技巧全集.文檔信息 [2]馬維峰.EXCEL 與VBA 程序設計 10.3969/j.issn.1001-8972.2011.04.031三、原始數據的錄入
四、檢驗結果的輸出
五、結束語