如何避免Excel评估公式两次?
我刚开始学习Excel,在练习中,我经常发现自己在一个公式中复制了一个子expression式。 例如,如果为了输出一个合理的错误信息而在计算一些expression
(比如一个vlookup
)时要检查可能的错误,我会尝试类似if(iserror(expression);"error";expression)
。 这工作正常,但留给我是否这意味着Excel评估expression
两次,这可能有计算成本的问题。 也许它不会(因为它会使用一些聪明的懒惰策略),但如果这样做,如何避免? 我必须写自己的函数(VBA?),还是有办法做到这一点(例如绑定expression
的variables)?
您也可以使用=IFERROR(expression, [on error msg])
解决问题。
解决这个问题的最懒惰的方法是在自己的单元格中评估expression
,然后在公式中引用该单元格的两个位置,而不是在每个位置复制expression
。