Excel中对数学表达式如4+(2*3)求值的2种解决方案 图文
首先说明什么叫表达式,所谓表达式就是我们通常手写的算式,比如(1+2*3-3)/1,大家都知道在excel中计算这个表达式的值,只需要在任意单元格输入=(1+2*3-3)/1即可,我这里要讲的问题是例如在A列中已经填写了文本(1+2*3-3)/1,现在要在B列中通过A列的算式直接得到A1的值,这个问题就归结为对表达式求值。
如下图,A列是表达式,B列是结果,
计算式,算式
一、表达式求值的函数实现步骤:
1、选中B3单元格,按下CTRL+F3,会弹出自定义名称对话框,在对话框中名称栏和引用位置栏按下图填写(=evaluate(A:A)),点击添加按钮 确定,返回工作表
在其他列的时候,注意是选择要出结果列,公式里写表达式所在的列
扩展****************
上述方法适用于少量使用,且计算位置相对固定的情况,若多处需要计算表达式且位置散乱,就需要用vba自定义函数
二、VBA自定义函数方法:
1、工具-选项-安全性-宏安全性-低(2010版到 选项-信任中心设置-宏设置-设置宏安全性为),关闭excel重开
2、alt+F11打开vba编辑器,插入-模块,在右边空白处粘贴以下代码
Function evl(s As String)
evl = Evaluate(s)
If s = "" Then evl = 0
End Function
然后返回到工作表,例如要计算A1中表达式的值 则在任意单元格 只需要输入=evl(A1)即可
evl(rng),rng即为单元格参数,此公式即可计算引用单元格表达式的值
这个方法更加灵活,可以多列同时使用这个自定义函数
鸣谢:如果觉得文章对你有帮助记得关注点赞转发和评论哦!
赞 (0)