EXCEL在回弹法测定混凝土强度计算中的应用
2011-02-19李锦宏南钢集团冶山矿业有限公司211523
李锦宏 南钢集团冶山矿业有限公司 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三、原始数据的录入
四、检验结果的输出
五、结束语