Excel在工程量计算中的应用工程造价工作中,工程量的计算一直是工作量最大和耗时的一项繁重劳动。
提高计算精度和工作效率便成为造价人一直想解决的目标。
近年来已有不少专业人士利用excel强大的计算功能来提高计算精度和工作效率,并得到了人们的认可和广泛应用。
一、工程量计算的方式:1、传统的手算:手算是在计算稿上列式,通过计算器计算结果、汇总。
弊病就是计算过程中容易出现计算性错误,而且修改不方便、耗时。
2、专业软件计算:目前的算量软件种类有图形计算和表格计算两种形式。
图形算量软件又有二维、三维之分,其特点是将图形在软件中画好,由软件自行计算、汇总。
但操作性要求较高,增加了画图的工作量。
其缺点软件价位高,一般都在几千元,并且输出的打印量大,核对工程量困难,工程细部处理不灵活。
比较适合招投标阶段的算量工作。
表格算量软件相对于图形算量软件价位低一些,一般在千元左右。
其特点是计算方式类似传统的手算,增加了构件图形输入方式和多项子目关联功能,操作难度不高,工程量核对方便。
其缺点是构件间的扣减关系处理困难。
3、excel算量:Excel算量的特点是计算表直接反映了设计者的意图和思路,复制粘贴、修改灵活,核对工程量方便,发现好的计算思路也易完善,可根据专业特点灵活设置。
其缺点是构件间扣减关系不易处理。
二、excel工程量计算表的形式及设计思路由于excel仍具有一定的局限性,首先考虑的是将计算表划分为什么样的输入形式才是速度最佳的。
根据目前excel的应用情况,表格大致分为以下几类:1、列式形式:这类形式和传统的手工计算方式类同,直接在表格中输入计算式,得出预算结果。
虽然为列式方式,在计算式中仍可以对其进行文字说明标注,同时完成自动汇总。
2、表格直接输入形式:在设计的表格中直接输入数据,无需输入运算符列算式,计算过程通过excel内部函数设置来完成。
他的特点是因减少运算符的输入,大大提高了输入速度。
3、ABC形式:这类表格中项目描述栏既可以对项目特征描述,又可以进行数据的初步计算、数据来源标注和初算合计。
计算列式比列式形式少,工程量主要通过倍数与其他三个基础数据的运算关系来完成计算。
输入方式具有列式和表格形式的特点并且基础数据来源明朗。
所以作者本人将三个基本数据称之为ABC,这种表格为ABC计算表格(图一(1))。
图一(1)4、竖向计算形式:竖向计算实际上是数据运算方式的转向,将横向运算形式转换为竖向运算,运算关系、基础数据计算等和ABC形式类似。
实践告诉我们直接填表格的速度优于列式,将规则性的项目通过表格直接输入,在excel上也是最佳的方案。
但公式设置要简单、准确,界面不宜复杂。
这类表格形式不宜过多,太多反而烦乱。
所以作者本人在设计计算表时,将这类表格划分为梁、柱、墙、门窗、板天棚地面等版面,通过数据的直接输入来完成计算工作。
在设计梁、柱时,利用梁柱数据直接完成钢筋的计算工作,通过下拉菜单选项完成矩形、T、U、Z、工、园等多种类形柱计算(如:图一(2)、图一(3))。
图一(2)图一(3)墙表的设计主要是体现墙的长、宽、高和墙面装饰工程量,同时考虑了弧形墙的计算。
墙体所占的洞口等工程量统一进行考虑,以便提高计算速度。
(如:图二(1))。
图二(1)门窗表除了要完成门窗工程量的汇总,还要进行洞口、过梁等所占墙体扣减量的计算。
相同门窗代号可能会在不同的墙上,所以在门窗表设计时,将洞口、过梁按砌体类型、厚度、楼层、内外墙四个条件定义所占墙体的扣减量并进行汇总,以便日后不同部位墙体扣减时使用。
(如:图二(2)、(3)、(4))图二(2)图二(3)图二(4)板、天棚、地面有共同的特点,在设计时将其共用一表,并让表格实现面积和体积的计算(如图三)。
图三基础、土方、其他零星等项目利用表格形式较难实现时,一般通过列式或其他方式计算来弥补纯表格形式的缺陷。
计算表采用什么形式主要取决于个人的偏好,最总的目的是一致的——提高工程量计算工作效率。
三、excel计算表格制作基本方法通过excel函数公式的设置,我们可以进一步地将自己的算量表格制作出来。
下面讲一下利用excel内部函数编制工程量计算表格的一些简单方法。
(一)列式方式计算表的制作1、工作表制作(1)、选择一个工作表(如shellt1),命名为“计算表”,设计好表样(如图四):图一中项目名称/部位设计为2列,C列用来输入项目名称,D列用来输入计算部位(如:1轴,A-B轴)。
图四(2)、选择另一个工作表(如:shellt2),命名为“单位”,在A列的第1行开始逐行输入m3、m2、m等计量单位。
2、下拉列表设置:在“计算表”工作表中设置计量单位下拉菜单:在菜单栏中,点击“插入”→“名称”→“定义”,出现弹出窗口如(图五):图五在当前工作薄中的的名称下面输入“dw”,按“添加”,在“引用位置”输入“=单位库!$A:$A”,按“确定”关闭窗口。
选择“计算表”工作表 E3单元格,在菜单栏中,点击“数据”→“有效性”,出现弹出窗口如(图六):图六在“设置”→“有效性条件”中,“允许(A)”下面选择“序列”,“来源(S)”下面输入“=dw”,在“忽略空值(B)”和“提供下拉箭头(I)”前面打勾,按“确定”关闭窗口。
我们再选择“计算稿”工作表E3单元格,这时,该单元格的右边会出现一个下拉箭头(如:图七),点击这个箭头,就可以选择我们需要的单位了。
如果需要添加单位,在“单位”工作表的A列下面添加,“计算表”工作表E3单元格也会随之自动添加的。
下拉列表中如果内容太多,查找过于繁琐。
如钢结构计算中,单一条件的下拉列表会显示几百种规格,实在不太方便。
这时我们可以将其设置为不同的条件的分类显示(图八)。
a、E 列的数据有效性设置为——工字钢,角钢,H钢等。
“,”号隔开(英文状态下)。
b、H 列的单元引用定义为:工字钢、角钢、H钢定义为 gzg、jg、hg等,工字钢引用位置设置为=钢材单位重量表!$A$23:$A$101 (其中:$A$23:$A$101 应根据工字钢所在的单元区域,其他同理),数据有效性“序列”中设置为=IF($E4="圆钢",yg,IF($E4="角钢",jg,IF($E4="I",gzg,IF($E4="钢板",gb,IF($E4="钢管",gg,IF($E4="C",cg,IF($E4="H钢",hg,"")))))))。
这时只要我们在E列中选取“I”,对应的H列即仅显示为工字钢列表。
这个方法在工程量计算进行钢材分类显示和同时调用定额和清单很有帮助。
减少了下拉列表内容太多,查找不便的烦恼。
图七图八3、让单元格中的公式即可计算又同时显示结果在单元格中输入公式进行计算,同时又能在计算公式中进行文字说明,并得出正确的结果过,这一直是大家所期望的。
首先,在菜单栏中,点击“插入”→“名称”→“定义”,在当前工作薄中的的名称下面输入“sl”,按“添加”,在“引用位置”输入“=EVALUATE(SUBSTITUTE(SUBSTITUTE(计算表!$F3,"[","*ISTEXT(""["),"]","]"")"))”,按“确定”关闭窗口。
公式中“计算表!$F3”表示“计算表”工作表需要列式计算的“F3”单元格。
在G3单元格中输入公式“=IF(F3="","",ROUND(SL,2))”,公式中的“SL”就是我们刚刚定义的名称,“ROUND(SL,2)”表示为“SL”计算结果保留两位小数。
这样在F3单元格中输入计算公式时,G3单元格便会自动显示出运算结果来。
如:在F3输入计算公式“0.24[墙厚]*(3.5[墙长]*(2.9-0.4[扣梁高])-1.2*1.8[扣窗洞C1022])”,回车,G3就自动出来计算结果“1.58”。
计算公式中的文字说明,如“墙厚、墙长”等,必须用“[ ]”括起,而且只能紧跟在数字后面,否则将不能计算。
4、格式条件的运用在“计算表”中,如果希望B列中输入数据时,自动添加底色或改变字体颜色。
点击菜单栏的“格式”→“条件格式”,出现设置“条件格式”窗口如(图九):图九在“条件1(1)”下面选择“公式”,在条件栏中输入“=B1<>”””,按右边的“格式”出现设置“单元格格式”窗口如(图十):图十选择“图案”选项,选一个自己喜欢的颜色,按“确定”关闭“单元格格式”窗口,再按“确定”关闭“条件格式”窗口。
这样就可以用颜色来区分项目名称、汇总行与计算行了。
用条件格式自动添加表线,方法和添加颜色相同,这里不再赘述了。
完成以上内容,一个列式方式的计算表就基本形成了。
为了可以在以下各行都可以进行计算,并得出结果。
在“计算表”工作表中“B3:H3”单元格,用填充柄下拉复制到需要计算的所在行即可。
(二)竖向计算形式计算表的制作列式方式计算表的缺点是输入数据多,列式过长时复核较为困难。
竖向计算方式与传统的列式最大的区别是:数据的输入和计算是竖向的,只有“初步计算式”栏中有少量的列式,缩短了数据的输入时间。
本文作者根据审计局的基本要求,特制作了竖向计算方式的excel计算表(如:图十一)。
图十一竖向excel计算表的特点是当“初步计算式”和“倍数”列输入数据时,“数量”列自动识别以下三个条件计算关系存在时,计算结果为其中的那一种。
(1)当倍数与三个数据相乘时;(2)当倍数与两个数据相乘时;(3)当倍数于一个数据相乘时如:当输入在F12单元格输入97,在G12单元格输入1.5,G13单元格输入0.62时,为倍数与两个数相乘,H12单元格得出数值为90.21。
而当在F16单元格输入97,在G16单元格输入1.87,在G17单元格输入6,G18单元格输入2.98时,为倍数与三个数相乘,H16单元格得出的数值为3243.25,以此类推。
在excel中如何实现上述的计算过程呢?我们用excel的逻辑函数IF、AND和OR来实现,在H3单元格输入公式“=IF(OR(G3="",F3=""),"",IF(AND(G5<>"",F5="",F4=""),ROUND(G 3*G4*G5*F3,2),IF(AND(G4<>"",F4=""),ROUND(G3*G4*F3,2),IF(AND (G4<>"",F4<>"",G3<>"",F3<>""),ROUND(G3*F3,2), "")))) ”,再用填充柄下拉进行复制。