如何避免 Excel 对公式求值两次?
How to avoid that Excel evaluates a formula twice?
我刚开始学习 Excel,在练习中我经常发现自己在一个公式中复制子表达式。例如,如果有人想在评估某些 expression
(例如 vlookup
)时检查可能的错误以输出合理的错误消息,我会尝试类似 if(iserror(expression);"error";expression)
的方法。这工作正常,但给我留下了一个问题,即这是否意味着 Excel 评估 expression
两次,这可能会产生计算成本。也许它不会(因为它会使用一些聪明的惰性策略),但如果它会发生,如何避免呢?我是否必须编写自己的函数(VBA?),或者有没有办法内联执行此操作(例如将 expression
绑定到变量)?
解决此问题的最懒惰的方法是在其自己的单元格中计算 expression
,然后在公式中的两个位置引用该单元格,而不是在每个位置复制 expression
的公式。
您也可以使用=IFERROR(expression, [on error msg])
来解决问题。
我刚开始学习 Excel,在练习中我经常发现自己在一个公式中复制子表达式。例如,如果有人想在评估某些 expression
(例如 vlookup
)时检查可能的错误以输出合理的错误消息,我会尝试类似 if(iserror(expression);"error";expression)
的方法。这工作正常,但给我留下了一个问题,即这是否意味着 Excel 评估 expression
两次,这可能会产生计算成本。也许它不会(因为它会使用一些聪明的惰性策略),但如果它会发生,如何避免呢?我是否必须编写自己的函数(VBA?),或者有没有办法内联执行此操作(例如将 expression
绑定到变量)?
解决此问题的最懒惰的方法是在其自己的单元格中计算 expression
,然后在公式中的两个位置引用该单元格,而不是在每个位置复制 expression
的公式。
您也可以使用=IFERROR(expression, [on error msg])
来解决问题。