庞大的 Excel 电子表格需要很长时间才能更新链接或计算公式

庞大的 Excel 电子表格需要很长时间才能更新链接或计算公式

我有一个 Excel 电子表格,有 5000 行和 AY 列(大小为 12MB)。除了前六列,其余列都包含公式vlookups或其他公式。所有 vlookup 都在单独的 Excel 工作表中。我已将 Excel 设置更改为手动更新链接和计算公式。现在,每次我尝试更新链接时,Excel 都会挂起或需要大约 15 分钟的时间。

现在我正在将工作表拆分为四个实例;我将按顺序更新四个不同的 Excel 表。但这需要手动将索引列复制到下一阶段。更新链接需要 3-4 小时。昨天我开始收到错误消息:

Excel 没有足够的资源来完成该操作。

我别无选择,只能将整个操作分成四个需要人工干预的小步骤。

我查看了 INDEX。不太适用于我的情况。有什么想法可以让我快速完成吗?

答案1

5000 行乘以 50 列并不是一个很大的工作表。12MB 是一个非常合理的中小型文件大小,您不需要做任何如此激烈的事情,例如重新处理数据库或类似的东西。

从您的描述来看,问题似乎出在链接上。引用的工作簿有多大?链接到它们时它们会重新计算吗?我喜欢预先打开的想法:您可以看到当时发生了什么。

您的内存使用量(查看任务管理器)是否超出了可用的物理 RAM?一旦内存必须交换到磁盘,速度就会开始大幅下降。

除了预先打开和排序帮助之外,我建议看一下非查找公式:是否可以将任何公式转换为数组公式并每次计算调用一次而不是每行调用一次?

关于 VLOOKUP 的事情:你试过使用吗INDEX(value_range, MATCH(lookup_key, key_range))?有些情况下它更快。

您没有说明您是否有 VBA。如果有,请查看 VBA 函数被调用的次数以及它们花费了多少时间。大量引用 Excel 对象的 VBA 代码可能非常昂贵。

答案2

如果文件中有任何数据不需要条件且将保持不变(例如某人的出生日期),则在第一次使用 vlookup 获取数据后,请“复制”并“选择性粘贴 - 值”整个列/行,以阻止文件每次运行计算时重新计算这些单元格。我注意到,对来自另一个 vlookup 的数据运行 vlookup 需要相当长的时间。

答案3

不幸的是,Excel 电子表格就是这样的......VBA 并不是最快的选择。

您可能需要考虑将数据迁移到 Microsoft Access 数据库。

答案4

我使用 Office 10 来解决这个问题。

  1. 我打开了我的大文件,将其重新保存为文件类型 Excel 工作簿 1997-2003。
    • 它提示一条消息询问我一些事情(我不记得了)。
  2. 我单击了“确定”,然后我就得到了一个新的 Excel 1997-2003 文件。
    • 文件大小从 25MB 减少到 1MB 以下。
  3. 然后我再次将其从旧的 1997-2003 文件重新保存到新的工作簿中,它变得更小了。

我在多个工作簿中都遇到过这个问题,而这个方法总能帮我解决它。

相关内容