我最近读到一篇关于该rand()
函数的相当精彩和新颖的用法的文章,该函数用于在 G Sheets 上进行(功能上)实时计算,而与实际打开的工作表无关。作为一名 Excel 用户,这让我很好奇,原生 Excel 中是否存在任何类似的概念用例(即仅使用函数)?
以供参考,这是我所指的文章。
答案1
不断改变引用的单元格值,因此公式不断重新计算。
- 当引用的单元格发生变化时,Sheets 会重新计算大多数函数。
- Sheets 每次都会重新计算易失性函数任何无论函数是否引用单元格值,它都会发生变化。
- 工作表名称不是引用单元格的一部分价值所以公式
=CELL("address", Sheet1!A1)
如果唯一的更改是工作表的名称,则不会自动重新计算,但公式中的实际单元格引用将立即更新。 - 任何易失性函数都可以实现该目标,因为它依赖于以下事实:
- 问题:CELL 函数返回的字符串
address
可以在不改变单元格值的情况下进行更改。 - 优点:CELL 函数的
address
无论单元格的值如何或其发生任何变化,参数都会返回相同的结果。
- 问题:CELL 函数返回的字符串
Excel 是否也面临同样的问题?
否。在 Excel 中,如果您更改引用的工作表名称=CELL("address", Sheet1!A1)
公式返回的值将立即更新。
- Ben 解决的这个问题似乎是 Google 的疏忽。我明白 Google 为什么要推迟 IMPORTRANGE 等其他更新,但这个更新毫无意义。我可以看到它只是被忽视了。
- Ben 的示例解决方案很有趣,了解这一点在某些时候可能会有用。
- 从性能角度来看,通常不鼓励不必要地使用多个 volatile 函数,因为需要不断重新计算。考虑到实现开销,我认为许多替代方案更有意义。这有点像整天整夜地在家里慢跑,以防意外的包裹到达,而每增加一张纸,就意味着邻居在另一所房子里做同样的事情。
- 除了该用例之外,我有兴趣了解它的任何其他应用。