admin 管理员组

文章数量: 1086019


2024年3月26日发(作者:%f)

excel制作自动计算的工程量计算稿

(添加备注后也能正常计算)

一、如图所示的制作如下图所示的工程量计算表,在D2单元格显示C2单元格的结果

二、点击D2单元格,点击菜单栏公式-名称管理器

三、新建如下图所示的名称(个人喜好,随便起,我一般都是定义为计算结果,)引用位置

输入如下公式

=EVALUATE(SUBSTITUTE(SUBSTITUTE(Sheet1!$C2,"【","*ISTEXT(""【"),"】","】"")"))

注意:3.1、引用位置用的Sheet1!$C2为计算的单元格的位置,因为计算过程中C列是不变

的,变化的是计算的行数,所以在列前面加绝对引用的符号$;如果计算指定单元格的位置,

可以用配合使用vlookup、match等函数;3.2、中括号【是中文状态输入的,符合国人汉字

备注习惯,如果不喜欢可以都替换成英文状态下的。

四、在D2单元格输入=计算结果,回车即可正常显示。

五、如果想理解公式的解析可以继续学习

5.1、关于excel制作的带备注工程量计算稿的个人理解

EVALUATE(SUBSTITUTE(SUBSTITUTE(Sheet1!$C2,"【","*ISTEXT(""【"),"】","】"")")),""

■代表:SUBSTITUTE(签证!$D4,"【","*ISTEXT(""【")

解析把签证D4中的"【"替换成*替换成*ISTEXT("【

SUBSTITUTE(■,"】","】"")")

把上一个结果中的】变成】")

5.2、论坛大神的解析

例:=EVALUATE(SUBSTITUTE(SUBSTITUTE(Sheet1!E5,"[","*ISTEXT(""["),"]","]"")"))

5.2.1、大神一的解析

1、 SUBSTITUTE(Sheet1!E5,"[","*ISTEXT(""[")

把E5中的[,替换成*ISTEXT("[,结果是:(1+1.6)*1.1*ISTEXT("[墙长+墙长*墙

高]+(1+1.6)*0.15*ISTEXT("[墙长+墙长*墙梁搭接]。

2、SUBSTITUTE(SUBSTITUTE(Sheet1!E5,"[","*ISTEXT(""["),"]","]"")")

把上一步结果中的],替换成]"),结果是:(1+1.6)*1.1*ISTEXT("[墙长+墙长*墙

高]")+(1+1.6)*0.15*ISTEXT("[墙长+墙长*墙梁搭接]")。Istext文本判断后相当于:

(1+1.6)*1.1*1+(1+1.6)*0.15*1。

3、EVALUATE(SUBSTITUTE(SUBSTITUTE(Sheet1!E5,"[","*ISTEXT(""["),"]","]"")")

即:=(1+1.6)*1.1*1+(1+1.6)*0.15*1,结果是:3.25。

5.2.2、大神二的解析

六、疑问解析

在学习过程中也曾对(为什么"*ISTEXT(""[" 和"]"")" 都要用到两个引

号”, 如””)百思不得其解,后续在论坛上看到的两个回复用以解答吧

6.1、回复一:

6.2回复二:图文并茂

两者结合吧!

七、其它应用

1、对于出现如图D3错误的解决方法使用

=IFERROR(EVALUATE(SUBSTITUTE(SUBSTITUTE(Sheet1!$C3,"【","*ISTEXT(""【"),"】","】

"")")),"")

八、根据本工程量计算表的扩展

8.1、例如想在下图结算表中备注栏添加备案表中的签证的编号

可采用在“备案表编号9”单元格输入以下

=INDEX(备案表!$A$4:$A$47,MATCH($B21,备案表!$B$4:$B$50,0))

Index函数的意思是返回制定位置的值 match函数定位

解析:1、MATCH($B21,备案表!$B$4:$B$50,0)

match函数查找“变电所院墙维修”【单元格编号$B21】在备案表!$B$4:$B$50的行

号,返回结果为9

2、 INDEX(备案表!$A$4:$A$47,9,0)

在“备案表A4到A47”列返回第9行的数值

3、这时候会在该单元格显示“9”,选择设置单元格格式—数字----自定义格式在“G/通用

格式”前加入“备案表序号”即可,样式为“备案表序号G/通用格式”


本文标签: 计算 备案 位置 解析 工程量