使用宏表函数进行单元格内表达式运算,这个大家都了解,如果都是标准的运算公式,很容易处理,只是记得保存时要另存为启用宏的工作簿就可以了。今天的问题是,公式表达式中带有单位,如何运算?当然,如果单位的名称非常统一,个数也有限,我们可以使用substitute函数统一替换掉单位,再进行运算。如果单位不统一,但是格式都是一致的,这种情况应该怎么办?
例子:单位都是用方括号括起来的,里面的名称可能千奇百怪。
今天我们介绍一种组合来解决这个问题
evaluate+substitute+istextistext函数我们先了解一下,如果引用的是文本则返回true,否则返回false。
再有就是:
true=1false=0其他的步骤与evaluate函数使用完全一致,要先定义名称:
=evaluate(substitute(substitute(sheet2!a2,”[“,”*istext(“”[“),”]”,”]””)”))
这个公式很有意思,充分利用了evaluate函数的功能,要想理解这个公式其实也容易:
我们把去掉evaluate函数的公式,放到单元格中,就会得到新的公式:
5*istext(“[件]”)*24*istext(“[个]”)10*istext(“[箱]”)*12*istext(“[件]”)*24*istext(“[个]”)这样大家应该明白了,istext函数被当作文本替换到新的公式中,evaluate来计算这个新的公式,在新公式中的istext返回的都是true就相当于1,就可以得到最终我们想要的结果了。
这个例子给我们一个启发:在evaluate函数中,我们可以通过各种方法来构建新的公式,只要这个公式成立,并且符合我们的计算要求就可以。
更多函数知识请订阅专栏: