如何避免Excel评估公式两次?

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

您也可以使用=IFERROR(expression, [on error msg])解决问题。

解决这个问题的最懒惰的方法是在自己的单元格中评估expression ,然后在公式中引用该单元格的两个位置,而不是在每个位置复制expression