在一个Excelexpression式中使用“If”?

我绝不是一个Excel或VBA程序员。 我正在看一个excel文件的工作,并想知道关于其中一个公式的东西。 程序员将这个公式添加到其中一个单元格中。

=IF(F2<>"",(D2/((AVERAGE(F2:G2)*$R$21)+1)),D2)

我想知道的是,如果这个陈述是不稳定的。 也就是说, If语句总是在整个工作簿中监听变化,这是否会对性能产生负面影响?

If语句对性能没有负面影响。 实际上它取决于你的函数中使用的逻辑文本的复杂性。 在上述情况下,您可能不会有任何问题。

If语句可以使用,因为它可能是一个合理的大小的数据,Excel可以快速计算公式。 如果数据更改有关If语句,它将快速重新计算它。

在这里性能不是问题 – 事实上,除非将计算模式更改为“手动”(请参见“公式”选项卡),否则任何工作表上的单元格更改时,Excel工作簿中的每个公式都会被重新计算。 在特别复杂的工作簿中,这只会成为一个问题,在性能方面,有很多查找,sumifs / countifs,尤其是数组公式。 只有在你做任何事情之前,你必须等待工作簿重新计算之后,才值得考虑。 将计算模式更改为手动本身可能会成为问题,因为它会让您忘记手动运行计算。

编辑:@chrisneilsen笔记,我上面的声明是不正确的。 有关更多信息,请参阅此文章 。