求一个Excel公式解析

8.4+7.35+1.1+5.25+4+1.3+2.65+2.35+1.1+5.25*2[负1层]+(4.649*2+(4.1+0.3)*2)*2[夹层]+(5.25*2... 8.4+7.35+1.1+5.25+4+1.3+2.65+2.35+1.1+5.25*2[负1层]+(4.649*2+(4.1+0.3)*2)*2[夹层]+(5.25*2+4.08+0.3+4.1+0.3)*2*33[1-33]+(5.2+1.3)*2+(5.18+1.3)*2[屋面层]=(EVALUATE(SUBSTITUTE(SUBSTITUTE(E4,"[","*ISTEXT(""["),"]","]"")"))) 展开
 我来答
退休画线工
2019-06-23 · 知道合伙人软件行家
退休画线工
知道合伙人软件行家
采纳数:5411 获赞数:27017
1981年毕业于湖南大学,从事化工设计30多年,精于工程设计

向TA提问 私信TA
展开全部

用宏表函数EVALUATE定义名称的方法只能是纯数字和运算符的算式,你的工程计算式中包含有不同的文字说明,所以是无法直接用来定义名称的。而你自己想当然的定义名称的公式中用SUBSTITUTE也公替换方括号,而方括号中的内容并没有替换掉,所以肯定是不行的。而要用SUBSTITUTE一个个来替换所有方括号及其中的内容,则因为内容各不相同,还不知道你不同的行中是否还会有更多的不同的内容。如果只两三个,还可以分别用SUBSTITUTE来多次替换,但多了肯定是极为麻烦的事。所以也不是可行的方法。

相对来说比较可行的方法是:把工程计算式列(E列)的数据复制后粘贴到Word中,在Word一次把所有方括号及其中的内容全部替换掉。如图,Word中,你E4中的计算式粘贴了两次,光标定位到第2次粘贴内容的前面,替换方式用“向下”,即只替换第2次粘贴的内容,以便于对照替换前后的计算式(实际替换中是要用全部方式的)。

按Ctrl+H,调出替换对话框,查找:


\[*\]

替换中什么也不输入,勾选“使用通配符”,按全部替换。即把光标开始处到文档结尾的所有方括号及其中的内容替换掉了。查找中内容的含义:\[*\]表示查找以[开头到以]结尾的所有内容,其中*表示任意字符,[和]前面加上\是因为[在Word查找替换中有特定的含义,查找它本身时,就要加上一个引导符“\"。

把Word中替换好的算式复制后,回到Excel中,在右侧某一空列中粘贴,如图,粘贴到I列中。这时就可以定义名称了,如定义为eng,引用中:=EVALUATE(!$I4)

在E列输入定义的名称,就可以得到工程量结果了:

E4=eng

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式