例如,假设我们有一个带有=SEARCH("h", "hello")
的单元格A1,该单元格显然会返回1。假设我们用=INDEX(C1:D100, 1, A1)
制作了另一个单元格B1。
B1中的公式是否会重新评估A1中的公式?换句话说,B1中的公式的计算结果为=INDEX(C1:D100, 1, 1)
还是=INDEX(C1:D100, 1, SEARCH("h", "hello"))
?
这似乎是一个琐碎的问题,但是这些示例是一个极端的简化;在我的工作簿中,我正在搜索整个工作表中的文本,然后使用它们的结果在另一工作表中输入数千个INDEX
公式。而且,如果每个单元格都要重新评估自身搜索,我会担心性能问题。
答案 0 :(得分:1)
Excel已优化为仅在需要时重新计算。
有关详细信息,请参阅Charles Williams关于Excel's smart recalculation的文章。
简而言之,仅当公式的任何先例发生变化时,才会重新计算公式。让我们将单元格A1中的示例更改为=countif(B:B,A2)
。
索引函数获取A1的输出,而无需重新运行countif。但是,如果B列中的值发生更改,或者A2中的值发生更改,则countif将重新计算,之后Index将重新计算。