周万栋,江 津
(上海华润大东船务工程有限公司,上海202150)
船体分段在完工以后,根据不同船厂的生产模式,需要对不同的施工方和船东方进行重量结算。每个分段都有数以百计的零件,全船则有数以千计的零件需要统算。根据零件流向码的不同,又需要对不同施工方的结算予以区别。对于船东方和施工方的计算方法也有区别,即对施工方的重量计算按照净料计算;而对船东方的重量计算,则应按照毛料重量进行计算。
此外,每个单船项目都要进行单船的成本计算、钢板利用率计算等,需要计算的项目非常繁杂,工作量很大。因此,全船钢结构重量结算是船舶制造企业中最为重要的计算项目,对于企业的成本控制和经济收益有着至关重要的作用。如果出现漏算,必将造成企业的收益损失;如果出现计算偏差必将出现数据混乱,损害施工方利益。
本文通过Excel表格的函数语句在船体分段计算中的运用实例,介绍一种降低计算工作量、提高工作效率、获得可靠数据的计算方法。
(1)分段制作,施工队一包到底;分段完工后送到坞内(或船台)进行搭载的生产模式。这样的生产模式,在中小船厂生产中比较普遍。即钢板或型材在内场下料并加工好之后,配送到外场施工队手中,施工队负责根据图纸将零件预制成小组件,进行中组立和分段总组。除了需要在坞内搭载散装的零件外,所有分段制作的工作都由指定的施工队完成。分段制作好以后,送入坞内(或船台),由另外指定的施工队进行搭载施工,直至船舶钢结构完工为止。
(2)零件下料加工、小组件及拼板由内场完成,外场进行中组立和总组施工;分段完成后送坞内(或船台)搭载的生产模式。这样的模式,在大中型造船企业生产中运用比较普遍。即钢板或型材在内场下料加工好之后,由内场进行小组件制作、拼板甚至是小分段制作,然后配送到外场,由外场施工队进行中组立和总组施工。总组施工完成后,分段送入船坞(或船台)进行搭载施工,直至船舶钢结构完工为止。
以上两种生产模式,只是对生产的施工环节进行划分,但重量计算方式并无太大差别。本文介绍第一种生产模式的重量计算方法。
分段零件表如图1所示。分段零件表应包括“小组”、(“中组”)“大组”、“明细”、“毛重”工作表。其中,“小组”、(“中组”)“大组”为分段零件参与装配的阶段,每个零件的重量在上述表格中只出现1次,避免重复计算。“明细”为分段零件下料的重量表,“毛重”为对船东计算的重量表格。
“明细”和“毛重”表格中的重量内容由下料时软件生成的“重量明细表”(**.dat)文件产生,并通过Excel“分列”功能将表格分列成行列对齐的表格,再通过“筛选”功能把零件信息之间的空白行筛选出来并删除掉。
经过处理后的下料“重量明细表”的内容经复制粘贴到“明细”工作表内备用。“明细”表就是零件的净重表。
技术员比对图纸,将“明细”表格内的零件根据实际使用毛料情况,逐个修正成“毛重”表格备用。
最终形成的“明细”工作表形式如图2所示。
图1 分段零件表样式
图2 明细表样式
图2为某分段重量明细表,最终形成的明细表内容及样式必须和上图样式一致。
“毛重”表则由“明细”表格通过逐条修正重量得来,表格样式与上表基本相同,仅是重量不同。
值得一提的是,上表中“单重”列是由“总重”列÷“数量”列得来的,为函数语句调用做铺垫。
点击“小组”进入“小组”工作表,在第7行第H列插入函数语句:“=IF(ISBLANK(B7),"",IF (COUNTIF(明细!$A:$A,B7),VLOOKUP(B7,明细!$A$2:$H$1500,8,FALSE),VLOOKUP ("*"&B7&"*",明细!$A$2:$H$1500,8,FALSE)))”。点击回车,这时“明细”表中与“01P”具有相同名字的零件的单重“1166.3”就被调入第7行第H列的表格中了,如图3所示。
同样,在第7行第J列插入语句:“=IF(ISBLANK(B7),"",IF(COUNTIF(毛重!$A:$A, B7),VLOOKUP(B7,毛重!$A$2:$H$1600,5,FALSE),VLOOKUP("*"&B7&"*",毛重!$A $2:$H$1600,5,FALSE)))”。点击回车,将“毛重”表中与“01P”具有相同名字的零件单毛重“1420.4”调入第7行第J列中,如图3所示。
图3 “净重”和“毛重”栏下的“单重”表内分别插入函数语句
图3表格内的函数语句内容是可以灵活调整的。具体语句含义:“(明细!$A:$A,B7)”即是要调用“明细”表中的A列的数据与本表B7内名称吻合的零件;“B7,明细!$A$2:$H$1500,8,FALSE”是函数要处理在“明细”表中A2到H1500区域内的数据,“1500”改成“200”或“1800”等,但所有数据都应覆盖其中,原则上越大越好。上语句中的“8”是指调入的数据是来自“明细”表中的第8列的相应位置。通过语句内容的调整,可以将“明细”中的不同列的内容调入到“小组”中来。调入到“中组”和“大组”方法相同。
同样的,“毛重”位置的函数语句“……("*"&B7&"*",毛重!$A$2:$H$1600,5,FALSE)))”中的“5”则是调用“毛重”表中的第5列相应“单重”数据。毛重表内容及样式见图4。
在“小组”表格中的第7行的“净重”和“毛重”栏内的“总重”内分别插入函数语句,进行求总重:“=IF(ISBLANK(B7),,(D7+E7+F7)*H7)”和“=IF(ISBLANK(B7),,(D7+E7+F7)*J7)”,通过下拉操作,所有重量都被调入零件表中。小组数据全部调入表如图5所示。
用同样的方法,在“大组”(如有“中组”,方法相同)进行插入上述函数语句,调入重量并下拉。
数据调入需要注意的是:“中组”和“大组”表中出现零件的“名称及规格”为“部件”时,重量应为0 (或空白),这样就不会重复计算,“部件”重量已经在“小组”表中计算过。
图4 “毛重”表内容及样式
图5 “小组”数据全部调入表
对“小组”、“中组”和“大组”进行求和,并把求和值进行相加得“分段总重”。“分段总重”与“明细”中“下料总重”进行比较,确认所有下料重量和零件表重量一致,说明计算没有出错。分段总组和下料总重之比对如图6所示。
从图6看到,“下料总重”和零件表“分段总重”的差值为“0”,这时候,分段重量函数调入操作就结束。
但是,如果“下料总重”和“分段总重”差值不为“0”,则应作如下检查:
(1)查找“零件表”(“小组”和“大组”统称“零件表”)的“零件号”是否全部囊括施工图所有零件。
(2)“明细”中零件号和“零件表”中的零件名称,是否完全一致。不一致的,则无法被调入零件表。
(3)“零件表”中零件的数量是否和“明细”表的数量一致。
检查方法:可以在表格空白处插入函数语句,并根据需要修改函数语句内容,把“明细”中的“零件号”、“零件数量”等信息逐批调入“零件表”中来,比较检查错误出在什么地方。如图7阴影区域所示,如果出现“#N/A”,则表明相应零件名“210”在“明细”表中不存在。根据实际情况,把它们修改正确即可消除。
图6 分段总组和下料总重的比对
图7 数值插入出现“乱码”的消除方法
关于分段毛重的“下料总重”和“分段总重”的比对方法和上式一样。经过比对和调整好的“零件表”,就可以作为对施工队计算的依据;“毛重”工作表内的重量,可以作为对船东结账的依据。通常“毛重”详细清单是不向船东提供的。“小组”总重、“总组”总重、“散装”总重都可以单独拨出来用于针对性地对内结算使用。
一个造船项目完工之后,对内进行工程款结算,对外进行项目结价计算,是一项重要的工作,需要细致高效的计算过程。工程结算的好坏直接影响劳务费的公正发放,也关系到工程款的准确回收。
本文通过Excel函数语句在船体钢结构重量计算中的应用,证明高效使用工具软件的重要性。