excel表格工程量计算中:A1列计算式:(5m长*6 宽+2m*4面)*2栋,B1列计算结果。可以用函数直接计算吗
发布网友
发布时间:2022-04-30 16:43
我来回答
共5个回答
热心网友
时间:2023-10-09 01:15
这类概预算标准格式的表格要通过计算式来做工程量的计算比较麻烦,要用公式来取数。本人10多年前曾指导下属这样来处理:
在右侧若干空白列中分别输入基础数据作为辅助列,如从S列开始向右,每6列为一数据组,分为前括号、数值、单位、名称、运算符、后括号,没有内容的则不用输入。这样在计算式列(记得应该不是A列——哪列无所谓,方法一样)用文本连接的方法引用右边辅助列,得到计算式,如A5中:
=CONCATENATE(S5,T5,U5,V5,W5,X5,Y5,……)
上面的公式中的省略号代表所有辅助列内容,因为没有名称或运算符(一般最后一组就不需要)或单位的就不会显示,从而可得到正确的算计公式。
而计算工程量则直接引用辅助列的数据,也很容易输入公式。
辅助列中输入数据也比直接在计算式列输入要方便快捷得多,运算符、单位、名称等可直接下拉,或按Alt+向下箭头选择。整个工作效率得到很多的提高。且检查校核都要容易得多。
建议你按本人提供的方法来做。如果非得要按自己的方式来做,为你提供计算公式也是可以的,也许所花的时间比上面给你介绍方法还要少一些。但都是做工程的,才教你这一招。追答提交答案后,看其他人给你的方法,单就公式本身来说,wu_zhenjiu的是很不错,但显然并涉及过概预算这类表格,因为概预算表格的不同计算式的单位、名称不一定相同,他的公式就缺乏通用性了。要提取数据用于计算只有用很长的文本提取函数考虑多种可能来逐一提取,真的太繁琐了。
改变方法,改变思路,往往会使你得到意外收获。
热心网友
时间:2023-10-09 01:16
用定义名称实现,光标定位到第一行的单元格,然后按CTRL+F3,调出定义名称对话框,新建名称:AA,引用位置:
=EVALUATE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(Sheet1!$A1,"m",""),"长",""),"宽",""),"面",""),"栋",""))
然后在B1中输入公式:
=AA
得到A1的结果;
公式可以下拉。
热心网友
时间:2023-10-09 01:16
这种混合的带单位还有长宽面说明的式子不能直接计算
热心网友
时间:2023-10-09 01:17
B1输入公式: =(5*6+2*4)*2
热心网友
时间:2023-10-09 01:17
没明白什么意思,可以把excel拿来看看追问
追答Function RegTest(txt)
Dim obj As Object
Set obj = CreateObject("vbscript.regexp")
obj.Global = True '
obj.Pattern = "[a-z,A-Z]"
RegTest = obj.Replace(txt, "")
Set obj = Nothing
End Function
Function RegTesthanzi(txt)
Dim obj As Object
Set obj = CreateObject("vbscript.regexp")
obj.Global = True '
obj.Pattern = "[\u4e00-\u9fa5]+"
RegTesthanzi = obj.Replace(txt, "")
Set obj = Nothing
End Function
Function GetResult(txt)
Set ss = CreateObject("ScriptControl")
ss.Language = "VBScript"
ss.ExecuteStatement ("aa=" & txt)
GetResult = ss.codeobject.aa
End Function
在excel2007中按alt+f11,点模块,新建。将上面的代码放进去,然后在B列中输入GetResult(RegTesthanzi(RegTest(A1))),A1就是你要转换的那个单元格,然后就可以了