求一个公式
2020-10-28 · 知道合伙人软件行家
用宏表函数EVALUATE定义名称的方法只能是纯数字和运算符的算式,你的工程计算式中包含有不同的文字说明,所以是无法直接用来定义名称的。而你自己想当然的定义名称的公式中用SUBSTITUTE也公替换方括号,而方括号中的内容并没有替换掉,所以肯定是不行的。而要用SUBSTITUTE一个个来替换所有方括号及其中的内容,则因为内容各不相同,还不知道你不同的行中是否还会有更多的不同的内容。如果只两三个,还可以分别用SUBSTITUTE来多次替换,但多了肯定是极为麻烦的事。所以也不是可行的方法。
相对来说比较可行的方法是:把工程计算式列(E列)的数据复制后粘贴到Word中,在Word一次把所有方括号及其中的内容全部替换掉。如图,Word中,你E4中的计算式粘贴了两次,光标定位到第2次粘贴内容的前面,替换方式用“向下”,即只替换第2次粘贴的内容,以便于对照替换前后的计算式(实际替换中是要用全部方式的)。
按Ctrl+H,调出替换对话框,查找:
\[*\]
替换中什么也不输入,勾选“使用通配符”,按全部替换。即把光标开始处到文档结尾的所有方括号及其中的内容替换掉了。查找中内容的含义:\[*\]表示查找以[开头到以]结尾的所有内容,其中*表示任意字符,[和]前面加上\是因为[在Word查找替换中有特定的含义,查找它本身时,就要加上一个引导符“\"。
把Word中替换好的算式复制后,回到Excel中,在右侧某一空列中粘贴,如图,粘贴到I列中。这时就可以定义名称了,如定义为eng,引用中:=EVALUATE(!$I4)
在E列输入定义的名称,就可以得到工程量结果了:
E4=eng