Excel电子表格崩溃:成千上万的单元格成为“#NUM!”同时

时间:2012-12-24 15:21:10

标签: excel recursion

我为分析纽约市的流量定价而创建的大量Excel电子表格(60个标签,每个不超过1,000 x 68个单元),当我输入一个特定单元格中的窄范围之外的值时崩溃。通过“崩溃”我的意思是大量的细胞 - 可能是成千上万 - 返回“#NUM!”同时进行。

正如您所猜测的那样,电子表格是递归的,因为有数百(数千?)个实例,其中数据在不同的单元格之间来回传递......在处理旅行选择时必须出现(例如,提高道路)收费减少了自动出行,但由此带来的交通流量改善吸引了自动出行,从而恶化了交通流量......)。

有没有办法可以“减慢”计算速度,以便查看#NUM的位置!结果首次出现?由于缺乏这一点,我花费了大量时间试图追踪导致最初#NUM的公式或算法!结果,然后感染所有其他人,使诊断变得不可能。

电子表格大约4 MB,可以通过以下链接下载:http://www.nnyn.org/kheelplan/BTA_1.1.xls。导致折叠值的单元格是“Taxis”工作表中的F444。它的当前(保存)值是单位(1.0)。将其提高到4.0甚至更低的值会使电子表格崩溃......无法重建它。

我应该说我是一名数学家而不是程序员。实际上,我更像是一个“数字学者”,而不是数学家。

提前致谢。我是这个网站的新手,对此印象深刻。

1 个答案:

答案 0 :(得分:1)

在Excel 2010中(但可能在2007年之后都具有此功能)在“公式”选项卡上的“公式审核”组中有一个Evaulate公式按钮。 你选择#NUM!字段,并使用它,您可以进入公式,并评估公式(计算公式的一部分)。此外,您在该组中还有一些辅助函数,如跟踪依赖项/先例。

EDIT1: 哦,你得到这个错误(#NUM!)如果:

  1. 你在某个字段中计算的数字太大了〜1E + 308或更大
  2. 你想做这样的事情:0 ^ 0
  3. 你到达某个地方(在前一个字段中)这个错误#NUM!您想要使用
  4. EDIT2: 现在,我发现了你的问题(也许),你想要某个地方用itaration来计算太大的数字。如果将Maximum Itarations设置为1,则它没有#NUM!错误。 (您可以在Excel选项 - 公式选项卡中找到它)