电子表格如何正确更新单元格/知道要更新的内容?

时间:2012-10-18 18:16:53

标签: spreadsheet

电子表格太漂亮了!单元格可以相互链接,如果任何公式/值/其中一个单元格中的任何更改,一切都正确更新!

有没有人知道电子表格如何做到这一点的一般概念? 我在谈论的是A1 = 1,A2 = 2和A3 = A1 + A2。然后我改变A1或A2,A3知道更新并正确完成。当然,在这个例子中它无法更新错误,但在更复杂的例子中,它必须更新"降低"在更新构建在它之上的东西之前,首先是单元格。

在编写自己编程时,我在基础数据更改后正在更新所有内容时遇到了麻烦。有时候不是所有东西都要更新,所以我不想更新所有内容。这只是一团糟。

我希望我的标签是正确的,并允许这样的讨论。谢谢!

1 个答案:

答案 0 :(得分:5)

我不知道电子表格在实践中如何做到这一点。但我的想法来自图topological sorting。考虑公式A3 = A1+A2。单元格将成为图形的节点。公式将控制边缘。边表示依赖。例如A3取决于A1。因此,我们有两条边从A3到A1和A3到A2。现在,上面的拓扑图将为您提供准确的评估顺序。即A1 A2和A3。

另请注意,如果使用此算法,此图需要是有向无环图(DAG)。即它不包含任何循环。据我所知,excel确实检测到它的公式中的循环依赖。

topo-sort的基础算法使用DFS(深度优先搜索),它也可以检测周期。因此,人们可以报告这样的周期。